配列相同性検索のBLASTをPythonを用いて実行する方法を解説します。ここでは、特にウェブ版BLASTをPythonを用いて実行する方法の説明です。
バイオインフォマティクス環境
以下の方法で構築した環境であることを前提として説明します。
- Windows10 + WSL (WindowsユーザーのためのPythonを用いたゲノム解析環境)
※ 検証はしていませんが、プログラム自体は基本的にmacOS、Linuxでも動作すると思われます。
ここで使用したアプリケーションのバージョンは以下の通りです。
- Python 3.7.6
- Biopython 1.76 → Biopythonについて
目次
ウェブ版BLASTの実行
BiopythonのBio.Blast.NCBIWWWモジュールのqblast関数を用いることで、ウェブ版のNCBI BlastをPythonから実行することが可能になります。
例えば、GenBankでのAccession番号が8332116の配列をヌクレオチドデータベースに対してBLAST検索して、その結果をblastn-www.xmlファイルに保存する場合は以下のようになります。
from Bio.Blast import NCBIWWW
with NCBIWWW.qblast('blastn', 'nt', '8332116') as handle:
with open('blastn-www.xml', 'wt') as f:
f.write(handle.read())
qblast関数の戻り値をそのままPythonで解析に用いる場合は、以下のようにBio.Blast.NCBIXMLモジュールのread関数を用います。
from Bio.Blast import NCBIWWW, NCBIXML
with NCBIWWW.qblast('blastn', 'nt', '8332116') as handle:
record = NCBIXML.read(handle)
ローカル版BLASTを実行するためにはデータベースの作成も行う必要があるので、気になった配列をぱっと確認する目的ではウェブ版BLASTは非常に有用です。
ただし、サーバーの状態によると思いますが実際に試してみるとBiopythonから実行するウェブ版BLASTは非常に遅く、残念ながらあまり実用的とは言えない状態でした。(たまたまサーバーが込み合っていただけかもしれませんが…)
そのため当サイトでは、気になった配列をぱっと確認するような目的でウェブ版BLASTを使う場合は、ブラウザを使ってBLAST検索することをお勧めします。
BLAST結果の解析
BLAST結果の解析は以下の記事をご覧ください。
あわせて読みたい


PythonでBLASTする!(BLAST結果のXML解析)【Python】
BLAST検索の結果はテキスト文書、タブ区切り、XML形式など選択できますが、プログラムによる解析を行うのであればXML形式が適しています。ここでは、XML形式で取得したB...
コメント