2017-09-23 69 views
0
def s_seq(dna_seq): 
    ''' 
    parses an input sequence in string format to a list of nucleotide triplets/codons as single-valued tuples 
    ''' 
    codons = [] 

    # arrange codons as list of single element tuples 
    if len(dna_seq) % 3 == 0: 
     for i in range(0, len(dna_seq), 3): 
      codons = dna_seq[i:i + 3] 

    return codons 

dna_seq01 = 'ATATTAAAGAATAATTTTATAAAAATATGT' 
codons01 = s_seq(dna_seq01) 

它一直显示最后三个密码子,但我想要的是一切的分割:'ATA ','TTA'等。我不知道我在这里做错了什么。Python:如何以字符串格式显示单个元素元组格式的核苷酸三元组列表中的输入DNA序列

回答

0

你只需要密码子追加到你上面设置的列表:

codons = [] 
if len(dna_seq) % 3 == 0: 
    for i in range(0,len(dna_seq),3): 
     codons.append((dna_seq[i:i + 3],)) 

输出:

>>> [('ATA',), ('TTA',), ('AAG',), ('AAT',), ('AAT',), ('TTT',), ('ATA',), ('AAA',), ('ATA',), ('TGT',)] 

通过使用codons = dna_seq[i:i+3]你只是替换每个循环的价值迭代。

相关问题