本地blast的详细用法


本地blast的详细使用方法

blastall -p blastn -i myRNA.fasta -d humanRNA.fasta -o myresult.blastout -a 2 -F F -T T -e 1e-10
解释如下:


blastall: 这是本地化/命令行执行blast时的程序名字!(Tips:blastall直接回车就会给出你所有的参数帮助,但是英文的)

-p: p 是program的简写,program在计算机领域中是程序的意思。此参数是指定要使用何种子程序,所谓子程序,就是针对不同的需要,如核酸序列和核酸序列进行比对、蛋白质序列和蛋白质序列进行比对、假设翻译后核酸序列于蛋白质序列进行比对,选择相应的子程序: blastn 是用于核酸对核酸 blastp 是蛋白质对蛋白质序列 等等,一共5个自程序。

-i: i 是input的简写,意思是输入文件,就是你自己的要进行比对的序列文件(fasta格式)

-d: d是database的简写,意思是要比对的目标数据库,在例子中就是humanRNA.fasta (别忘了要formatdb)

-o: o是output的简写,意思是结果文件名字,这个根据你自己的习惯起名字,可以带路径,(上边两个参数-i -d 也都可以带路径)
*注意以上4个参数是必须的,缺一不可,下面的参数是为了得到更好的结果自己可调的参数,如果你不加也没有关系,blastall程序本身会给一个默认值!

-a: 是指计算时要用的CPU个数,我的机器有两个CPU,所以用-a 2,这样可以并行化进行计算,提高速度,当然你的计算机就一个CPU,可以不用这个参数,系统默认值为1,就是一个CPU

-F: 是filter的简写,blastall程序中有对简单的重复序列和低复杂度的一些repeats过滤调,默认是T (注意以后的有几种参数就两个选项,T/F T就是ture,真,你可以理解为打开该功能; F就是false,假,理解为关闭该功能)

-T: 是HTML的简写,是指blast结果文件是否用HTML格式,默认是F!如果你想用IE看,我建议用-T T

-e: 是Expectation value,期望值,默认是10,我用的10-10!

BLASTALL 用法

a.格式化序列数据库
格式化序列数据库— —formatdb

formatdb简单介绍:
formatdb处理的都是格式为 ASN.1和 FASTA,而且不论是核苷酸序列数据库,还是蛋白质序列数据库;不论是使用Blastall ,还是Blastpgp,Mega Blast应用程序,这一步都是不可少的。

formatdb命令行参数:
formatdb –    得到formatdb 所有的参数显示(见附录二)和介绍,

主要参数的说明:

-i 输入需要格式化的源数据库名称 Optional

-p 文件类型,是核苷酸序列数据库,还是蛋白质序列数据库

    T – protein   F - nucleotide [T/F] Optional default = T

-a 输入数据库的格式是ASN.1(否 则是FASTA)

    T - True,     F - False.    [T/F] Optional default = F

-o 解析选项

    T - True: 解析序列标识并且建立目录

    F - False: 与上相反

   [T/F] Optional default = F

命令示例:

formatdb -i ecoli.nt -p F -o T

运行此命令就会在当前目录下产生用于BLAST搜索的7个文件,一旦如上的formatdb命令执行完毕,就不 再需要ecoli.nt,可以移除。此时,blastall可以直接使用。

b.Blastall常用参数简析
-p Program Name [String]
所用程序名称[String],用 户可以根据需要从blastn,blastp,blastx,tblastn,tblastx中任选一程序。

-d Database [String] default = nr
所用序列数据库的名称 [String],默认为:nr

-i Query File [File In] default = stdin
所用查询序列文件[File In], 默认为:stdin,本文例为 test.txt

-e Expectation value (E) [Real]   default = 10.0
期望值[Real]   默认为10.0 描述搜索某一特定数据 库时,随机出现的匹配序列数目。

