2016-07-27 5 views
1

Я новичок в 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, мой скрипт был бы намного быстрее, но я не понял, возможно ли это.

Кто-нибудь знает, можно ли это сделать, и если да, то как? Большое спасибо заблаговременно

ответ

1

Вы можете использовать seq_start and seq_stop, чтобы усечь вашу последовательность, а затем проанализировать ее, как и раньше.

gb_acc1 = Entrez.efetch(db='nuccore', id=access1, rettype='gb', retmode='xml', seq_start=1, seq_stop=1) 

Возможно, вам даже не нужно хранить весь GenBank файл, но только словарь с идентификатором в качестве ключа и систематики и органеллы как ценности?

+0

Спасибо! Оба предложения были хорошей идеей и, похоже, ускорили сценарий. Тем не менее, все еще не лучшее решение, которое я ищу. Проверьте, например, этот файл gb http://www.ncbi.nlm.nih.gov/nuccore/CP015199 Здесь проблема не в последовательности, а в огромном количестве feautres (CDS, ген), которую я все еще скачиваю, а не глядя в потом. Но спасибо!! – VictorBello

Смежные вопросы