Biopython-overview-of-blast
Biopython-BLASTの概要
BLASTは、 Basic Local Alignment Search Tool の略です。 生物学的配列間の類似領域を見つけます。 Biopythonは、NCBI BLAST操作を処理するBio.Blastモジュールを提供します。 BLASTは、ローカル接続またはインターネット接続で実行できます。
次のセクションでこれらの2つの接続を簡単に理解しましょう-
インターネット経由で実行する
Biopythonは、BLASTのオンラインバージョンを呼び出すBio.Blast.NCBIWWWモジュールを提供します。 これを行うには、次のモジュールをインポートする必要があります-
NCBIWWモジュールは、BLASTオンラインバージョンhttps://blast.ncbi.nlm.nih.gov/Blast.cgiを照会するqblast関数を提供します。 qblastは、オンラインバージョンでサポートされているすべてのパラメーターをサポートしています。
このモジュールに関するヘルプを取得するには、以下のコマンドを使用し、機能を理解します-
通常、qblast関数の引数は、BLAST Webページで設定できるさまざまなパラメーターに基本的に類似しています。 これにより、qblast関数の理解が容易になり、使用するための学習曲線が縮小されます。
接続と検索
BLASTオンラインバージョンの接続と検索のプロセスを理解するために、Biopythonを介してオンラインBLASTサーバーに対して単純なシーケンス検索(ローカルシーケンスファイルで利用可能)を行いましょう。
ステップ1 *-Biopythonディレクトリに *blast_example.fasta という名前のファイルを作成し、入力として以下のシーケンス情報を提供します
- ステップ2 *-NCBIWWWモジュールをインポートします。
ステップ3 *-python IOモジュールを使用して、シーケンスファイル *blast_example.fasta を開きます。
- ステップ4 *-ここで、メインデータとしてシーケンスデータを渡すqblast関数を呼び出します。 もう1つのパラメーターは、データベース(nt)と内部プログラム(blastn)を表します。
- ステップ5 *-以下に示すように、fastaファイル全体を使用するのではなく、Seqオブジェクトを使用しても同じ機能を実行できます-
ここで、メインパラメータとしてSeqオブジェクトであるrecord.seqを渡すqblast関数を呼び出します。
BLASTは、シーケンスに識別子を自動的に割り当てます。
- ステップ6 *-result_handleオブジェクトには結果全体が含まれ、後で使用するためにファイルに保存できます。
結果ファイルの解析方法については、後のセクションで説明します。
スタンドアロンBLASTの実行
このセクションでは、ローカルシステムでBLASTを実行する方法について説明します。 ローカルシステムでBLASTを実行すると、高速になり、独自のデータベースを作成してシーケンスを検索することもできます。
BLASTの接続
一般に、BLASTをローカルで実行することは、サイズが大きく、ソフトウェアを実行するために余分な労力が必要で、コストがかかるため、お勧めしません。 オンラインBLASTは、基本的および高度な目的には十分です。 もちろん、ローカルにインストールする必要がある場合があります。
多くの時間と大量のネットワークを必要とするオンラインで頻繁に検索を行っていることを考慮してください。独自のシーケンスデータまたはIP関連の問題がある場合は、ローカルにインストールすることをお勧めします。
これを行うには、以下の手順に従う必要があります-
- ステップ1 *-指定されたリンクを使用して最新のブラストバイナリをダウンロードしてインストールします-ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
- ステップ2 *-以下のリンクを使用して、最新の必要なデータベースをダウンロードして解凍します-ftp://ftp.ncbi.nlm.nih.gov/blast/db/
BLASTソフトウェアは、サイトに多くのデータベースを提供します。 ブラストデータベースサイトからftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/alu.n.gz[alu.n.gz]ファイルをダウンロードし、aluフォルダーに解凍します。 このファイルはFASTA形式です。 ブラストアプリケーションでこのファイルを使用するには、まずファイルをFASTA形式からブラストデータベース形式に変換する必要があります。 BLASTは、この変換を行うmakeblastdbアプリケーションを提供します。
以下のコードスニペットを使用してください-
上記のコードを実行すると、入力ファイルalu.nが解析され、複数のファイルalun.nsq、alun.nsiなどとしてBLASTデータベースが作成されます。 これで、このデータベースにクエリを実行してシーケンスを見つけることができます。
ローカルサーバーにBLASTをインストールし、サンプルのBLASTデータベース、 alun を照会します。
- ステップ3 *-データベースを照会するサンプルシーケンスファイルを作成しましょう。 ファイルsearch.fsaを作成し、以下のデータをそこに入れます。
シーケンスデータはalu.nファイルから収集されます。したがって、データベースと一致します。
ステップ4 *-BLASTソフトウェアは、データベースを検索するための多くのアプリケーションを提供し、blastnを使用します。 *blastnアプリケーションには、db、query、outの少なくとも3つの引数が必要です。 db は、検索対象のデータベースを指します。 query は一致するシーケンスで、 out は結果を保存するファイルです。 今、この単純なクエリを実行するために以下のコマンドを実行します-
上記のコマンドを実行すると、以下に示すように results.xml ファイルで検索され、出力が得られます(部分的にデータ)
上記のコマンドは、以下のコードを使用してPython内で実行できます-
ここで、最初のものは爆風出力へのハンドルであり、2番目は爆風コマンドによって生成される可能性のあるエラー出力です。
出力ファイルをコマンドライン引数(out =“ results.xml”)として提供し、出力形式をXML(outfmt = 5)として設定しているため、出力ファイルは現在の作業ディレクトリに保存されます。
BLAST結果の解析
一般に、BLAST出力はNCBIXMLモジュールを使用してXML形式として解析されます。 これを行うには、次のモジュールをインポートする必要があります-
ここで、 Python open method を使用してファイルを直接開き、以下に示すように use NCBIXML parse method を使用します-
これにより、次のような出力が生成されます-