-m alignment view options: 比对显 示选项,其具体的说明可以用以下的比对实例说明
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,XML格式的输出
8 = tabular,TAB格式的输出
9 =tabular with comment lines,带注释行的TAB格式的输出
10 =ASN, text,文本方式的ASN格式输出
11 =ASN, binary [Integer] default = 0,二进制方式的ASN格式输出

-m 8 用法举例说明如下:
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
A_query    B_Sbjct    100.00    41    0    0    210    250    94096    94136    5e-16    81.8
A_query    B_Sbjct    100.00    35    0    0    251    285    94440    94474    2e-12    69.9
A_query    B_Sbjct    100.00    29    0    0    885    913    95747    95775    7e-09    58.0
A_query    A_query    97.61    585    3    3    309    886    403    983    0.0    1017
A_query    A_query    100.00    303    0    0    913    1215    997    1299    2e-172    601
A_query    A_query    100.00    209    0    0    1    209    101    309    3e-116    414
A_query    A_query    100.00    123    0    0    1234    1356    1318    1440    6e-65    244
A_query    A_query    100.00    41    0    0    210    250    1    41    5e-16    81.8
A_query    A_query    100.00    35    0    0    251    285    345    379    2e-12    69.9
A_query    A_query    100.00    29    0    0    885    913    1652    1680    7e-09    58.0

结果12列
Query id,Subject id,% identity,alignment length,mismatches,gap openings,q. start,q. end,s. start,s. end,e-value,bit score

————————————————————————————————————-

-o BLAST report Output File [File Out] Optional default = stdout,BLAST报告的输出文件[File Out] 默认为:stdout

-F Filter query sequence (DUST with blastn, SEG with others) [String] default = T
查询序列过滤,将那些 给出影响比对结果的低复杂度区域过滤掉。用blastn进行查询的序列用DUST程序过滤,其他的用SEG过滤 。对DUST和SEG的详细情况,用户可以自己查询资料。

-G Cost to open a gap (zero invokes default behavior) [Integer]   default = 0
空位开放罚分[Integer] (设为0则调用默认行为)   默认为0分

-E Cost to extend a gap (zero invokes default behavior) [Integer] default = 0
空位扩展罚分[Integer] (设为0则调用默认行为) 默认为0分

-T Produce HTML output [T/F] default = F
以网页形式打印

-X X dropoff value for gapped alignment (in bits) (zero invokes default behavior)
blastn 30, megablast 20, tblastx 0, all others 15 [Integer],default = 0

-I Show GI’s in deflines [T/F]   default = F
提示行显示GI number 默认不显示

-q Penalty for a nucleotide mismatch (blastn only) [Integer] default = -3
核酸序列基对不匹配所罚分数(blastn only) [Integer] 默认罚3分

-r Reward for a nucleotide match (blastn only) [Integer] default = 1
核苷酸序列基对匹配所加分数(blastn only) [Integer] 默认加1分

-g Perfom gapped alignment (not available with tblastx) [T/F] default = T
是否执行带缺口的比对(not available with tblastx) 默认为是     

-a Number of processors to use [Integer] default = 1
使用处理器的数目[Integer] 默认为单机

-B Number of concatenated queries, for blastn and tblastn [Integer] Optional default = 0
需要联配查询的序列数目 for blastn and tblastn [Integer] 默认为单序列

-M Matrix [String],default = BLOSUM62 打分矩阵,默认BLOSUM62

-W Word size, default if zero (blastn 11, megablast 28, all others 3) [Integer] default = 0
所开窗口

-w Frame shift penalty (OOF algorithm for blastx) [Integer] default = 0
窗口罚分


