【发布时间】:2013-09-04 09:04:32
【问题描述】:
我是 python 新手,希望能得到一些帮助。
我有这个脚本,它对序列中的每三个碱基进行计数,直到它识别出一个终止密码子,然后中断并返回该值。这适用于每个阅读框 0、+1、+2。
我希望它在识别终止密码子之前脚本运行到序列末尾时返回值 0。目前脚本为 count0 返回 18,这应该是 0,因为序列在找到“TAG”或“TAA”之前结束
任何帮助将不胜感激!
seq="TCATTCTaTTTAAAAAAatATAAAaGGGgTTTTGGGgTTTtGGGGTTTtGGGG"
stop_codons = ["TAG", "TAA"]
count0 = 0
n = 0
while n < len(seq):
if seq[n:n+3] in stop_codons:
break
count0 += 1
n += 3
print count0
count1 = 0
n = 1
while n < len(seq):
if seq[n:n+3] in stop_codons:
break
count1 += 1
n += 3
print count1
count2 = 0
n = 2
while n < len(seq):
if seq[n:n+3] in stop_codons:
break
count2 += 1
n += 3
print count2
结果:
18
3
6
【问题讨论】:
-
在您的示例中,它找到了 TAA(我也可以看到),所以它打印 18。但是您说它应该是 0,因为序列在找到“TAG”或“TAA”之前结束"'
-
请写一个以n为参数的函数。您将避免大量代码重复和错误!
-
@doctorlove TAA 在 +1 帧中。即从 CATTCT 开始...在第 0 帧 TCATTCT 中没有停止...
标签: python bioinformatics