我有一个输入列表,我把它转换成一个字符串,所以我可以用于我的主程序(DNA翻译),为此我需要它的长度来找到3个不同的帧。顺便说一下,它需要提到用户输入了一个输入(DNA序列,例如ATGCGTAGT)。
我转换我的comp seq的第一部分是:
comp = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C' }
for i in sequence_list :
comp_sequence += comp[i]
reversed_comp_seq = ''.join(reversed(comp_sequence))
稍后,在我的程序中,它在这里使用:
for e in range(0, len(reversed_comp_seq)-len(reversed_comp_seq)%3,3):
Frame4 += codons1[reversed_comp_seq[e:e + 3]]
print(Frame4)
然后我无法运行它来找到反向翻译,因为它说明了这一点:
TypeError: object of type 'reversed' has no len()
你能帮帮我吗?谢谢!
答案 0 :(得分:0)
你的问题有点不清楚,但如果你想做的就是翻译和逆转你能做的DNA序列:
comp = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C' }
s = 'GATACA'
s_comp = s.translate(s.maketrans(comp))
s_comp_reversed = s_comp[::-1]
或者一次完成所有操作:
def complement_reversed(seq):
return seq.translate(s.maketrans(comp))[::-1]