41条回应:“本地blast的详细用法”

  1. 博主:您好
    在windows环境下进行本地Blast
    在格式化 数据库nr(我的数据库放在E:\blast\nr) 的时候,输入相应的代码
    formatdb -i E:\blast\nr -p f -o t
    回车
    运行好长一段时间后,在数据库nr也产生了一系列的文件,但过了一会却出现了
    [NULL_CAPTION]FATAL ERROR:Fatal error when adding sequence to BLAST database
    进行blast里程序blastn 在out.txt中也有类似以下的结果
    BLASTN 2.2.21 [Jun-14-2009]

    Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
    Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
    “Gapped BLAST and PSI-BLAST: a new generation of protein database search
    programs”, Nucleic Acids Res. 25:3389-3402.

    Query= F2
    (392 letters)
    这是怎么回事?
    期待你的答案,谢谢!!
    呵呵
    祝你快乐

    • 你再试一篇用大写的,最的一个输出也要全路径。或者不要-o
      formatdb -i E:\blast\nr -p F -o E:\blast\t

      formatdb -i E:\blast\nr -p F

      然后确保你的序列文件E:\blast\nr没有错。全部都是Fasta格式。还有都是核苷酸序列。

      仔细检查一遍之后还有错再来~~

  2. 谢谢你的提示
    上午我进行了格式化
    我在FASTA里下的nr 应该是非冗余蛋白质数据库,里面也应该就是蛋白质序列?
    因此,我采用了
    formatdb -i E:\blast\nr -p T
    历时几个钟头,格式完后也没有错误提示
    刚刚我就进行了blastall中的blastx 程序(我把我的测试文件和结果文件都放在了c:\blast\bin里面)
    我写的命令是
    blastall -p blastx -d e:\blast\nr -i c:\blast\bin\test.txt -o c:\blast\bin\out.txt

    运行了之后出现了
    Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
    Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
    “Gapped BLAST and PSI-BLAST: a new generation of protein database search
    programs”, Nucleic Acids Res. 25:3389-3402.

    Query= F2
    (392 letters)

    后面就没有比对的内容。
    博主,这是怎么回事?
    是因为上面没有后面的 -o t 所致吗?
    谢谢!

    • c:\blast\bin\test.txt 是什么序列啊? 你用了blastx,得保证这是核酸序列的Fasta格式
      你看输出文件c:\blast\bin\out.txt也没有内容嘛??

  3. test.txt里面是FASTA格式的核酸序列,并且运行之后在out.txt里有内容,只是显示版本号之类东西
    如下
    Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
    Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
    “Gapped BLAST and PSI-BLAST: a new generation of protein database search
    programs”, Nucleic Acids Res. 25:3389-3402.

    Query= F2
    (392 letters)

    之后比对的内容就没有了,是哪里出问题了呢??

      • 博主,你好。

        我运行blastall后,out.txt文件里出现了以下结果。
        Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
        Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
        “Gapped BLAST and PSI-BLAST: a new generation of protein database search
        programs”, Nucleic Acids Res. 25:3389-3402.

        Query= FL13
        (165 letters)
        比对的内容没有,这是什么问题呢??

  4. >F2
    CCATTTCATTTTTCCTCCCAAGG……
    不光是这个序列,好象所有的序列都是出现上述结果
    nr数据库太大(4G,没法发 , 不好意思哦)
    我把我的数据库格式化的截图发在你的服务邮箱里,博主请查阅一下
    QQ:51684804,我想QQ咨询你

      • 呵呵,算是解决了吧,谢谢你们的帮助!是数据库的问题,但现在的问题是运行速度好慢啊(不是看有些资料所说的几个小时就能完成上千个EST序列)博主遇过这样的问题,有什么办法能让它快一点,我的电脑是512M的,除了加内存有其他的办法吗?
        另外一个问题就是命令里没法限定某个物种吧??

  5. 现我想比较两个物种D.melanogaster(fruit fly)和S.cerevisiae(baker’s yeast)中蛋白质,得到两两蛋白质之间的evalue值,D.melanogaster和S.cerevisiae两个物种的蛋白质都有近5000.我的做法是把其中一个物种蛋白质作为一个数据库,然后用blastall命令来做,这样行不行,以上蛋白质格式全是fasta格式.

    • 可以。用法是一样的了~~把blastall 的参数学一下。
      如果你的电脑是双核的话,你可以加上-a2参数。这样比较快~~~还有其它很多好用的参数(如-m,-v等)~~详细的自已看哦。

      • 感谢你的答复,我把blastall用上了,可以我想提取两物种两两蛋白质的evalue值,可是blastall命令生成的是文本文件,不知怎么提取出其中的evalue值,怎么办。我现在在做蛋白质网络的比对,必须要蛋白质的evalue值,急啊。。。

        • 提醒你用-m8参数。还有我的博客里也有提到用bioperl提取blast结果的文章。自己搜搜哦。 :lol:

          • 咋一看,有点茫然,自己慢慢研究吧,有问题再找你讨论,谢谢哈。

  6. 我的blast结果中有gap,

    怎样保证序列是连续的但数据库可以有gap

  7. 如下所示,序列不连续,有gap
    Score = 349 bits (176), Expect = 1e-098
    Identities = 188/192 (97%)
    Strand = Plus / Minus

    Query: 1 aatgtttatggtggattttgtaggtgggattaattgtgaatttatagggttggtggggcg 60
    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |
    Sbjct: 424 aatgtttatggtggattttgtaggtgggattaattgtgaatttatagggttggtggggtg 365

    Query: 61 tgggtgtcgtttgggtgtttgggagaatagggggtgggtagggtaggaggtttgaggggg 120
    ||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||
    Sbjct: 364 tgggtgttgtttgggtgtttgggagaatagggggtgggtagggtaggaggtttgaggggg 305

    Query: 121 gaggagtaggatttattttttaaatttatcgttttgagtcgttggtttttagataggttg 180
    ||||||||||||||||||||||||||||| ||||||||| ||||||||||||||||||||
    Sbjct: 304 gaggagtaggatttattttttaaatttattgttttgagttgttggtttttagataggttg 245

    Query: 181 atttggttggtg 192
    ||||||||||||
    Sbjct: 244 atttggttggtg 233

    Score = 50.1 bits (25), Expect = 2e-008
    Identities = 25/25 (100%)
    Strand = Plus / Minus

    Query: 346 gttattatattgatatgagtgtggg 370
    |||||||||||||||||||||||||
    Sbjct: 80 gttattatattgatatgagtgtggg 56

  8. 我的实验是:进行两个物种的蛋白质序列比对,得到其比对得分(Score)和期望值(E value)。我把其中的一个物种蛋白质作为数据库(存储于db.seq),另外一个物种蛋白质作为查询序列(存储于query.seq),上述两个文件均是以fasta格式存储,即一行为”>DIP…”,下一行为其序列。

    我先用formatdb格式化数据库,命令是formatdb -i db.seq;
    然后用blastall,想用-m 8来显示,E value阈值用默认的10.0,命令是
    blastall -p blastp -i query.seq -d db.seq -o blastseq.out -m 8;

    我的问题是在最后的比对结果输出文件中,为什么会在相邻的两行或多行中前两列的蛋白质名称分别对应相同呢,也就是两个蛋白质怎么会有多个不同的比对结果呢?如下(这是实验结果中取的数据,第一列蛋白质来自query.seq,第二列来自db.seq):
    DIP-9702N DIP-1459N 45.45 33 13 1 319 351 717 744 2.9 21.56
    DIP-9702N DIP-1459N 24.00 50 38 0 183 2321171 1220 6.5 20.40
    像这上面有两个E value值,我怎么去衡量这两个蛋白质的相似性,如何给这两者的E vlue定个值呢?
    困惑,麻烦你帮忙,谢谢。

    • 如果你已经知道了每一列所代表的意思.. 那就比较好办咯~
      是这两个序列其中的两个小片段匹配上了. 一个33bp, 一个50bp. 那E值也是各自的E值..
      如果你非得要衡量这两个蛋白质的相似性, 那应该是取最好的值的了..

  9. 你好,我在DIP数据库(http://dip.doe-mbi.ucla.edu/dip/Main.cgi)中下了一个the complete DIP dataset,里面包括了许多蛋白质的序列,(fasta格式)
    数据集是从DIP-1N,DIP-2N,DIP-3N…排列,部分内容如下:

    >dip:DIP-5N|refseq:NP_476859|uniprotkb:P07207|pir:A24420|gi:85085
    MQSQRSRRRSRAPNTWICFWINKM……
    >dip:DIP-6N|refseq:NP_000579|uniprotkb:P08700|pir:A24427|gi:418834
    MSRLPVLLLLQLLVRPGLQAPMTQT……

    我的问题是:有些蛋白质,如DIP-27667N在数据集中找不到,不存在这个蛋白质的序列。而且没有序列的蛋白质集中在DIP-27660至DIP-28052之间的,到了这部分文件内容如下:

    >dip:DIP-27659N|uniprotkb:P27720|gi:48852
    MTKTDYLMRLRKCTTIDTL……
    >dip:DIP-28053N|uniprotkb:P77302|pir:……

    而我在DIP上下了D.melanogaster(fruit fly)的蛋白质相互作用网络数据,里面有很多蛋白质就是集中在DIP-27660至DIP-28052之间,我现在想找不到其序列,但在序列数据集中找不到,怎么办?

    • 我很少上dip.不过刚刚去dip搜了一下发现:
      DIP-27660N或是DIP-27660都搜不到数据. 那肯定是没序列了。
      而DIP:28052N刚好能搜到.. 但没有对应的PIR、swissprot、genbank蛋白(http://dip.doe-mbi.ucla.edu/dip/DIPview.cgi?PK=28052)。这种也是没序列的了。
      那为什么D.melanogaster(fruit fly)上有呢~ 那极有可能是旧数据,有些删掉的ID还存在。
      没序列也是正常。
      作作参考吧。。自己判断。 :)
      我发现dip上的数据都极少更新的。网站页面也是。 [偷笑]

  10. 楼主你好,现在在做毕业论文,利用生物信息学筛选肺癌CGH微阵列BAC克隆,请楼主指点一下

  11. 你好,我对两个物种蛋白质进行blast比对,做法是:
    把其中一个物种的蛋白质(fasta格式)做数据库,另外一个做query,用blastall命令(参数-m 8)做出了一组结果。
    然后把另一个物种的蛋白质做数据库,另一个做query,就是倒过来再用blastall命令(参数-m 8)做出来了一组结果。
    为什么这两个结果中,一组蛋白质比对出来的evalue值在上面两个结果中不一样呢。我应该怎么处理。。谢谢 [抱拳]

  12. 从NCBI下载的与格式化的NR库,是五个压缩包,解压后是分开的,怎么将其整合到一个文件,是否cat命令合并就行?

  13. 博主好,我在本地blast的时候有个疑问,怎样更新自己的本地数据库,使之与ncbi的在线数据库一致?难道要每个月都重新下载一次nr数据库,格式化?

      • 我知道ftp有个每月新增的核酸序列文件month.nt,可是下载到的month.nt必须与之前的本地数据库整合到一起,成为一个新的本地数据库,才能进行blast吧。怎样整合呢?另外,这个month.nt是非冗余的吗?会不会与之前的数据库有冲突?我的方向是环境微生物,ftp中的哪个database是我应该下载的呢? 不好意思,一次问这么多问题,刚开始接触,不懂得比较多[呲牙],要向牛人多多请教

  14. 楼主,您好,我想问您几个问题,我现在希望能通过程序调用psi-Blast,具体就是我输入一个蛋白质序列,通过psi-Blast分析得到一个分析后的结果,即profile。
    请问您知道如何通过程序实现这些吗?或者指点一下方向?
    万分感谢

  15. 版主,你好!本地化blast和NCBI的nr数据库后,想更新nr数据库有什么好招?当然不是从先下载好几十GB的新nr数据。