Я новичок в Biopython, и у меня проблема с производительностью при разборе файлов genbank.Загрузите только часть файла genbank с biopython
Мне нужно разобрать много файлов gb, из которых у меня есть номера доступа. После разбора я хочу только изучить таксономию и органелл файла. Прямо сейчас, у меня есть этот код:
from Bio import SeqIO
from Bio import Entrez
gb_acc1 = Entrez.efetch(db='nucleotide', id=access1, rettype='gb', retmode='text') #Where access1 contents the accession number
rec = SeqIO.read(gb_acc1, 'genbank')
cache[access1] = rec #where cache is just a dictionary where saving the gb files already downloaded
feat = cache[access1].features[0]
if 'organelle' in feat.qualifiers.keys(): #And the code goes on
Для того, чтобы искать систематике у меня есть:
gi_h = Entrez.efetch(db='nucleotide', id=access, rettype='gb', retmode='text')
gi_rec = SeqIO.read(gi_h, 'genbank')
cache[access]=gi_rec
if cache[access].annotations['taxonomy'][1] == 'Fungi':
fungi += 1 #And the code goes on
Это (весь скрипт) работает отлично. Моя проблема в том, что я загружаю весь gb-файл (который иногда огромен), чтобы посмотреть на эти две функции: органелла и таксономия. Если бы я мог только загрузить эту часть файла gb, мой скрипт был бы намного быстрее, но я не понял, возможно ли это.
Кто-нибудь знает, можно ли это сделать, и если да, то как? Большое спасибо заблаговременно
Спасибо! Оба предложения были хорошей идеей и, похоже, ускорили сценарий. Тем не менее, все еще не лучшее решение, которое я ищу. Проверьте, например, этот файл gb http://www.ncbi.nlm.nih.gov/nuccore/CP015199 Здесь проблема не в последовательности, а в огромном количестве feautres (CDS, ген), которую я все еще скачиваю, а не глядя в потом. Но спасибо!! – VictorBello