Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

BLAST+

More than 5 years have passed since last update.

未だに、legacy blast を使って説明しているのが多いけど、個人使用においては、blast+ を使わない意味が無いですよ。と。
特に -m8 相当で、subject length とか、 subject title とか出せるんだから、、、、

って書いてた古文書発見1

その中から、 makeblastdbblastnlegacy_blast.pl の所を記載。
他のコマンドに関しては、legacy_blast.pl での変換、及び -help での確認を。

makeblastdb

formatdb の代り

$ makeblastdb -dbtype nucl  -parse_seqids -in INPUT

INPUT にファスタ名を

  • help => makeblastdb -help

blastn

megablast の代り。

例えば、

$ megablast -d BLASTDB -i INPUT -o OUTPUT -m 8 -v 1 -b 1 -e 1e-10 -F F

は、

$ blastn -db BLASTDB -query INPUT -evalue 1e-10 -num_descriptions 1 -num_alignments 1 -out OUTPUT -outfmt 6 -dust no

となる2

blastall -p blastn の代り

blastn -task blastn であるが、 megablast 機能を OFF にし、遅くなるだけなので脳内からは消し去るべき。

bl2seq の代り

bl2seq も吸収されて、 XXXXX -query FASTA -sbject FASTA に。XXXXX は、blastn とか blastp とか。

-outfmt 6

これは -m 8 に相当するが、-outfmt '6 STR' を指定する事によって、拡張させる事が出来る。もちろんデフォルトの状態から減らす事も出来るが、混乱を避ける為に、減らしたりカスタマイズしすぎたりするのは避けるべき3

-outfmt '6 std stitle qlen slen'

現在はこの形式で使用している。

   Options 6, 7, and 10 can be additionally configured to produce
   a custom format specified by space delimited format specifiers.
   The supported format specifiers are:
            qseqid means Query Seq-id
               qgi means Query GI
              qacc means Query accesion
           qaccver means Query accesion.version
              qlen means Query sequence length
            sseqid means Subject Seq-id
         sallseqid means All subject Seq-id(s), separated by a ';'
               sgi means Subject GI
            sallgi means All subject GIs
              sacc means Subject accession
           saccver means Subject accession.version
           sallacc means All subject accessions
              slen means Subject sequence length
            qstart means Start of alignment in query
              qend means End of alignment in query
            sstart means Start of alignment in subject
              send means End of alignment in subject
              qseq means Aligned part of query sequence
              sseq means Aligned part of subject sequence
            evalue means Expect value
          bitscore means Bit score
             score means Raw score
            length means Alignment length
            pident means Percentage of identical matches
            nident means Number of identical matches
          mismatch means Number of mismatches
          positive means Number of positive-scoring matches
           gapopen means Number of gap openings
              gaps means Total number of gaps
              ppos means Percentage of positive-scoring matches
            frames means Query and subject frames separated by a '/'
            qframe means Query frame
            sframe means Subject frame
              btop means Blast traceback operations (BTOP)
           staxids means unique Subject Taxonomy ID(s), separated by a ';'
                         (in numerical order)
         sscinames means unique Subject Scientific Name(s), separated by a ';'
         scomnames means unique Subject Common Name(s), separated by a ';'
        sblastnames means unique Subject Blast Name(s), separated by a ';'
                         (in alphabetical order)
        sskingdoms means unique Subject Super Kingdom(s), separated by a ';'
                         (in alphabetical order) 
            stitle means Subject Title
        salltitles means All Subject Title(s), separated by a '<>'
           sstrand means Subject Strand
             qcovs means Query Coverage Per Subject
           qcovhsp means Query Coverage Per HSP
   When not provided, the default value is:
   'qseqid sseqid pident length mismatch gapopen qstart qend sstart send
   evalue bitscore', which is equivalent to the keyword 'std'

legacy_blast.pl

legacy blast のコマンド文字列を BLAST+ で実行したいのであれば、

$ legacy_blast.pl コマンド文字列

としてコマンド変換する。
但し、パスが /usr/bin/ 決め打ちとなっているので、

$ legacy_blast.pl コマンド文字列 --print_only

で、変換後のコマンドを確認編集してから実行するのが良い。


  1. ちなみに、今ポストされてる文章は、2015 年のもの。多分 10 年後でも legacy blast は残ってるんだろーなー、、、 

  2. -num_descriptions 1-num_alignments 1 が排他的らしいので、別のオプション -max_target_seqs 1 などを使う。 

  3. あたり前だけど、blastx, blastp などでも同様。  

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away