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