需要从DNA转录中的字母开始读取信使RNA吗

2024-06-01 13:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个RNA信使:

'UAUGCUAAUUCGAUAACCGA'

我想创建一个从'AUG'密码子开始存储的函数,但我不知道如何创建它。 结果应该是这样的:

'AUGCUAAUUCGAUAACCGA'

我已经试过了:

 cadenaseparada = []
 for i in range(0,fin,3):
     codon = v[i] +v[i+1] + v[i+2]
     cadenaseparada.append(codon)

Tags: 函数inforrangeaugrna密码子信使
3条回答

也许用index?你知道吗

dna = 'UAUGCUAAUUCGAUAACCGA'

try:
    mrna_index = dna.index('AUG')
except ValueError:
    mrna_index = None
    cadena_separada = None
else:
    cadena_separada = dna[mrna_index:]

有些事情是错误的:

  • 不能遍历整个字符串,因为还包括索引后面的两个元素。你知道吗
  • 此外,如果AUG不是从n * 3(其中n是任何整数)的索引开始,则不应使用3的步长,否则会丢失它。你知道吗
  • 您不需要追加,您可以使用[start:stop]语法排除字符串的范围。你知道吗

例如:

rna = 'U A U G C U A A U U C G A U A A C C G A'
rna = ''.join(rna.split()) # This just converts it to a string with no whitspaces.

# Don't iterate over the whole string, stop when reaching len(rna)-2
for i in range(0,len(rna)-2):
    # Break and only keep everything from here on
    # Compare the current 3 letters
    if rna[i:i+3] == 'AUG':
        out = rna[i:]
        break # End the loop here
print out
# 'AUGCUAAUUCGAUAACCGA' 
rna = 'UAUGCUAAUUCGAUAACCGA'
index = rna.find('AUG')
out = rna[index:] if index >= 0 else ''

print out

相关问题 更多 >