Нет результата выполнения программы
Я написал код, который должен считывать протеины из файла и преобразовывать каждую аминокислоту в нуклеотиды. Программа выдает мне пустой результат:
import random
import json
protein_file ='sample.faa'
result_file = 'result.json'
proteins = []
pattern_nucleotides = {}
with open(protein_file) as f:
lines = f.readlines()
protein = ''
for line in lines:
if line.startswith('>'):
if protein:
proteins.append(protein)
protein = line
else:
protein += line
AA2NA = {
"A": list("GCT,GCC,GCA,GCG".split(",")),
"R": list("CGT,CGC,CGA,CGG,AGA,AGG".split(",")),
"N": list("AAT,AAC".split(",")),
"D": list("GAT,GAC".split(",")),
"C": list("TGT,TGC".split(",")),
"Q": list("CAA,CAG".split(",")),
"E": list("GAA,GAG".split(",")),
"G": list("GGT,GGC,GGA,GGG".split(",")),
"H": list("CAT,CAC".split(",")),
"I": list("ATT,ATC,ATA".split(",")),
"L": list("TTA,TTG,CTT,CTC,CTA,CTG".split(",")),
"K": list("AAA,AAG".split(",")),
"M": list("ATG".split(",")),
"F": list("TTT,TTC".split(",")),
"P": list("CCT,CCC,CCA,CCG".split(",")),
"S": list("TCT,TCC,TCA,TCG,AGT,AGC".split(",")),
"T": list("ACT,ACC,ACA,ACG".split(",")),
"W": list("TGG".split(",")),
"Y": list("TAT,TAC".split(",")),
"V": list("GTT,GTC,GTA,GTG".split(",")),
"*": list("TAA,TGA,TAG".split(","))
}
def aa2na(lines):
na_seq = [random.choice(AA2NA.get(c, ["---"])) for c in lines]
result = "".join(na_seq)
pattern_nucleotides[result] = aa2na(lines)
with open(result_file, 'w') as fp:
json.dump(pattern_nucleotides, fp)
Подскажите, пожалуйста, в чем может быть проблема.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
ну первое, что приходит в голову
- вы привели набор функций, а где вызов из основного тела программы этих функций?
без этого программа ничего делать не будет
массив
proteinsи объектpattern_nucleotidesнигде в функциях не используются и наоборот - нигде в основном коде не используются указанные функции (см. п.1)касательно заполнения
AA2NAпросто вопрос - почему бы вместоlist("GCT,GCC,GCA,GCG".split(",")),
не сделать
list("GCT","GCC","GCA","GCG"),
вроде как одно и тоже, но визуально чуть легче смотрится