Categorized | 生物信息学

Tags |

如何批量Blast

Posted on 02 二月 2010 by 柳城 ,阅读 155 简洁版 繁體

批量做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命令就能看到了。

延伸阅读:

  1. 构建Web页面的Blast(windows/linux)
  2. 本地blast的详细用法
  3. 如何构建本地Blast?
  4. Bioperl:使用和解析 BLAST
  5. blast formatdb 介绍

转载请注明 : 来源于 如何批量Blast | 柳城博客

相关主题

8条评论 于 “如何批量Blast”

  1. evlos Says:

    阿门,弱弱飘过鸟 ~ ╮(╯▽╰)╭

    [回复]

    柳城 回复:

    罪过罪过... [可爱]

    [回复]

  2. 小七狼 Says:

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

    [回复]

    柳城 回复:

    恩,我也是用bioperl的。
    不过-m8参数大部分的都有了。蛮好的。

    [回复]

  3. Richard Says:

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

    [回复]

    柳城 回复:

    一个蛋白如何做clustalW啊?clustalW不就是二个或以上的序列一起做的嘛~

    [回复]

  4. Richard Says:

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

    [回复]

    柳城 回复:

    随便写个脚本循环就行了。~

    [回复]

Leave a Reply

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [大兵] more »

Advertise Here

最新评论

Lc.live