我有一个类和子类:
class Range:
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
class DNAFeature(Range):
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 对象的 表示 外显子 且 是 a 子 类 的DNAFeature。应实施以下方法: getFeats() – 返回 DNAFeature 个对象的列表, 按 开始 位置 排序 addFeat(feat) 接受 a DNAFeature feat 并将 it 添加到 其 内部 组 DNAFeature 对象 settransstart(i) – 接受 非负 int, 设置 起始 ATG 密码子 的 开始 位置 getTranslStart() – 返回 an int, 起始 ATG 密码子的 开始 位置 settransstop(i) – 接受 正 int, 设置 结束 位置 停止 密码子 getTranslStop() – 返回 一个 int, 结束 位置 表示 停止 密码子 setDisplayId – 设置 基因 模型的 名称 是 a 字符串 题目是 返回 返回 将 名称 的 名称 的 基因 模式, 返回 a 一个 GeneModel 的8233;应 提高 适当 适当 ValueError 以及 TypeError 除除 当何时 何时 何时 用户 将不正确的 类型 和 值传递给 构造函数 和 “设置” 方法
我试着写任何我想到的东西,读过书,也在寻找把代码组合起来的方法,但是我对编程太陌生了,几乎不知道如何正确地编写代码。老实说,这是我第一次上编程课。所以如果我在密码上犯了什么可笑的错误,请原谅我。我还没有完成我的代码,仍然在阅读书籍,看看我在代码方面做了哪些错误和正确的事情。但是,我真的需要你的帮助来指引我走上正确的道路。非常感谢你们。以下是我的代码:
class GeneModel(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
首先,清理一下。我不完全相信你原来的类DNAFeature实际上是正确的。DNAFeature似乎是从其他类继承的,名为Range,我们在这里缺少它,所以如果您有该代码,请提供它。在原来的类中,您需要定义变量SeqName(同时,最好保持变量小写),否则self.seq名称将毫无意义。另外,除非它们是从Range类继承的,否则还应该定义方法“setStart”和“setEnd”。getter不应该有任何额外的变量,所以可以随意将其更改为“def getSeqName(self)”,而不是添加“s”。我真的不想再有什么评论了。在
此外,尽管您在评论中另有说明,但我不得不从命名约定(以及我在bio中记得的很少)中相信,您实际上希望GeneModel成为一组DNAFeature实例的容器。这和GeneModel的DNAFeature子类不同。如果我是对的,那么你可以试试:
这里dnafeatures只是dnafeature实例的列表。这将允许您编写方法来访问这些特性,并执行您需要做的任何有趣的事情。在
我的建议是确保你的DNAFeature类是正确的,以及你希望你的问题如何解决的模型(根据你的类做什么),当问题变得更清楚时再问一次。希望这有帮助!在
我不明白基因模型的名字是什么。我认为这是特定主题的,但我认为这对你有用:
希望这有帮助。在
相关问题 更多 >
编程相关推荐