zoukankan      html  css  js  c++  java
  • 比对软件Blast,Blast+,Diamond比较

    1. Blast

    • (1)格式化数据库
      formatdb -i db.seq -p T -o T -l logfile
      主要参数:
      -i 输入需要格式化的源数据库名称
      -p 文件类型,是核苷酸序列数据库(F - nucleotide)/蛋白质序列数据库(T – protein),default = T
      -a 输入数据库的格式是否为ASN.1/FASTA [T/F],default = F
      -o 解析选项:解析序列标识并且建立目录[T/F],default = F
      -l 自定义log文件命令default=formatdb.log,记录运行时间、版本号、序列数目等
      -n 自定义库文件命名
      建库结果
      如果建立的是核酸库,输出为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文件。

    • (2)blastall
      `blastall -i test.fa -d test.fa -o testblast.out -p blastp -F F -m 8 -e 1e-5 -b 10 -v 10 -a 2```
      主要参数
      以上流程中所用参数:
      -i 所用查询序列文件
      -d 所用序列数据库的名称 default=nr
      -o BLAST结果的输出文件
      -p 所用程序名称: blastn,blastp,blastx,tblastn,tblastx
      -F 查询序列过滤:将那些给出影响比对结果的低复杂度区域过滤掉 default = T
      -m 比对结果显示格式 defalut=0
      -e 期望值,描述搜索某一特定数据库时,随机出现的匹配序列数目default = 10.0
      -b 显示比对结果的最大数目 default=250
      -v 单行描述的最大数目 default=500
      -a 使用处理器的数目 default = 1(单机)
      其他参数:
      -G 空位gap开放罚分 default = 0
      -E 空位gap扩展罚分 default = 0
      -I 描述行显示GI号[T/F], default = F
      -q 核酸序列基对不匹配mismatch所罚分数(只对blastn有效)default = -3
      -r 核苷酸序列基对匹配match所加分数(只对blastn有效) default = 1
      -g 是否执行带缺口的比对 [T/F],default = T
      -B 需要联配查询的序列数目 default = 0
      -S:在数据库中搜索时所使用的核酸链strand(只对blastn、blastx和tblastx有效),1表top,2表bottom,3表both,default=3
      -T: 产生HTML格式的输出[T/F],default = F
      -n: 使用MegaBlast搜索[T/F],default = F
      -r : 一个核酸碱基的正确匹配(match)的奖分(只对blastn有效),default = 1
      -M: 所使用的打分矩阵,default = BLOSUM62

    -m 比对结果格式选项:

    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格式输出  
    

    m8格式12列结果:

    Query id, Subject id, % identity, alignment length, mismatches, gap openings, q.start, q.end, s.start, s.end, e-value, bit score
    第一列为Query(递交序列),
    第二列为数据库序列(目标序列subejct),
    第三列为: identity
    第四列为:比对长度
    第五列为:错配数
    第六列为:gap数
    第七列和第八列为:Query开始碱基位置和结束碱基位置
    第九列和第十列为:Subject开始碱基位置和结束碱基位置
    第十一列为:期望值
    第十二列为:比对得分
    

    Ref: https://blog.csdn.net/g_r_c/article/details/8477924
    https://blog.csdn.net/bangemantou/article/details/7726585

    2. Blast+

    blast+是blast的升级,将blastn,blastx等程序与blastall命令分隔开来,对各个命令的参数定制更为方便。
    blast+也是格式化数据库和比对搜索两步,但命令不同。

    • (1)格式化数据库
      makeblastdb -in db.fasta -dbtype prot -parse_seqids -out dbname -title dbtitle -logfile filename
      参数说明:
      -in:待格式化的序列文件
      -dbtype:数据库类型,prot或nucl
      -parse_seqids:解析序列标识(建议加上)
      -out:数据库名
      -title:数据库名(略)
      -logfile:日志文件,默认输出到屏幕
      更多参数 makeblastdb -help

    • (2)blast+比对
      蛋白序列比对蛋白数据库(blastp)
      blastp -query seq.fasta -db dbname -out seq.blast -outfmt 6 -evalue 1e-5 -num_alignments 10 -num_descriptions 10 -num_threads 2
      blastx -query seq.fasta -out seq.blast -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10 -num_threads 2
      参数说明:
      -query: 输入文件路径及文件名
      -out:输出文件路径及文件名
      -db:格式化了的数据库路径及数据库名
      -outfmt:输出文件格式,总共有12种格式,6是tabular格式,对应BLAST的m8格式
      -evalue:设置输出结果的期望值
      -num_alignments 显示比对数Default = 250
      -num_descriptions:单行描述的最大数目 default=500
      -num_threads:线程数
      更多参数 blastp -help

    3. diamond

    diamond主要4个程序:
    makedb
    blastp
    blastx
    view
    过程也是建库和 比对两步。

    -(1)建库
    diamond makedb --in nr.fa -d nr
    参数说明
    --in : 参考序列(格式:fasta)
    -d: 索引的前缀名

    -(2)比对
    diamond blastp -d nr -q reads.fa -e 1e-5 -f 6 -o out_diamond.m6 -k 10 -p 2
    主要参数说明
    --db/-d 输入比对数据库
    --query/-q 比对序列
    --threads/-p 线程数
    --out/-o 输出文件
    --outfmt/-f 输出文件格式,默认6(表格)
    --evalue/-e 比对的最大evalue值(默认0.001)
    --max-target-seqs/-k 比对到的最大序列数,默认值是25

    其他参数
    --top 百分数的形式表示--max-target-seqs
    --min-score 最小评分
    --id 给出指定百分比的数据
    --subject-cover 最小覆盖度
    --unal (0,1) 是否输出未比对上的reads(0=no, 1=yes)
    --sensitive 建议对齐较长的序列
    --more-sensitive 比对准确度更高
    --block-size/b,一次处理的十亿碱基的大小,主要控制内存使用,默认为2(预计使用此内存数量的大约六倍,即默认内存使用将到达12G),转录流程使用0.2
    --salltitles 将全长标题包含在DAA格式中,默认DAA文件仅包含缩短序列ID(直到第一个空白字符)

    转录组流程使用参数
    diamond blastx --evalue 1e-05 --threads 3 --outfmt 5 -d /ifs4/BC_PUB/biosoft/db/Pub/nr/RNA/20170924/animal.fa -q allcdnawithnovelcds.fa -o allcdnawithnovelcds.fa.blast.nr --seg no --max-target-seqs 5 --more-sensitive -b 0.2 --salltitles

    Ref: https://github.com/bbuchfink/diamond/blob/master/diamond_manual.pdf

    diamond输出格式:

    0 BLAST pairwise format.  
    5 BLAST XML format.  
    6 表格模式 (默认输出格式).    
    100 DIAMOND  
    101 SAM format.  
    102 Taxonomic classification.  
    103 PAF format.
    
  • 相关阅读:
    《挑战30天C++入门极限》新手入门:关于C++中的内联函数(inline)
    《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)
    《挑战30天C++入门极限》新手入门:C++中布尔类型
    《挑战30天C++入门极限》新手入门:C++下的引用类型
    《挑战30天C++入门极限》新手入门:C/C++中数组和指针类型的关系

    《挑战30天C++入门极限》入门教程:C++中的const限定修饰符
    《挑战30天C++入门极限》c++中指针学习的两个绝好例子
    《挑战30天C++入门极限》在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。
    《挑战30天C++入门极限》引言
  • 原文地址:https://www.cnblogs.com/jessepeng/p/10447373.html
Copyright © 2011-2022 走看看