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格式的文件,很多种编程语言都可以直接解析。

<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI
<BlastOutput>
  <BlastOutput_program>blastn</BlastOutput_program>
  <BlastOutput_version>BLASTN 2.4.0+</BlastOutput_version>
  <BlastOutput_reference>Zheng Zhang, Scott Schwartz, Lukas Wagner, and Webb Miller (2000), &quot
  <BlastOutput_db>test</BlastOutput_db>
  <BlastOutput_query-ID>Query_1</BlastOutput_query-ID>
  <BlastOutput_query-def>test1</BlastOutput_query-def>
  <BlastOutput_query-len>50</BlastOutput_query-len>
  <BlastOutput_param>
    <Parameters>
      <Parameters_expect>10</Parameters_expect>
      <Parameters_sc-match>1</Parameters_sc-match>
      <Parameters_sc-mismatch>-2</Parameters_sc-mismatch>
      <Parameters_gap-open>0</Parameters_gap-open>
      <Parameters_gap-extend>0</Parameters_gap-extend>
      <Parameters_filter>L;m;</Parameters_filter>
    </Parameters>
  </BlastOutput_param>
<BlastOutput_iterations>
<Iteration>
  <Iteration_iter-num>1</Iteration_iter-num>
  <Iteration_query-ID>Query_1</Iteration_query-ID>
  <Iteration_query-def>test1</Iteration_query-def>
  <Iteration_query-len>50</Iteration_query-len>
<Iteration_hits>
<Hit>
  <Hit_num>1</Hit_num>

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

第 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/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容