Local Blast でNCBI のデータベースを検索する方法

メリット: 早い

デメリット:  最新のデータを求めるなら、データベースの更新を毎月する手間

 

環境構築

1. 以下を用意

ftp://ftp.ncbi.nih.gov/blast/db/FASTA/nt.gz ; NCBI BLAST db の全塩基配列

ftp://ftp.ncbi.nih.gov/blast/db/README ; NCBI BLAST db のマニュアル

ftp://ftp.ncbi.nih.gov/blast/executables/blast+/ ; 最新版のBLAST+

              # 32bit Windows は2.2.31 をダウンロード

              # 64bit Windows は2.7.1 (or higher) をダウンロード 

              # (ファイル名) ncbi-blast-2.7.1+-win64.exe 

              # db は差分更新も可能 (後日追記予定)

2. BLAST+ をインストール

 exe を実行するだけ

3. nt.gz をダウンロード

4. nt. gz を解凍 (Core i7 で2時間ほど要)

              # 解凍ソフトはDLL 非依存のLhaplus を推奨

5. Windows スタートメニューからPowerShell を起動

6. PowerShell でnt.gz を解凍したフォルダを開く

              # nt.gz の保存フォルダが [E:\nt] なら [cd E:\nt] と入力

              # フォルダパスはエクスプローラーのアドレスバーから容易にコピー可

7. PowerShell で以下のコマンドを入力 (Core i7 で1時間ほど要)

makeblastdb -in input_db -dbtype nucl -parse_seqids

 

####環境構築終了####


 

運用

(基本編) 

・Blast+ はデータベースを開いたフォルダで以下のコマンドを入力

>blastn -db nt query test.fasta -out test.html -html -num_alignments 50 -num_descriptions 50 -num_threads 8

 

              # nt はデータベース名

              # query では検索対象とするfasta ファイルを指定

              # out test.txt にし、-html を削除するとtxt ファイルで出力される

# >blastn -db nt query test.fasta -out test.txt -num_alignments 50 -num_descriptions 50 -num_threads 8

              # num_alignments とnumdescriptions の “50” は検索結果で表示する数

              # num_threads はcpu のコア数に応じる

 

#####以上で運用可能####

 

(応用編) 簡単なTips 

・データ管理上、データベースと検索する配列を別フォルダにしたい

blastn -db E:\nt/nt -query test.fasta -out test.html -num_alignments 50 -num_descriptions 50 -html -num_threads 8

 

              #データベースかquery のどちらかをフルパスで指定する

              # 例はquery に合わせてcd E:\ を開き、データベースをフルパス指定

              # 両方をフルパスで指定することも原理的に可能

              # フルパスはエクスプローラーのパスのコピーが楽

 

・大量データの塩基配列のブラスト検索を行いたい

単純にmulti fasta を利用する。

# result は一枚綴りのファイルで返される。

# Perl やPython で分割を推奨 (将来的にコマンドを公開予定)

その他の使い方

配列データベースをつくる

 makeblastdb -in db20230928.fasta -dbtype nucl -parse_seqids; db20230928.fasta は配列を集積したfasta

 UNITE のデータを使う場合は「-parse_seqids」は削除しないとエラーになる。いらないかも。


検索する

blastn -db db20230928.fasta -query blackyeast.fasta -out output.txt -num_threads 8 -outfmt 6 -max_target_seqs 5; db20230928.fasta は上で作ったデータベース名blackyeast.fasta は検索したい配列 (複数可)、 -max_target_seqs 5 にしておけばOK