我正在尝试制作一个基本程序,将字符串 ATGTACATGGGCATAGCCATATA 转换为其 RNA 序列,即 UACAUGUACCCGUAUCGGUAUAU。
但输出是:CCCCCUUUUUUUUUUUUUUUUUUUUUUU
但它不是很有效。我认为问题在于它会逐一遍历整个字符串。
我是生物信息学编程的新手,所以欢迎任何建议。
DNA = "ATGTACATGGGCATAGCCATATA"
dna_length = len(DNA)
print("DNA: " + DNA)
print()
print("Length of DNA in base pairs: "+ str(dna_length))
RNA = []
for char in DNA:
if char == "G":
RNA.append("C")
for line in DNA:
if char == "C":
RNA.append("G")
for line in DNA:
if char == "A":
RNA.append("U")
for line in DNA:
if char == "T":
RNA.append("A")
print("".join(RNA))
请您参考如下方法:
我会使用 dict 来执行您的替换,然后在 join 中使用生成器表达式来执行您的翻译。
>>> RNA = {'G':'C', 'C':'G', 'A':'U', 'T':'A'}
>>> DNA = 'ATGTACATGGGCATAGCCATATA'
>>> translated = ''.join(RNA[i] for i in DNA)
>>> translated
'UACAUGUACCCGUAUCGGUAUAU'
