DNA 序列翻译

#互补序列获取

def complement(seq):
    return seq.translate(str.maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))


#DNA序列翻译
1 dna = "ATGCACGTGCGCTCACTGCGAGCTGCGGCGCCGCACAGCTTCGTGGCGCTCTGGGCACCCCTGTTCCTGCTGCGCTCCGCCCTGGCCGACTTCAGCCTGGACAACGAGGTGCACTCGAGCTTCATCCACCGGCGCCTCCGCAGCCAGGAGCGGCGGGAGATGCAGCGCGAGATCCTCTCCATTTTGGGCTTGCCCCACCGCCCGCGCCCGCACCTCCAGGGCAAGCACAACTCGGCACCCATGTTCATGCTGGACCTGTACAACGCCATGGCGGTGGAGGAGGGCGGCGGGCCCGGCGGCCAGGGCTTCTCCTACCCCTACAAGGCCGTCTTCAGTACCCAGGGCCCCCCTCTGGCCAGCCTGCAAGATAGCCATTTCCTCACCGACGCCGACATGGTCATGAGCTTCGTCAACCTCGTGGAACATGACAAGGAATTCTTCCACCCACGCTACCACCATCGAGAGTTCCGGTTTGATCTTTCCAAGATCCCAGAAGGGGAAGCTGTCACGGCAGCCGAATTCCGGATCTACAAGGACTACATCCGGGAACGCTTCGACAATGAGACGTTCCGGATCAGCGTTTATCAGGTGCTCCAGGAGCACTTGGGCAGGGAATCGGATCTCTTCCTGCTCGACAGCCGTACCCTCTGGGCCTCGGAGGAGGGCTGGCTGGTGTTTGACATCACAGCCACCAGCAACCACTGGGTGGTCAATCCGCGGCACAACCTGGGCCTGCAGCTCTCGGTGGAGACGCTGGATGGGCAGAGCATCAACCCCAAGTTGGCGGGCCTGATTGGGCGGCACGGGCCCCAGAACAAGCAGCCCTTCATGGTGGCTTTCTTCAAGGCCACGGAGGTCCACTTCCGCAGCATCCGGTCCACGGGGAGCAAACAGCGCAGCCAGAACCGCTCCAAGACGCCCAAGAACCAGGAAGCCCTGCGGATGGCCAACGTGGCAGAGAACAGCAGCAGCGACCAGAGGCAGGCCTGTAAGAAGCACGAGCTGTATGTCAGCTTCCGAGACCTGGGCTGGCAGGACTGGATCATCGCGCCTGAAGGCTACGCCGCCTACTACTGTGAGGGGGAGTGTGCCTTCCCTCTGAACTCCTACATGAACGCCACCAACCACGCCATCGTGCAGACGCTGGTCCACTTCATCAACCCGGAAACGGTGCCCAAGCCCTGCTGTGCGCCCACGCAGCTCAATGCCATCTCCGTCCTCTACTTCGATGACAGCTCCAACGTCATCCTGAAGAAATACAGAAACATGGTGGTCCGGGCCTGTGGCTGCCACTAG"
 2 
 3 def trabslate_dna(sequence):
 4     start_codon = 'ATG'
 5     stop_codon = ('TAA', 'TAG', 'TGA' )
 6     codontable = {
 7         'ATA': 'I', 'ATC': 'I', 'ATT': 'I', 'ATG': 'M',
 8         'ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACT': 'T',
 9         'AAC': 'N', 'AAT': 'N', 'AAA': 'K', 'AAG': 'K',
10         'AGC': 'S', 'AGT': 'S', 'AGA': 'R', 'AGG': 'R',
11         'CTA': 'L', 'CTC': 'L', 'CTG': 'L', 'CTT': 'L',
12         'CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P',
13         'CAC': 'H', 'CAT': 'H', 'CAA': 'Q', 'CAG': 'Q',
14         'CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R',
15         'GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V',
16         'GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A',
17         'GAC': 'D', 'GAT': 'D', 'GAA': 'E', 'GAG': 'E',
18         'GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGT': 'G',
19         'TCA': 'S', 'TCC': 'S', 'TCG': 'S', 'TCT': 'S',
20         'TTC': 'F', 'TTT': 'F', 'TTA': 'L', 'TTG': 'L',
21         'TAC': 'Y', 'TAT': 'Y', 'TAA': '_', 'TAG': '_',
22         'TGC': 'C', 'TGT': 'C', 'TGA': '_', 'TGG': 'W'
23     }
24     start = sequence.find(start_codon)
25     codons = [] # Create a codon list to store codons generated from coding seq.
26     for i in range(start, len(sequence), 3):
27         if sequence[i:i+3] in stop_codons:
28             break
29         if sequence[i:i+3] in codontable.keys():
30             codons.append(sequence[i:i+3])
31     protein_sequence = ''.join([codontable[codon] for codon in codons]) #Translate condons to protein seq.
32     return "{0}_".format(protein_sequence)
33 
34 protein_seq = translate_DNA(dna)
35 print(protein_seq)

  #摘自https://www.cnblogs.com/nnufish/p/yuzhenpeng.html

猜你喜欢

转载自www.cnblogs.com/kehan/p/12322403.html
DNA