我正在尝试制作一个基本程序,将字符串ATGTACATGGGCATAGCCATATA转换为其RNA序列,即UACAUGUACCCGUAUCGGUAUAU。

但是输出是:CCCCCUUUUUUUUUUUUUUUUUUUUUUUUUU

但这不是很有效。我认为问题在于,每个字母分别贯穿整个字符串。

我对生物信息学编程非常陌生,因此欢迎提出任何建议。

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'

关于python - 字符串转换器程序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28267090/

10-14 17:44