所以我要设计一个程序来计算DNA序列和计算单个碱基对。到目前为止,我得到的是:
class dnaString (str):
def __new__(self,s):
return str.__new__(self,s.upper())
def length (self):
return (len(self))
def getATCG (self,num_A,num_T,num_C,num_G):
num_A = self.count("A")
num_T = self.count("T")
num_C = self.count ("C")
num_G = self.count ("G")
return ( (self.length(), num_A, num_T, num_G, num_C) )
def printnum_A (self):
print ("Adenine base content: {0}".format(self.count("A")))
dna = input("Enter a dna sequence: ")
x=dnaString(dna)
这个程序实际上什么也做不了,而且由于我刚开始使用python,所以我不确定如何修复它,使它正常工作。我还需要补充什么?我知道还没完成。在
我不确定问题出在哪里,但由于您没有调用方法“printnum_A”,因此没有任何内容在打印。如果你这样称呼它,它会起作用:
根据评论更新
仅仅声明类的方法是不够的,还需要在需要时调用它们。例如
^{pr2}$printnum_T
:这有帮助吗?它可以在我碰巧安装的python2.7.3和3.2.3中工作。在
这是一个完整的例子,计算基数(a,C,G,T)和所有相邻对的出现(例如,在ACCGTA中,AC、CC、CG、GT、TA都是1,笛卡尔乘积ACGT x ACGT的其他11个可能组合都是0)。在
这里使用的计数方法在构造函数中扫描一次字符串,而不是每次调用
getATGC()
时扫描它四次。在我觉得这门课可以简化一点:
那么
^{pr2}$给予
相关问题 更多 >
编程相关推荐