使用python将蛋白质序列转化为DNA



我正在尝试将蛋白质序列转化为DNA,但不知道如何做到。我看到了很多关于如何将DNA转化为蛋白质的例子,但没有看到相反的例子。

"AAA":"K", "AAC":"N", "ACA":"T", "AGA":"R", "AGC":"S",            
"AUA":"I", "AUG":"M", "CAA":"Q", "CAC":"H", "CCA":"P",
"CUA":"L", "GAA":"E", "GAC":"D", "GCA":"A", "GGA":"G",
"GUA":"V", "UAC":"Y", "UGC":"C", "UGG":"W", "UUC":"F"

我想把蛋白质序列转换成相应的密码子。

def translate(seq): 
table = { 
'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M', 
'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T', 
'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K', 
'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',                  
'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L', 
'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P', 
'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q', 
'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R', 
'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V', 
'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A', 
'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E', 
'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G', 
'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S', 
'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L', 
'TAC':'Y', 'TAT':'Y', 'TAA':'_', 'TAG':'_', 
'TGC':'C', 'TGT':'C', 'TGA':'_', 'TGG':'W', 
} 
protein ="" 
if len(seq)%3 == 0: 
for i in range(0, len(seq), 3): 
codon = seq[i:i + 3] 
protein+= table[codon] 
return protein

上面的代码是用于将DNA翻译成蛋白质的,我需要相反的代码。

如有任何帮助,我们将不胜感激。

感谢

如果有人需要答案,下面的函数会列出所有转化为给定蛋白质序列的DNA序列。

不过要小心,因为一个短蛋白质序列(10+个氨基酸(可以产生数万(如果不是数百(个可能的DNA序列。

import itertools as it
def back_translate_to_dna(aa_sequence: str) -> list:
back_translation_code = {
'A': ['GCA', 'GCC', 'GCG', 'GCT'],
'C': ['TGT', 'TGC'],
'D': ['GAC', 'GAT'],
'E': ['GAG', 'GAA'],
'F': ['TTT', 'TTC'],
'G': ['GGT', 'GGG', 'GGA', 'GGC'],
'H': ['CAT', 'CAC'],
'I': ['ATC', 'ATA', 'ATT'],
'K': ['AAG', 'AAA'],
'L': ['CTT', 'CTG', 'CTA', 'CTC', 'TTA', 'TTG'],
'M': ['ATG'],
'N': ['AAC', 'AAT'],
'P': ['CCT', 'CCG', 'CCA', 'CCC'],
'Q': ['CAA', 'CAG'],
'R': ['AGG', 'AGA', 'CGA', 'CGC', 'CGG', 'CGT'],
'S': ['AGC', 'AGT', 'TCT', 'TCG', 'TCC', 'TCA'],
'T': ['ACA', 'ACG', 'ACT', 'ACC'],
'V': ['GTA', 'GTC', 'GTG', 'GTT'],
'W': ['TGG'],
'Y': ['TAT', 'TAC'],
'*': ['TAA', 'TGA', 'TAG']
}
list_of_list_of_codons = [back_translation_code[aa] for aa in aa_sequence]
list_of_combinations = [''.join(combination) for combination in it.product(*list_of_list_of_codons)]

return list_of_combinations

list_of_dna_sequences = back_translate_to_dna('MHH')

最新更新