Трехбуквенный набор, состоящий из 'A', 'U', 'G' or 'C'
, определяется как кодон.Каждый кодон соответствует одному из 20 букв.Набор этих букв (аминокислот) определяется как белок.Файл "codons.txt" содержит кодоны и соответствующие им буквы.
Проблема в следующем: внутренний цикл for работает только один раз - он сравнивает строки из файла txt только с первым кодоном.Затем, как я понимаю, метод пропускает внутренний цикл.
Код:
path = r'C:\Users\...\codons.txt'
f = open(path, 'r')
def prot(DNA):
protein = ''
a = True
for i in range (0, len(DNA)-2,3):
codon = DNA[i:i+3:1]
print(codon)
for line in f:
if line[0:3:1] == codon:
protein += line[4:5:1]
print(protein)
return protein
prot('AGUCAGGAUAGUCUUA')
Вывод:
AGU
S
CAG
GAU
AGU
CUU
Вопрос следующий: как сделатьработа внутреннего цикла для каждого кодона?