如何在没有 BioPython 库的情况下将 RNA 翻译成蛋白质

How to translate RNA to protein without BioPython library

有没有使用字典和.replace函数将蛋白质转化为RNA的简单方法?

此外,我不知道如何编码 RNA 和 DNA 代码冗余的所有可能变体,这使得通过不同的 RNA 三联体编码一个氨基酸成为可能。

我想,也许应该是这样的:

RNA = input("")
RNA_dictionary = {
  "GCA":"A", "GCC":"A", "GCG":"A", "GCU":"A",
  "UGC":"C", "UGU":"C", "GAC":"D", "GAU":"D",
  "GAA":"E", "GAG":"E", "UUC":"F", "UUU":"F",
  "GGA":"G", "GGC":"G", "GGG":"G", "GGU":"G",
  "CAC":"H", "CAU":"H", "AUA":"I", "AUC":"I",
  "AUU":"I", "AAA":"K", "AAG":"K", "UUA":"L",
  "UUG":"L", "CUA":"L", "CUC":"L", "CUG":"L",
  "CUU":"L", "AUG":"M", "AAC":"N", "AAU":"N",
  "CCA":"P", "CCC":"P", "CCG":"P", "CCU":"P",
  "CAA":"Q", "CAG":"Q", "AGA":"R", "AGG":"R",
  "CGA":"R", "CGC":"R", "CGU":"R", "CGG":"R",
  "AGC":"S", "AGU":"S", "UCA":"S", "UCC":"S",
  "UCG":"S", "UCU":"S", "ACA":"T", "ACC":"T",
  "ACG":"T", "ACU":"T", "GUA":"V", "GUC":"V",
  "GUG":"V", "GUU":"V", "UGG":"W", "UAC":"Y",
  "UAU":"Y", "UAG":"!", "UAA":"!", "UGA":"!"
}

reverse_translation = RNA_dictionary.replace #(Have no idea how to insert here the input RNA)
print (reverse_translation)

我知道这一切都可以通过使用 BioPython 中的一个函数来完成。也许我学习生物信息学和如何共同编码的方式有点奇怪。但是我喜欢并且觉得这样我更能真正理解代码是如何工作的,而不是像背诗一样去背。

您可以使用字典的键创建一个正则表达式来查找 三元组。然后在re.sub回调函数中使用字典进行替换:

regex = "|".join(RNA_dictionary.keys())
translation = re.sub(regex, lambda m: RNA_dictionary[m.group()], RNA)

print(translation)

dict 与您提到的 inv_dict = {v: k for k, v in ini_dict.items()} 反转后,您就可以使用它了。

seq=""
for aa in prot:
    codon = inv_dict.get(aa)
    seq+=codon

print(seq)

它没有考虑冗余,但请记住,即使对于非常小的蛋白质序列,也有数千种可能的核苷酸序列。

例如,对于蛋白质序列:

AlaProLysPheTrpIleCysAla

你有 6 * 4 * 2 * 2 * 1 * 3 * 2 * 4 = 2304 个可能的序列。