aaikmyz's diary

聴いた音楽とか見た映画とか行った美術館とかを記録しておきたい。

blastとblast+

研究室のクラスタマシンはblastで、自宅のMBPにはblast+が入っててメンドイ。blast+の方が高性能っぽいしクラスタの方にも入れたい。
とりあえず自分が使うときのblast+の方のblastnのコマンドメモ。

blastn -query query.fasta -db yeast.nt -out result.out -evalue 0.01 -outfmt "7 qseqid sseqid length mismatch gapopen qstart qend sstart send evalue qseq sseq"

  • -queryで検索するファイル指定
  • -dbで参照するデータベース指定
  • -outで出力ファイル指定
  • -evalueでevalueの上限指定(デフォルトは10。大きすぎない?)
  • -outfmtは出力のフォーマット指定。0から9の数字で指定。ヘルプを見ると

0 = pairwise,
1 = query-anchored showing identities,
2 = query-anchored no identities,
3 = flat query-anchored, show identities,
4 = flat query-anchored, no identities,
5 = XML Blast output,
6 = tabular,
7 = tabular with comment lines,
8 = Text ASN.1,
9 = Binary ASN.1,
10 = Comma-separated values,
11 = BLAST archive format (ASN.1)

だそう。デフォルトは0。あとで処理することを考えると6か7のタブ区切りが便利?
6, 7, 10 は出力する情報を細かく設定できて、その時は

-outfmt "7 qseqid sseqid length mismatch gapopen qstart qend sstart send evalue qseq sseq"

みたいに書く。出力できる情報は以下。
(自分で使ったことあるのだけ日本語訳した)

引数 意味
qseqid クエリの配列名
qgi Query GI
qacc Query accesion
qaccver Query accesion.version
sseqid 検索対象の配列名
sallseqid All subject Seq-id(s), separated by a ';'
sgi Subject GI
sallgi All subject GIs
sacc Subject accession
saccver Subject accession.version
sallacc All subject accessions
qstart クエリの中のアラインメントの開始位置
qend クエリの中のアラインメントの終了位置
sstart 検索対象の配列のアライメントの開始位置
send 検索対象の配列のアラインメントの終了位置
qseq クエリのアラインメント配列
sseq 検索対象のアラインメント配列
evalue E-value
bitscore Bit score
score Raw score
length アラインメントの長さ
pident Percentage of identical matches
nident Number of identical matches
mismatch アラインメントのミスマッチ数
positive Number of positive-scoring matches
gapopen ギャップの開始位置の数
gaps ギャップ数
ppos マッチの割合%
frames Query and subject frames separated by a '/'
qframe Query frame
sframe Subject frame
btop Blast traceback operations (BTOP)

デフォルトは

qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore

で、これを指定したかったら"std"と書けばOK。