Blast使用方法攻略
Query id,Subject id,% identity,alignment length,mismatches,gap openings,q. start,q. end,s. start,s. end,e-value,bit score
Blast,全称Basic Local Alignment Search Tool,即"基于局部比对算法的搜索工具",由Altschul等人于1990年发布。Blast能够实现比较两段核酸或者蛋白序列之间的同源性的功能,它能够快速的找到两段序列之间的同源序列并对比对区域进行打分以确定同源性的高低。
Blast的运行方式是先用目标序列建数据库(这种数据库称为database,里面的每一条序列称为subject),然后用待查的序列(称为 query)在database中搜索,每一条query与database中的每一条subject都要进行双序列比对,从而得出全部比对结果。
Blast是一个集成的程序包,通过调用不同的比对模块,blast实现了五种可能的序列比对方式:
blastp:蛋白序列与蛋白库做比对,直接比对蛋白序列的同源性。
blastx:核酸序列对蛋白库的比对,先将核酸序列翻译成蛋白序列(根据相位可以翻译为6种可能的蛋白序列),然后再与蛋白库做比对。
blastn:核酸序列对核酸库的比对,直接比较核酸序列的同源性。
tblastn:蛋白序列对核酸库的比对,将库中的核酸翻译成蛋白序列,然后进行比对。
tblastx:核酸序列对核酸库在蛋白级别的比对,将库和待查序列都翻译成蛋白序列,然后对蛋白序列进行比对。
Blast提供了核酸和蛋白序列之间所有可能的比对方式,同时具有较快的比对速度和较高的比对精度,因此在常规双序列比对分析中应用最为广泛。可以毫不夸张的说,blast是做比较基因组学乃至整个生物信息学研究所必须掌握的一种比对工具。
使用
Blast的运行分为两个步骤:第一,建立目标序列的数据库;第二,做blast比对。
1.运行建库程序formatdb:
建库的过程是建立目标序列的索引文件,所用程序是formatdb。程序允许的输入格式FASTA或者ASN.1格式,通常我们使用FASTA格式的序列作为输入。用于建库的FASTA序列是db.seq,formatdb的基本命令是:
formatdb -i db.seq [-options]
常用的参数有以下几个:
-p (T/F):-p参数的意义是选择建库的类型,"T"表示蛋白库,"F"表示核酸库。缺省值为"T"。
-o (T/F):-o参数的意义是判断是否分析序列名并建立序列名索引。"T"表示建立序列名索引,"F"表示不建立序列名索引。缺省值为"F"。
程序输出:
如果建立的是核酸库,输出为db.seq.nhr、db.seq.nin、db.seq.nsq,如果选择了参数"-o T",还会同时输出db.seq.nsd、db.seq.nsi、db.seq.nni、db.seq.nnd。
蛋白库和核酸库的输出类似,相应的输出文件为:db.seq.phr、db.seq.pin、db.seq.psq和db.seq.psd、db.seq.psi、db.seq.pni、db.seq.pnd。
除了这些结果,程序还会输出LOG文件(默认为formatdb.log),里面记录了运行时间、版本号、序列数量等信息。
几点需要注意的问题:
1、建库以后,做blast比对的输入文件就是建库所得的文件db.seq.n**或者db.seq.p**,而不是原始的FASTA序列。也就是说,建库以后,原始的序列文件是可以删除的。
2、如果命令行中选择了"-o T",并且目标序列中含有gi号重复的的序列名时,程序会停止建库并报错。例如,下列序列文件中出现了重复的序列名:
>gi|112385745|gb|DQ859020.1| Oryza sativa (japonica cultivar-group) glutathione S-transferase 2 mRNA, complete cds
ATGGCGGAGGCGGCGGGGGCGGCG
GCTCGCACCGCGTCCGCATCGCCC
CAAGGGGGAGCACTCTGATCCAGA
......
CAAGCAGCACTCCCAGACAGACAACCAGATGCCCCTTCCTCTACCTAG
>gi|112385745|gb|DQ859020.1| Oryza sativa (japonica cultivar-group) glutathione S-transferase 2 mRNA, complete cds
ATGGCGGAGGCGGCGGGGGCGGCG
GCTCGCACCGCGTCCGCATCGCCC
CAAGGGGGAGCACTCTGATCCAGA
......
运行时就会报如下错误:
[formatdb] ERROR: Failed to create index.
3、如果输入序列不符合FASTA格式或者ASN.1格式,程序会自动退出,并报错:
[formatdb] ERROR: Could not open db
4、核酸序列可以用于建核酸库和蛋白库,但是蛋白序列不能用于建核酸库。
其他参数简介:
-l:"-l 文件名"用来改变LOG文件的命名
-n:"-n 文件名"可以自定义生成的库文件命名
-a:输入文件为ASN.1格式
2.运行比对程序blastall:
Blast的主程序是blastall。程序的输入文件是query序列(-i 参数)和库文件(-d 参数),比对类型的选择(-p 参数)和输出文件(-o 参数)由用户指定。其中“-p”参数有5种取值:
-p blastp:蛋白序列与蛋白库做比对。
-p blastx:核酸序列对蛋白库的比对。
-p blastn:核酸序列对核酸库的比对。
-p tblastn:蛋白序列对核酸库的比对。
-p tblastx:核酸序列对核酸库在蛋白级别的比对。
这些元素就构成了blast的基本运行命令(以blastn为例):
blastall -i query.fasta -d database_prefix -o blast.out -p blastn
其中如果"-o"参数缺省,则结果输出方式为屏幕输出。
Blast的结果包含的信息很丰富。每一个query的比对结果从"BLASTN"开始,记录了版本和作者信息,"Query= "之后记录了query名和序列长度。如果两条序列没有找到相关性信息,那么在"Searching.done"下方显示"***** No hits found ******";反之,则在"Searching.done"下方记录了该query序列和库中每一条subject序列的比对概况列表,包括比对得分(Score)和期望值(E value)。期望值是一个大于0的正实数,代表两条序列不相关的可能性。期望值是在整体上综合评定两条序列的相似性的参数,期望值数值越小,序列相似性就越高,反之期望值数值越大,相似性越低。比对的输出结果会按照期望值从低到高的顺序来排列。Query序列和每一条subject序列比对结果的详细信息以">"开始。需要注意的是同一个query和同一个subject可能会有多个比对结果,每一个具体的结果从"Score ="开始,记录了比对得分、期望值、相似度百分比(identities)、比对的空位和两条序列的比对方向,之后是比对条形图,显示了比对区域内每个碱基的比对情况。列出两条序列的所有比对结果后,罗列比对的参数设置和统计信息,至此两条序列间的比对结果输出完毕。
对于蛋白相关的比对,需要在blastall的运行目录下放置取代矩阵,并在运行时指定此替代矩阵,程序才能正常运行,否则blastall会报错退出。一般来讲,蛋白比对时最常用的取代矩阵是BLOSUM62矩阵。
blastall是最常用的blast程序之一,其功能非常强大,其下面有非常多的参数,但是一般使用的参数如:-p、-i、-d、-o、-e等几个。
- -p: 执行的程序名称
- -d: 搜索的数据库名称
- -i : 要查询的序列文件名(Query File)
- -e:(数学)期望值(Expectation value),E值是个统计阈值,缺省值10, 意指比对结果中由于随机偶然性产生的匹配结果不大于10,E值越小结果越可靠。
- -o :查询结果输出文件名
- -m: 比对结果显示格式选项,缺省值为0 ,即pairwise格式。另外还可以根据不同的需要选择1~6等不同的格式。
- -I :在描述行中显示gi号[T/F],缺省值F
- -v :单行描述(one-line description)的最大数目,缺省值500
- -b :显示的比对结果的最大数目,缺省值250
- -F :对于要查询的序列做低复杂度区域(low complexity regions, LCR)的过滤[T/F],缺省值T。对blastn用的是DUST程序,其他比对用的是SEG程序。
- 所谓“低复杂度区域”是指某些或一些残基过多表现,短周期重复等。对于高等哺乳动物的基因组序列,可以先用RepeatMask程序遮蔽重复元件。在输出结果中,对LCR区的序列核酸用“N”代替,蛋白质序列用“X”代替。
- -a:运行BLAST程序所使用的处理器的数目,缺省值1
- -S:在数据库中搜索时所使用的核酸链(strand),只对blastn、blastx和tblastx有效;1表示top,2表示bottom,3表示both;缺省值3
- -T: 产生HTML格式的输出[T/F],缺省值F
- -n: 使用MegaBlast搜索[T/F],缺省值F
- -G: 打开一个gap的罚分(0表示使用缺省设置值),默认0
- -E: 扩展一个gap的罚分(0表示使用缺省设置值),默认0
- -q: 一个核酸碱基的错配(mismatch)的罚分(只对blastn有效),缺省值-3
- -r : 一个核酸碱基的正确匹配(match)的奖分(只对blastn有效),缺省值1
- -M: 所使用的打分矩阵,缺省值BLOSUM62
1.1.1. 参数说明
基本参数、比对优化参数、结果输出参数、控制输入参数
表:blastall命令的参数说明
参数 | 说明 | 值 | 默认值 | 备注 |
-p | 使用的程序 | 字符[String] | blastnblastpblastx
tblastn tblastx |
|
-d | 使用的数据库 | 文件名[File In] | nr | |
-i | 搜索用的序列 | 文件名[File In] | stdin | |
-e | 期望值 | 数字[Real] | 10.0 | |
-m | 控制比对结果的样式 | 0到11的整数[Integer] | 0 | 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 = query-anchored no identities and blunt ends, 6 = flat query-anchored, no identities and blunt ends, 7 = XML Blast output, 8 = tabular, 9 tabular with comment lines 10 ASN, text 11 ASN, binary |
-o | 比对结果存放的文件名 | 文件名[File Out] | stdout | |
-F | 过滤询问序列 | [String] | T | DUST with blastn, SEG with others |
-G | 打开gap得分 | [Integer] | -1 | |
-E | 延伸gap得分 | [Integer] | -1 | |
-X | X dropoff value for gapped alignment (in bits) | [Integer] | 0 | blastn 30, megablast 20, tblastx 0, all others 15 |
-I | 显示gi号Show GI’s in deflines | [T/F] | F | |
-q | 核酸错配罚分 | [Integer] | -3 | blastn only |
-r | 核酸匹配得分 | [Integer] | 1 | blastn only |
-v | Number of database sequences to show one-line descriptions for (V) | [Integer] | 500 | |
-b | Number of database sequence to show alignments for (B) | [Integer] | 250 | |
-f | Threshold for extending hits | [Integer] | 0 | blastp 11, blastn 0, blastx 12, tblastn 13, tblastx 13, megablast 0 |
-g | Perform gapped alignment | [T/F] | T | not available with tblastx |
-Q | 指定询问序列使用的遗传密码 | [Integer] | 1 | |
-D | 指定数据使用的遗传密码 | [Integer] | 1 | for tblast[nx] only |
-a | 使用CPU的数目 | [Integer] | 1 | |
-O | SeqAlign file | [File Out] | 可选 | |
-J | Believe the query defline | [T/F] | F | |
-M | 比对使用的矩阵 | [String] | BLOSUM62 | |
-W | Word size | [Integer] | 0 | blastn 11, megablast 28, all others 3 |
-z | 数据库的有效长度Effective length of the databas | [Real] | 0 | use zero for the real size |
-K | Number of best hits from a region to keep | [Integer] | 0 | off by default, if used a value of 100 is recommended |
-P | 0 for multiple hit, 1 for single hit | [Integer] | 0 | does not apply to blastn |
-Y | Effective length of the search space | [Real] | 0 | use zero for the real size |
-S | Query strands to search against database | [Integer] | 3 | for blast[nx], and tblastx, 3 is both, 1 is top, 2 is bottom |
-T | 将结果保存为HTML格式 | [T/F] | F | |
-l | 通过gi号列表,限制搜索范围 | [String] | Optional | |
-U | Use lower case filtering of FASTA sequence | [T/F] | Optional | |
-y | X dropoff value for ungapped extensions in bits | [Real] | 0.0 | 0.0 invokes default behavior blastn 20, megablast 10, all others 7 |
-Z | X dropoff value for final gapped alignment in bits | [Integer] | 0 | blastn/megablast 50, tblastx 0, all others 25 |
-R | PSI-TBLASTN checkpoint file | [File In] | Optional | |
-n | MegaBlast search | [T/F] | F | |
-L | Location on query sequenc | [String] | Optional | |
-A | Multiple Hits window size | [Integer] | 0 | default if zero (blastn/megablast 0, all others 40) |
-w | Frame shift penalty | [Integer] | 0 | OOF algorithm for blastx |
-t | Length of the largest intron allowed in a translated nucleotide sequence when linking multiple distinct alignments | [Integer] | 0 | 0 invokes default behavior; a negative value disables linking. |
-B | Number of concatenated queries | [Integer] | 0 | for blastn and tblastn |
-V | Force use of the legacy BLAST en gine | [T/F] | F | Optional |
-C | Use composition-based statistics for tblastn | [String] | D | D or d: default (equivalent to F) 0 or
F or f: no composition-based statistics 1 or T or t:
Composition-based statistics as in NAR 29:2994-3005, 2001
2: Composition-based score adjustment as in Bioinformatics 21:902-911, 2005, conditioned on sequence properties 3: Composition-based score adjustment as in Bioinformatics 21:902-911, 2005, unconditionally For programs other than tblastn, must either be absent or be D, F or 0. |
-s | Compute locally optimal Smith-Waterman alignments | [T/F] | F | This option is only available for gapped tblastn. |
1.1.2. 使用说明与示例
程序使用说明
程序名 | 搜索序列 | 数据库 | 说明 | 备注 |
blastn | 核酸 | 核酸 | 用核酸序列搜索核酸数据库 | |
blastp | 蛋白质 | 蛋白质 | 用蛋白质(氨基酸)序列搜索蛋白质数据库 | 寻找较高分值的匹配,对较远关系的不太适用 |
blastx | 核酸 | 蛋白质 | 用核酸双链序列理论上的六种框架的所有翻译结果搜索蛋白质数据库,用于新的序列和ESTs的分析 | 转译搜索序列 |
tblastn | 蛋白质 | 核酸 | 用搜索的蛋白质和数据库中核酸的 | 用于寻找数据库中没有标注的编码区 |
tblastx | 核酸 | 核酸 |
比对命令示例
blastall-p blastn-i U00096.ffn -d ecoli-o U00096_Vs_ecoli_blastn.out -F F
blastall-p blastp-i U00096.faa -d nr -o U00096_Vs_NR_blastp.htm -e 0.01 -b 1 -v 1 -T T
blastall-p blastx-i U00096.ffn -d nr -o U00096_Vs_NR_blastx.htm -e 1e-5 -b 1 -v 1