blast本地比对输出结果

之前写过一篇如何使用blast+套件进行本地blast库的创建及比对,今天跟大家聊聊比对结果的输出格式。

比对命令

blastn -db test -query test.fa -outfmt 0 -out test.o0

通过outfmt参数指定输出格式,官方提供的输出格式是19种,以下是具体的介绍。

第 1 种:outfmt 0

软件默认的输出格式,与网页版展示的比对结果类似。包括比对统计结果、比对序列等信息,示例如下。

Query= test1

Length=50
                                                                      Score  
Sequences producing significant alignments:                          (Bits)  

  23 dna:primary_assembly primary_assembly:ARS-UCD1.2:23:1:524986...  93.5   
  4 dna:primary_assembly primary_assembly:ARS-UCD1.2:4:1:12000060...  75.0   
  X dna:primary_assembly primary_assembly:ARS-UCD1.2:X:1:13900914...  54.7   


> 23 dna:primary_assembly primary_assembly:ARS-UCD1.2:23:1:52498615:1 
REF
Length=52498615

 Score = 93.5 bits (50),  Expect = 5e-18
 Identities = 50/50 (100%), Gaps = 0/50 (0%)
 Strand=Plus/Plus

Query  1         GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  50
                 ||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct  24604334  GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  24604383

从上到下每条序列结果依次展示,首先是全部比对结果的信息,只显示序列信息以及比对得分score,接下来是每部分的详细信息,包括evalue、gap、正负链以及比对序列等信息。

第 2 种:outfmt 1

Query= test1

Length=50
                                                                      Score     E
Sequences producing significant alignments:                          (Bits)  Value

  23 dna:primary_assembly primary_assembly:ARS-UCD1.2:23:1:524986...  93.5    5e-18
  4 dna:primary_assembly primary_assembly:ARS-UCD1.2:4:1:12000060...  75.0    2e-12
  X dna:primary_assembly primary_assembly:ARS-UCD1.2:X:1:13900914...  54.7    2e-06



Query_1  1          GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  50
22       24604334   ..................................................  24604383
3        4383526     .............................T.............        4383568
29       108133828  .............................                       108133856

这种格式只保留了序列比对信息,给出输入序列,库中一致的用.表示,不一致的会显示不一致的碱基,可读性更强。

第 3 种: outfmt 2

与第二种一致,只是序列展示有区别。

Query= test1

Length=50
                                                                      Score     E
Sequences producing significant alignments:                          (Bits)  Value

  23 dna:primary_assembly primary_assembly:ARS-UCD1.2:23:1:524986...  93.5    5e-18
  4 dna:primary_assembly primary_assembly:ARS-UCD1.2:4:1:12000060...  75.0    2e-12
  X dna:primary_assembly primary_assembly:ARS-UCD1.2:X:1:13900914...  54.7    2e-06



Query_1  1          GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  50
22       24604334   GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  24604383
3        4383526     AAACAGACTCACAGACGTAGAAAACAGACTTGTGGCTGCCAAG        4383568
29       108133828  GAAACAGACTCACAGACGTAGAAAACAGA                       108133856

所有比对的序列都保留碱基序列格式。

第 4-5 种:outfmt 3/4

两种输出格式与第二、三种格式完全一致。

第 6 种:outfmt 5

这种格式为xml格式的文件,很多种编程语言都可以直接解析。



  blastn
  BLASTN 2.4.0+
  Zheng Zhang, Scott Schwartz, Lukas Wagner, and Webb Miller (2000), "
  test
  Query_1
  test1
  50
  
    
      10
      1
      -2
      0
      0
      L;m;
    
  


  1
  Query_1
  test1
  50


  1

每一个输入序列及比对结果都会以嵌套格式进行整理。

第 7 种:outfmt 6

test1   23  100.000 50  0   0   1   50  24604334    24604383    4.81e-18    93.5
test1   4   97.674  43  1   0   2   44  4383526 4383568 1.74e-12    75.0
test1   X   100.000 29  0   0   1   29  108133828   108133856   2.27e-06    54.7
test2   6   100.000 50  0   0   1   50  85451248    85451297    4.81e-18    93.5
test3   1   100.000 50  0   0   1   50  56773372    56773323    4.81e-18    93.5
test3   1   100.000 50  0   0   1   50  56777851    56777900    4.81e-18    93.5
test3   1   100.000 50  0   0   1   50  56790245    56790294    4.81e-18    93.5

这种格式会输出比较多的统计信息,包括比对位置、得分、evalue等,可读性很强,一般都会选择输出这种格式。

第 8 种:outfmt 7

这种格式基本与第7种一致,只不过每条序列加了说明信息,便于查看结果,相当于加了一个表头。

# BLASTN 2.4.0+
# Query: test1
# Database: test
# Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
# 3 hits found
test1   23  100.000 50  0   0   1   50  24604334    24604383    4.81e-18    93.5
test1   4   97.674  43  1   0   2   44  4383526 4383568 1.74e-12    75.0
test1   X   100.000 29  0   0   1   29  108133828   108133856   2.27e-06    54.7

如果只是一条序列比对,建议使用这种格式。

第 9-10 种:outfmt 8/9

