2010-02-23 16:48:13
自分用の覚書。久しぶりに複数の塩基配列の相同性をPython(+BioPython)を使ってNCBIのBlastサーバに問い合わせようと思ったら、こんなエラーが出た。調べたい塩基配列はFASTA形式で一つのファイルに保存している。
DeprecationWarning: Bio.Fasta is deprecated. Please use the "fasta" support in Bio.SeqIO (or Bio.AlignIO) instead.
これは警告だけで、実行できなくなるわけではないようだが、あまり気持ちのいいものでもないし、いずれ使えなくなるということなので、Bio.Fastaを使うのをやめ、云われたとおりにBio.SeqIOを使ってみることにする。BioPythonのSeqIOの説明を見ながら、
#!/usr/bin/python from Bio.Blast import NCBIWWW from Bio import SeqIO handle = open('./testfile.fasta', 'rU') for record in SeqIO.parse(handle, 'fasta') : print record.id result_handle = NCBIWWW.qblast('blastn', 'nr', record.seq) blast_results = result_handle.read() save_file = open('blast_results.xml','a') save_file.write(blast_results) handle.close()
こんなふうにすると、複数の塩基配列を収録しているFASTA形式のファイルを読み込んで、Blastサーバに問い合わせ、返ってきたXML形式の結果をblast_results.xmlというファイルに書き込んで保存していく。
そんなわけで、さっき2291個の問い合わせを始めたら、なんだか一晩かかりそうな感じである。