Нет результата выполнения программы

Я написал код, который должен считывать протеины из файла и преобразовывать каждую аминокислоту в нуклеотиды. Программа выдает мне пустой результат:

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

ну первое, что приходит в голову

  1. вы привели набор функций, а где вызов из основного тела программы этих функций?

без этого программа ничего делать не будет

  1. массив proteins и объект pattern_nucleotides нигде в функциях не используются и наоборот - нигде в основном коде не используются указанные функции (см. п.1)

  2. касательно заполнения AA2NA просто вопрос - почему бы вместо

     list("GCT,GCC,GCA,GCG".split(",")),
    

не сделать

    list("GCT","GCC","GCA","GCG"),

вроде как одно и тоже, но визуально чуть легче смотрится

→ Ссылка