如何批量Blast


批量做Blast的问题还是蛮多网友问起的。既然这样,在这里就稍微讲讲吧。其它的Blast基础知识就略过了,不懂的就去Google本地Blast用法

这篇文章默认为你已有了Blast的基础。

批量Blast

就是指多个序列的Blast。其实我也不明白为什么会有这么多人提这个问题,批量Blast就跟单个Blast一样的。

我们都知道,默认参数下的blastn是这样的:

blastall -p blastn -d BlastDB -i in_file.fasta  >blast_output

当in_file.fasta里面只有一个序列时,就是单个Blast啊。in_file.fasta也可以放多个Fasta格式的序列,这样子就是批量Blast了。

当然了,麻烦的是批量Blast之后的结果,一个的话我们可以看得了,当批量上千个时,我们不可能一个个看到的。这种小事情Blast早就想到了。这就引进了-m8参数。-b5参数是指显示匹配的前5个结果(默认好像是500个,忘记了)。

blastall -p blastn -d BlastDB -i in_file.fasta  -m8 -b5 >blast_output

-m8参数的输出结果有12列,每一列的解释如下(用Tab键隔开的):

例子

Query_id,Subject_id,%identity,alignment_length,mismatches,gap_openings,q.start,q.end,s.start,s.end,e-value,bit_score
A_query    B_Sbjct    97.61    585    3    3    309    886    94498    95078    0.0    1017
A_query    B_Sbjct    100.00    303    0    0    913    1215    95092    95394    2e-172    601
A_query    B_Sbjct    100.00    209    0    0    1    209    94196    94404    3e-116    414
A_query    B_Sbjct    100.00    123    0    0    1234    1356    95413    95535    6e-65    244

这样子的结果就方便后面的分析工作了。

推荐的命令行如下:

blastall -p blastn -d BlastDB -i in_file.fasta  -m8 -b5 -b1 -a2 -FF >blast_output

-a2参数是用二个CPU,加速。-FF是不过滤简单的重复序列和低复杂度的序列(默认是过滤的)。

其它更详细的参数,直接敲打blastall命令就能看到了。


《 “如何批量Blast” 》 有 19 条评论

  1. 我喜欢保存原始的blast结果,然后用bioperl解析。
    这样做好处是你可以保留更多的原始信息,方便查阅,但占用磁盘空间可能相当大,我习惯用-b选项保留适当的数据。
    问这个问题我可以理解,可能大多数和我一样,都是生物背景,我以前也傻傻的被这个问题困扰,为了做批量blast居然把一个多fasta格式文件中的每一条序列分离出来blast,用perl写了二三十行,后来发现这么做真是太笨了,不光blast是这样批量出来,大多数生物信息学软件都是这样,例如SignalP,RNAfold,mirada,etc.
    另外,如果不是本地数据库,一般的在线blast也可以做批量blast(序列条数有限制),例如二三十条序列的话我们可以以多fasta格式直接提交到NCBI服务器。

  2. 师兄你好,我也是在做生物信息学,请问您在Linux下做过Clustalw吗?用命令行批量处理多个蛋白的氨基酸序列比对怎么做?我现在只能一个一个蛋白做,我想多个一块做且用命令行~期待师兄的答复

  3. 忘记和师兄介绍了,我做的流感蛋白,每一个蛋白都有不同年份不同宿主的!

  4. 这个脚本循环怎么写?我刚开始接触程序这块,所以还不会!具体蛋白是PB2,PB1,PA,PB1-F2,HA,NP,NA,M1,M2,NS1,NS2.同时对这11个蛋白做clustalw!谢谢师兄!

  5. 博主你好!求助一个问题,我要做一个进化树,选择的序列有的是完全的有的是不完全的,不完整的大概是80%以上保留,而且我又不想扔掉这些不完整序列,我应该怎么办呢?是不是最好找到这些完整序列和不完整序列当中的那些相对应得片段进行比对。谢谢你!

  6. 博主好!

    我有500个蛋白序列想比较他们和小鼠,大鼠的同源性。
    是不是就是把这500个序列放到一个文件里面。序列之间如何分割,
    出来的结果的排序是什么样的?
    另外比较的参数如何设置。

  7. 这个,额,批量blast还是bioperl里Bio::Tools::Standalone::Blast 模块好使。看看Bioperl How To里有的。 [可爱]