Улучшение функции 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")