大きな FASTA ファイルと一緒に大きな BLAST ファイルを処理していますが、BLAST の 1 ブロック (1 行としましょう) に対して複数行の FASTA をロードする必要があります。
BLAST の 2 番目のループ (行) では、最後に処理された FASTA 行から次の行に続くと予想されますが、同じ FASTA 行をすべてロードしています。なんで?そして、どうすれば次の行をロードできますか? インデックスを追加する必要は本当にありますか?
with open(fastaname,'r') as fastafile:
with open(blastfilename,'r') as blastfile:
for line in blastfile:
while True:
fastaline = fastafile.readline()[:-1]
if fastaline[0]=='>':
break
fastaseq += fastaline
somefunction(line,fastaseq)
FASTA の典型的な形式は次のとおりです。
>name_of_seqence\n
ACGATCATCGTAGCTGCATGACTGCA\n
GATCGATCTGATCGATGCAGTCAGTA\n
>name_of_seqence\n
GCACGCGACCACGATCATTGACTGCA\n
CAAAAGATCTGATCGATGCAGTCAGT\n
CAGTCGATGCTAGTCGATGCTCGATA\n
etc.
次の BLAST シーケンスのすべての行に各シーケンスが必要です。