【发布时间】:2010-10-17 17:22:35
【问题描述】:
我有这个类和子类:
类范围:
def __init__(self, start, end):
self.setStart(start)
self.setEnd(end)
def getStart(self):
return self.start
def setStart(self, s):
self.start = s
def getEnd(self):
return self.end
def setEnd(self, e):
self.end = e
def getLength(self):
return len(range(self.start, self.end))
def overlaps(self, r):
if (r.getStart() < self.getEnd() and r.getEnd() >= self.getEnd()) or \
(self.getStart() < r.getEnd() and self.getEnd() >= r.getEnd()) or \
(self.getStart() >= r.getStart() and self.getEnd() <= r.getEnd()) or \
(r.getStart() >= self.getStart() and r.getEnd() <= self.getEnd()):
return True
else:
return False
类 DNAFeature(范围):
def __init__(self, start, end): self.setStart(start) self.setEnd(end) self.strand = none self.sequencename = none def getSeqName(self, s): return self.SeqName def setSeqName(self, s): self.sequencename = s def getStrand(self): if self.SeqName == 'plus': return 1 elif self.SeqName == 'minus': return -1 else: return 0 def setStrand(self, s): self.strand = s
这是我必须做的: 创建一个新类 GeneModel,它包含一组代表外显子的 DNAFeature 对象,并且是 DNAFeature 的子类。它应该实现以下方法: getFeats() – 返回一个 DNAFeature 对象列表,按起始位置排序 addFeat(feat)– 接受一个 DNAFeature 专长并将其添加到其内部的 DNAFeature 对象组中 setTranslStart(i)– 接受非负整数,设置起始 ATG 密码子的起始位置 getTranslStart()——返回一个int,起始ATG密码子的起始位置 setTranslStop(i)– 接受正整数,设置终止密码子的结束位置 getTranslStop()——返回一个int,终止密码子的结束位置 setDisplayId(s)——设置基因模型的名称; s 是一个字符串 getDisplayId()——返回基因模型的名称,返回一个字符串,例如,AT1G10555.1 当用户向构造函数和“set”方法传递不正确的类型和值时,GeneModel 应该引发适当的 ValueError 和 TypeError 异常。
我想写什么就写什么,阅读书籍以及寻找将代码组合在一起的方法,但是我对编程很陌生,几乎无法理解如何正确编写代码。老实说,这是我第一次上编程课。因此,如果我在代码中犯了任何有趣的错误,请原谅我。我还没有完成我的代码,还在阅读书籍,看看我的代码在哪里做错和做对了。但是,我真的需要你的帮助来引导我走上正确的道路。非常感谢你们。以下是我的代码:
类基因模型(DNAFeature):
def __init__(self, translstart, translend, displayid): self.setTranslStart(translstart) self.setTranslStop(translend) setDisplayId(displayid) def getFeats(): result = [] sort.self.getStart() return result def addFeat(feat): self.addFeat = feat return self.getStart+self.getEnd def setTranslStart(i): self.translstart = self.setStart self.translstart = non-negative int def getTranslStart(): return self.translstart def setTranslStop(i): self.translend = self.setEnd self.translend = "+" int def getTranslStop(): return self.translend def setDisplayId(s): self.displayid = re.compile('r'\AT1G[0-9]{5,5}\.[0-9]{,1}, IGNORECASE') def getDisplayId(): return self.displayid
【问题讨论】:
-
我对你的模型有点困惑。 GeneModel 是应该包含一组 DNAFeature 实例还是 GeneModel 是 DNAFeature 的子类。这对你如何编写代码有很大的影响。
-
是的,是的,GeneModel 是 DNAFeature 的子类,我真的很抱歉我的代码,我只是不知道如何正确地做,试图通读书籍...
标签: python bioinformatics