私は Biopython を初めて使用し、genbank ファイルを解析するときにパフォーマンスの問題があります。
多くの 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
これ (スクリプト全体) は正常に動作します。私の問題は、オルガネラと分類学の 2 つの機能を調べるためだけに、gb ファイル全体 (場合によっては巨大になることもあります) をダウンロードしていることです。gb ファイルのこの部分だけをダウンロードできれば、スクリプトははるかに高速になりますが、これが可能かどうかはわかりません。
これができるかどうか誰かが知っていますか?もしそうなら、どうやって? 事前にどうもありがとう