两种格式的编码方式是ASN.1

  data align {
    {
      type partial,
      dim 2,
      score {
        {
          id str "score",
          value int 50
        },
        {
          id str "blast_score",
          value int 50
        },
        {
          id str "e_value",
          value real { 480860855605031, 10, -32 }
        },
        {
          id str "bit_score",
          value real { 934527768506114, 10, -13 }
        },
        {
          id str "num_ident",
          value int 50
        },
        {
          id str "hsp_percent_coverage",
          value real { 1, 10, 2 }
        }
      },

格式与xml格式类似,都是采用嵌套的方式进行展示,不过这种格式我没用过,有兴趣可以尝试一下。

第 11 种:outfmt 10

test1,23,100.000,50,0,0,1,50,24604334,24604383,4.81e-18,93.5
test1,4,97.674,43,1,0,2,44,4383526,4383568,1.74e-12,75.0
test1,X,100.000,29,0,0,1,29,108133828,108133856,2.27e-06,54.7
test2,6,100.000,50,0,0,1,50,85451248,85451297,4.81e-18,93.5
test3,1,100.000,50,0,0,1,50,56773372,56773323,4.81e-18,93.5

这种格式的数据与第七、八种基本一致,只不过分隔符由tab键换成了逗号。

第 12 种:outfmt 11

这种格式也是一种ASN.1格式的文件,只不过是用blast编码对数据进行了处理。

          seq {
            id {
              local str "Query_3"
            },
            descr {
              user {
                type str "CFastaReader",
                data {
                  {
                    label str "DefLine",
                    data str ">test3"
                  }
                }
              },
              title "test3"
            },
            inst {
              repr raw,
              mol na,
              length 50,
              seq-data ncbi2na '7F34C88518E691FDB5D1C4AF90'H
            }
          },

序列信息使用一种叫NCBI2na的方法进行重新编码,具体可参照https://ncbi.github.io/cxx-toolkit/pages/ch_datamod

其他格式 outfmt 12-18

多数使用json或者xml格式的文件进行编码,具体包括以下几个。

12 = Seqalign (JSON),
13 = Multiple-file BLAST JSON,
14 = Multiple-file BLAST XML2,
15 = Single-file BLAST JSON,
16 = Single-file BLAST XML2,
17 = Sequence Alignment/Map (SAM),
18 = Organism Report

上述格式中,如果输入文件中存在多条序列,标注Multiple的会单独输出每条序列的比对结果。其中17输出sam格式的文件,18一般的比对时不能使用。

# outfmt 17
@HD VN:1.2  SO:coordinate   GO:reference
@SQ SN:Query_1  LN:50
@SQ SN:Query_2  LN:50
@SQ SN:Query_3  LN:50
@SQ SN:Query_4  LN:50
@SQ SN:Query_5  LN:50
@PG ID:0    VN:2.4.0+   CL:blastn -db test -query test.fa -outfmt 17 -out test.o17  PN:blastn
BL_ORD_ID:22    0   Query_1 1   255 24604333H50M27894232H   *   0   0   AS:i:50 EV:f:4.80861e-18    NM:i:0  PI:f:100.00 BS:f:93.4528
BL_ORD_ID:29    0   Query_1 1   255 108133827H29M30875288H  *   0   0   AS:i:29 EV:f:2.26911e-06    NM:i:0  PI:f:100.00 BS:f:54.6731
BL_ORD_ID:3 0   Query_1 2   255 4383525H43M115617033H   *   0   0   AS:i:40 EV:f:1.74176e-12    NM:i:0  PI:f:97.67  BS:f:74.9863
BL_ORD_ID:5 0   Query_2 1   255 85451247H50M32355043H   *   0   0   AS:i:50 EV:f:4.80861e-18    NM:i:0  PI:f:100.00 BS:f:93.4528
BL_ORD_ID:0 16  Query_3 1   255 101760738H50M56773322H  *   0   0   AS:i:50 EV:f:4.80861e-18    NM:i:0  PI:f:100.00 BS:f:93.4528

特殊使用

上述格式中outfmt为6、7、10三种格式的文件在输出时还可以指定输出特定数据,具体代码如下。

blastn -db test -query test.fa \
-outfmt "6 qseqid sseqid pident evalue bitscore qseq sseq" -out test.o6.target

以上代码输出了输入及数据库中的序列名称、evalue以及两条序列的碱基序列等信息。

test1   23  100.000 4.81e-18    93.5    GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG  GAAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAGGTGGTG
test1   4   97.674  1.74e-12    75.0    AAACAGACTCACAGACGTAGAAAACAGACATGTGGCTGCCAAG AAACAGACTCACAGACGTAGAAAACAGACTTGTGGCTGCCAAG
test1   X   100.000 2.27e-06    54.7    GAAACAGACTCACAGACGTAGAAAACAGA   GAAACAGACTCACAGACGTAGAAAACAGA
test2   6   100.000 4.81e-18    93.5    CCACCACAGGGGTTTGAGTAAGAGGAGGGATGTTTTGTGGGAGGCTGTTA  CCACCACAGGGGTTTGAGTAAGAGGAGGGATGTTTTGTGGGAGGCTGTTA
test3   1   100.000 4.81e-18    93.5    CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC  CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC
test3   1   100.000 4.81e-18    93.5    CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC  CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC
test3   1   100.000 4.81e-18    93.5    CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC  CTTTATCATAGAGACCACGATGCGGCACTTTCGTCCTCACTACAGGTTGC

指定时可以设定包括qseqid在内的共40种统计结果及相关信息,具体见参考文献[1]。

参考文献

[1] https://www.ncbi.nlm.nih.gov/books/NBK279684/

你可能感兴趣的:(blast本地比对输出结果)