Улучшение функции Genbank

Я пытаюсь добавить более 70000 новых функций в файл genbank с помощью biopython.

У меня есть этот код:

from Bio import SeqIO
from Bio.SeqFeature import SeqFeature, FeatureLocation

fi = "myoriginal.gbk"
fo = "mynewfile.gbk"

for result in results:
     start = 0
     end = 0

     result = result.split("\t")
     start = int(result[0])
     end = int(result[1])

     for record in SeqIO.parse(original, "gb"):
         record.features.append(SeqFeature(FeatureLocation(start, end), type = "misc_feat"))
         SeqIO.write(record, fo, "gb")

Результаты - это просто список списков, содержащих начало и конец каждой из функций, которые мне нужно добавить в исходный файл gbk.

Это решение очень дорого для моего компьютера, и я не знаю, как повысить производительность. Любая хорошая идея?

1 ответ

Решение

Вы должны разобрать файл genbank только один раз. Опуская что results содержит (я точно не знаю, потому что в вашем примере есть некоторые недостающие фрагменты кода), я думаю, что-то вроде этого улучшит производительность, изменив ваш код:

fi = "myoriginal.gbk"
fo = "mynewfile.gbk"

original_records = list(SeqIO.parse(fi, "gb"))

for result in results:
    result = result.split("\t")
    start = int(result[0])
    end = int(result[1])

    for record in original_records:
        record.features.append(SeqFeature(FeatureLocation(start, end), type = "misc_feat"))
        SeqIO.write(record, fo, "gb")
Другие вопросы по тегам