首页 > 代码库 > blastall
blastall
转载的一篇关于blastall的文章,在使用的时候,还是要对应的看每个参数的意思,切记
blast的运行分为两个步骤:第一,建立目标序列的数据库;第二,做blast比对。
1、运行建库程序formatdb:
建库的工程是建立目标序列的索引文件,所以程序是formatdb。程序允许的输入格式是FASTA或者ASN.1格式,通常我们使用的FASTA格式的序列作为输入。用于建库的FAST序列是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.nhr、db.seq.nin、db.seq.nsq和db.seq.nsd、db.seq.nsi、db.seq.nni、db.seq.nnd七个文件。
除了这个结果,程序还会输出LOG文件(默认为formatdb.log),里面记录了运行时间、版本号、序列数量等信息。
几点需要注意的问题:
1)、建库以后,做blast比对的输入文件就是建库所得的文件db.seq.n**或者db.seq.p**,而不是原始的FASTA序列,也就是说,建库以后,原始序列文件是可以删除的。
2)、如果命令行中选择了“-o T”,并且目标序列中好友gi号重复的序列名时,程序会停止建库并报错。
就是说库文件中不能出现重复的序列(标志是序列号,跟具体的序列没有关系)。
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中取值:
程序名 查询序列类型 查询数据库类型 应用
blastp 蛋白质 蛋白质 使用取代矩阵寻找较远的关系
blastn 核酸 核酸 寻找较高分值的匹配,对较远关系不太适用
blastx 核酸(翻译) 蛋白质 用于分析新的DNA序列和ESTs
tblastn 蛋白质 核酸(翻译) 用于寻找数据库中没有标注的编码区
tblastx 核酸(翻译) 核酸(翻译) 用于更进一步的分析ESTs
这些元素就构成了 blast 的基本运行命令(以 blastn 为例):
blastall -i query.fa -d database -o blast.out -p blastn
其中如果"-o"参数缺省,则结果输出方式为屏幕输出。
参数:
仅仅运行blast的基本运行命令,得到的结果往往不能清晰准确的表示出有用的信息。最大的问题就是有太多的冗余,很多很短的比对都会出现在输出结果中,导致结果杂乱无章。为了处理杂乱无章的比对结果,满足各种比对需求,blast设置了很多参数来限制比对的范围和输出的形式。一下多数结果以blastn距离,如不做特殊说明,这些参数适合于所有比对方式。
-e 参数
-e(value)参数是用来过滤比对较差的结果的,用“-e”参数指定一个实数,blast会过滤掉期望值大于这个数的比对结果(就是说这个值越小比对结果就越好)。
blastall -i query.fa -d database -o blast.out -p blastn -e 1e-10
通常情况下,对于不同物种之间的比对,期望值设在1e-5左右即可;而对于同源性较高的物种或者同种的比对,可以适度将期望值调的更小来过滤垃圾结果。比对同一物种cDNA和染色体的比对,参数可用1e-10或更高。
-F 参数
-F(T/F)参数是用来屏蔽简单重复和低复杂度序列的。如果选“T”,程序在比对过程中会屏蔽掉query中的简单重复和低复杂度序列;选“F”则不会屏蔽。缺省值为“T”。
比较两个结果,我们看出使用缺省参数的比对结果损失了一部分信息,得到的统计结果也
出现失真,期望值和 identity 都没有反映出真实情况。有时较长的重复序列甚至会导致比对终止。加了"-F F"就保证了比对结果的完整性。通常在大规模、低精度的比对中,往往用缺省参数,这样能避免程序把过多的时间浪费在无意义的简单重复上,提高运行速度;而在小规模、高精度的比对中,需要加上参数"-F F",保证比对的精确度和完整性。
-m 参数:
“-e”参数能够做到筛选适当的比对结果,但是即使如此,blast的输出结果仍然非常庞大并且难以处理。为了精简输出、节省存储空间、实现更多功能并使结果易于处理,blast 提供了参数“-m (integer)”来设定输出格式,可供选择的值为 0~11 之间的整数,缺省为 0。下面就通过实例逐个解析“-m”参数能够实现的输出功能。
-m 8 : 列表格式的比对结果。从做导游割裂的意义一次是:query名/subject名/identify/比对长度/错配数/空位数/query比对起始坐标/query比对终止坐标/subject比对起始坐标/subject比对终止坐标/期望值/比对得分
在 m8 格式中通过 subject 的比对起止位置可以判断出序列的比对方向。判断方法就是:query和subject的起始和终止坐标是否一致增减。
可以使用“blastall-”获取在线帮助。
blastall的常用参数:
-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
命令举例:
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