如何本地化进行blast序列比对
2011-01-27 10:20
1、基本概念
   相似性(Similarity)

是指序列比对过程中用来描述检测序列和目标序列之间相同或相似碱基或氨基酸残基占全部比对碱基或氨基酸残基的比例的高低,属于量的判断。
   同源性(Homology)
是指从某一共同祖先经趋异进化而形成的不同序列。只有当两个蛋白质在进化关系上具有共同的祖先时,才可称它们为同源的,属于质的判断。

相似性和同源性的关系

当相似程度高于 50% 时,比较容易推测检测序列和目标序列可能是同源序列;
而当相似性程度低于 20% 时,就难以确定或者根本无法确定其是否具有同源性。
总 之不能把相似性和同源性混为一谈。所谓 “ 具有 50% 同源性 ” ,或 “ 这些序列高度同源 ” 等说法,都是不确切的,应避免使用。

序列相似性比较和同源性分析

序列相似性分析: 就是用来计算待研究序列与某序列之间的相似性程度,常用的软件包有 BLAST 、 FASTA 等;
序列同源性分析: 是将待研究与来自不同物种的序列中进行进化分析,以确定该序列与其它序列间的亲源关系。常用的程序包有 Phylip 及 Mega 等进化分析软件;
全局比对与局部比对
    全局比对
寻找序列在全长范围内最佳比对。  
常用算法如:Needleman-Wunsch algorithm(Needle)
在线程序如: Needle
       局部比对
寻找序列在局部区域的最高比对打分。
常用算法如:Smith-Waterman algorithm, blast,fasta等
在线程序如: Water
   Needle及Water的在线程序 
http://bioweb2.pasteur.fr/alignment/intro-en.html
也可以本地安装Emboss执行以上程序

局部相似性比对的生物学基础
蛋白质功能位点往往是由较短的序列片段组成的,尽管在序列的其它部位可能有插入、删除等突变,但这些关键的功能部位的序列往往具有相当大的保守性。
而局部比对往往比整体比对对这些功能区段具有更高的灵敏度,因此其结果更具生物学意义。
BLAST程序常用的两个评价指标
Score:

使用打分矩阵对匹配的片段进行打分,这是对各对氨基酸残基(或碱基)打分求和的结果,一般来说,匹配片段越长、相似性越高则Score值越大,结果越可信。
E-value:
BLAST程序在搜索空间中可随机找到获得这样高分的序列的可能性(期望值),因此E-value越高,则代表结果越有可能是随机获得的,也就越不可信。搜寻空间大小约略等于查询序列的长度乘以全部database序列长度的总和,再乘以一些系数。

我们在获得一个Blast结果时需要看这两个指标。
如果Blast获得的目标序列的Score值越高并且E-value越低表明结果越可信,反之越不可信。
其它的一些重要关键概念
HSP(High Scoring Pair):
在局部比对时,得分高的匹配序列被称为高分值片段。
LCRs(low compositional complexity regions):
低复杂度区域,即这些区域的组成有某些偏好,比如DNA中的简单重复序列。在蛋白质中一些残基过多表现。在进行BLAST比较时,将会把LCRs屏蔽掉,防止它们过高评价匹配的显著性。在核酸中用n,在蛋白质中用X代替。
gi(GenBank Index)
特定于GenBank数据库中所赋予每一条序列的特定索引数字。
nr(non-redundant database) 
非冗余数据库,该库信息多,并且无冗余序列
2、常用BLAST程序
BLAST(Basic Local Alignment Search Tool) 基于匹配短序列片段,并用一种强有力的统计模型来确定未知序列与数据库序列的最佳局部联配的一种程序。
主要的BLAST程序
PSI-BLAST(位置相关的迭代 BLAST)
这个程序主要用来搜索蛋白质的“远亲”。
首先,用户提交的蛋白质序列的所有“近亲”的列表被建立起来,然后这些蛋白质被结合成一种平均的“特征序列” 。
再用这个特征序列在蛋白质数据库中进行搜索,就会找出更大的一组蛋白质的列表。再将这个蛋白质列表生成一个不同的特征序列,这个序列被用来迭代地运行上述过程。 
通过在搜索中包含相关的蛋白质,PSI-BLAST对于寻找已知蛋白进化上的“远亲”的灵敏度要比一般的blastp高很多。
其它的一些BLAST子程序
Gapped BLAST 
允许在它产生的比对(alignments)中存在缺口。
Megablast
该程序使用“模糊算法”加快了比较速度,可以用于快速比较两个较长的序列。
discontiguous megablast
与megablast不同的是主要用来比较来自不同物种之间的相似性较低的分歧序列。 
PHI-BLAST
模式发现迭代BLAST。
Bl2seq
给定两个序列,相互进行BLAST比对,快速检查两个序列是否存在相似性片断
Specialized Blast Specialized BLAST pages 
CD - Search 
是使用RPS - BLAST程序以一个蛋白质序列与保守结构域数据库(Conserved Domain Database) 做比较。
Pairwise BLAST
Pairwise BLAST是用BLAST程序实现两个序列之间的比较。
IgBLAST
IgBLAST被开发出来以便於分析在GenBank中的免疫球蛋白的序列。它允许用blastp或blastn来搜索nr资料库或一个由免疫球蛋白生殖系变化区基因的特殊的资料库。
3、BLAST算法简介
BLAST 是一种基本局域联配搜索工具,主要用来搜索数据库中相似序列。
它的搜索速度快并且把数据库搜索建立在了严格的统计学基础之上,是目前最常用的同源检索工具,是由Altschul SF et al(1990)提出的一种算法。
BLAST的基本步骤
将待检索序列分割成长度为w的连续子串
快速找出数据库中所有与固定长度w完全配对的位置
以此位置为起点进行延伸比对,并计算出最高分数
将最高分标准化,并按此分数进行排序
换算成期望值(E-VALUE)
显示出符合Score及E-value的序列
4、BLAST常用参数设置
在NCBI进行BLAST的操作程序非常简单,只要将你的序列贴进去,点几下鼠标就会得到结果,但是如果能正确的修改一下BLAST的参数,可能你会得到更好的结果!以下我们一起讨论一下如何来修改BLAST的参数!
BLAST的具体过程:
登陆NCBI的BLAST主页 http://www.ncbi.nlm.nih.gov/BLAST/
根据序列类型及目的选择合适的程序
填写表单信息
提交任务
查看和分析结果
BLAST程序的选择
在BLAST程序选择上,应尽可能地利用blastp从蛋白质水平进行检索,然后用blastx、tblastn、tblestx从DNA或蛋白质翻译水平进行检索,最后才用blastn进行DNA水平进行检索。
当然如果为非编码序列只有采用blastn进行检索。 
E-value的设置
如果检索的序列较短,可适当的提高E值,否则可能会找不到目的序列,反之如果序列较长可适当提高E值。
通常无论是从DNA水平,还是蛋白质水平进行检索,E值设为1通常可满足要求。 
Word size的选择
BLAST算法将查询序列分割成一系列具有字段长度的小的序列段进行数据库搜索,因此当此值越小得到的搜索结果越多,但假阳性也越多,服务器负担也越重。
对于蛋白质搜索,窗口大小可设置为3或2,默认为3;对于核酸搜索,默认的字段长度是11,可选择7,11或15。
因此如果你对搜索的结果不满意时可以试着降低Word size的值。
打分矩阵的选择
比对所选用的记分矩阵对最终结果影响也很大。
一般高值BLOSUM矩阵和低值PAM矩阵最适合于研究近相关的蛋白质序列。低值BLOSUM矩阵和高值PAM矩阵最适合于研究远相关的蛋白质序列。
一般情况BLOSUM62检测各种蛋白的效果比BLOSUM60和BLOSUM70稍好,比PAM矩阵好得多。
在BLAST五个程序中只有BLASTN不需要这些矩阵,搜索时不必选定。
空位罚分的选择
严紧的罚分很难将本来很相似的序列对准;而松弛的罚分甚至可以使两个无关的序列达到100%的相似性。
一般情况下程序默认的空位罚分(11/1)基本能满足检索要求,但对具体的查询序列,采用不同的空位罚分方法会取得不同的检索效果。 
低复杂区域及重复区域的处理
无论是DNA序列类似性检索,还是蛋白质序列类似性检索,一般都应该去除查询序列中的低复杂区域。
就蛋白质序列检索而言,不必去除序列中的重复片段,但对DNA序列检索,就必须去除序列中的重复片段。
5、本地BLAST的安装
大家一般都做过基于网络的BLAST ,但网络BLAST一般只能搜索一个序列,要搜索多个序列,特别是做大量的数据比较时,网络BLAST几乎是不可能的,这个时候我们就可以考虑做本地BLAST了。
使用本地BLAST的原因
特殊的数据库要求
涉及序列的隐私与价值
批量处理
与其它本地程序配合使用
其他原因??
本地BLAST构建步骤
下载BLAST的安装程序
将BLAST保存到适当的位置
点击安装程序来安装BLAST
设置BLAST的相应参数
下载BLAST的本地安装程序
可以到NCBI的官方网站下载最新的BLAST程序。
下载网址: ftp://ftp.ncbi.nih.gov/blast/executable
注意一定要选择和你的计算机操作系统相匹配的程序,如Windows系统要下载“blast-2.2.18-ia32-win32.exe”。由于大部分螺友都在用Windows系统我们下面的讲座也是在Windows系统下进行
本地BLAST的相应参数设置
告诉BLAST程序你的数据及数据库放在哪
1.建立一个新的文件并命名为:ncbi.ini
2.在该文件中输入四行数据如下所示:
[NCBI] 
Data=“C:/ncbi-blast/data” (你的数据存放的文件夹) 
[BLAST] BLASTDB=“C:/ncbi-blast/db” (数据库存放在的文件夹)
3.将该文件拷贝到你的Windows或Winnt目录里
路径设置步骤
右键点击我的电脑
选择属性
再选择系统属性
选择高级标签
选择环境变量
双击path
在路径中填入你的BLAST的可执行文件所在目录
有的时候还需要重新启动电脑
6、本地BLAST的使用
数据库的获取

最简单的方法是直接到NCBI或别的网站去下载
也可以将自己的序列,或与自己工作相关的序列进行整理构建成一个小型的数据库
注意:以上文件格式一般可存为fasta格式
构建BLAST用的数据库
将已构建好的数据拷贝到你所设定的数据库所在文件夹
运行cmd命令
在cmd环境中输入如下所示命令
formatdb –i inseqs.fa –p F –o T –n db_name
命令结束后你会发现在你的数据库文件夹里多了一些以db_name开头的文件,这些就是BLAST所需要的一些文件
输入过程
Formatdb的一些参数说明
-i 输入文件,只能是一个文件
-o Parse options (默认是F) T - True: Parse SeqId and create indexes. F - False: Do not parse SeqId. Do not create indexes
-p 文件类型 (默认是T) T - protein F - nucleotide [T/F] Optional 
-n 数据库名称 不指出的话默认为输入文件名 
更多选项请参阅 解压后的doc文件夹的formatdb.html文件
进行BLAST搜索
在命今行下录入blastall 命令及相应的参数
打开输出文件分析结果,如果结果不好可以试着调整参数再次进行BLAST
如下所示命令:
blastall -p blastn -d db_name -i QUERY -o out.QUERY 
Blastall的一些参数说明(1)
-p 程序名 包括 
blastp: 通过蛋白质序列搜索蛋白质序列数据库 
blastn: 通过核酸序列搜索核酸数据库 
blastx: 通过翻译后的核酸序列搜索蛋白质数据库 
tblastn: 通过蛋白质序列搜索翻译后的核酸数据库 
tblastx: 通过翻译后的核酸序列搜索翻译后的核酸数据库 
-d 数据库名称 与formatdb中-n选项一致 
-i 输入文件 不指明的话默认为STDIN 
-o 输出文件 不指明的话默认为STDOUT
Blastall的一些参数说明(2)
-e:设置e-value
-m:比对结果显示格式选项,缺省值为0 ,即pairwise格式。另外还可以根据不同的需要选择1~6等不同的格式。
-I:在描述行中显示gi号[T/F],缺省值F
-b:显示的比对结果的最大数目,缺省值250
-F:对于要查询的序列做低复杂度区域(low complexity regions, LCR)的过滤[T/F],缺省值T。对blastn用的是DUST程序,其他比对用的是SEG程序。
Blastall的一些参数说明(3)
-G: 打开一个gap的罚分(0表示使用缺省设置值),默认0
-E: 扩展一个gap的罚分(0表示使用缺省设置值),默认0
-q: 一个核酸碱基的错配(mismatch)的罚分(只对blastn有效),缺省值-3
-r : 一个核酸碱基的正确匹配(match)的奖分(只对blastn有效),缺省值1
-M: 所使用的打分矩阵,缺省值BLOSUM6244
Bl2seq(两条序列的BLAST)
bl2seq的绝大部分参数是与通用检索程序blastall一致的,只是没有了-d 的选项。另外增加了两个输入选项:
-i:第一个输入序列文件
-j:第二个输入序列文件
注:这两个输入序列都应该是FASTA格式,各自的序列类型--核酸或蛋白--应由所选择的-p 参数决定
命令如下所示:
bl2seq -i query.fa -j sbjct.fa -e 0.01 -o out
Psi-BLAST
Psi-BLAST是由blastpgp命令实现的,它的大部分参数是与blastall一致的,只有少数与迭代检索相关的选项是特别的:
-j: 最大迭代检索的次数,缺省值1,即等同与在blastall中所使用blastp程序
-h: 在每轮检索后构建新的打分矩阵时所选择的序列的期望值(E value)的阈值,缺省值0.001
-C: 将生成的位点特异性的打分矩阵输出到一个文件(二进制格式)
-R: 从文件读取一个原先输出的位点特异性的打分矩阵,然后使用这个矩阵来继续进行以后的检索比对
-Q: 输出一个可读的文本(ASCII)格式的PSI-BLAST的打分矩阵
-B: 设置让blastpgp读取一个已经存在的多重比对文件来构建位点特异性的打分矩阵而进行以后的检索
如下命令所示:
blastpgp -i query.faa -d db_name -o query_out
Fastacmd从数据库中提取序列
-a:是否提取重复accession号的序列[T/F]
-l :设置输出的序列文件每行的字符数
-t :设置在FASTA格式的序列的描述行中只包含gi号[T/F]
-o:输出文件名
命令如下:

fastacmd -d db_name -s p38398

From: http://www.biostatistician.cn/thread-467-1-1.html

Using BLASTClust to Make Non-redundant Sequence Sets

BLASTClust is a program within the standalone BLAST package used to cluster either protein or nucleotide sequences. The program begins with pairwise matches and places a sequence in a cluster if the sequence matches at least one sequence already in the cluster. In the case of proteins, the blastp algorithm is used to compute the pairwise matches; in the case of nucleotide sequences, the Megablast algorithm is used.

In the simplest case, BLASTClust takes as input a file containing catenated FASTA-format sequences, each with a unique identifier at the start of the definition line. BLASTClust formats the input sequence to produce a temporary BLAST database, performs the clustering, and removes the database at completion. Hence, there is no need to run formatdb in advance to use BLASTClust. The output of BLASTClust consists of a file, one cluster to a line, of sequence identifiers separated by spaces. The clusters are sorted from the largest cluster to the smallest.

BLASTClust accepts a number of parameters that can be used to control the stringency of clustering including thresholds for score density, percent identity, and alignment length. The BLASTClust program has a number of applications, the simplest of which is to create a non-redundant set of sequences from a source database. As an example, one might have a library of a few thousand short nucleotide sequence reads and wish to replace these with a non-redundant set. To produce the non-redundant set, one might use:

blastclust -i infile -o outfile -p F -L .9 -b T -S 95

The sequences in "infile" will be clustered and the results will be written to "outfile". The input sequences are identified as nucleotide (-p F); "-p T", or protein, is the default. To register a pairwise match two sequences will need to be 95% identical (-S 95) over an area covering 90% of the length (-L .9) of each sequence (-b T) . Using "-b F" instead of "-b T" would enforce the alignment length threshold on only one member of a sequence pair. The parameter "S", used here to specify the percent identity, can also be used to specify, instead, a "score density." The latter is equivalent to the BLAST score divided by the alignment length. If "S" is given as a number between 0 and 3, it is interpreted as a score density threshold; otherwise it is interpreted as a percent identity threshold.

To create a stringent non-redundant protein sequence set, use the following command line:

blastclust -i infile -o outfile -p T -L 1 -b T -S 100

In this case, only sequences which are identical will be clustered together. The “blastclust.txt” file in the standalone BLAST package details the full range of BLASTClust parameters.

blast的相关概念相关推荐

  1. 2021年大数据Flink(三十三):​​​​​​​Table与SQL相关概念

    目录 相关概念 Dynamic Tables & Continuous Queries ​​​​​​​Table to Stream Conversion ​​​​​​​ ​​​​​​​相关概 ...

  2. 2021年大数据Flink(十):流处理相关概念

    目录 流处理相关概念 数据的时效性 ​​​​​​​流处理和批处理 ​​​​​​​流批一体API DataStream API 支持批执行模式 API 编程模型 ​​​​​​​流处理相关概念 数据的时效 ...

  3. r语言remarkdown展示图_使用R语言包circlize可视化展示blast双序列比对结果

    circlize这个包还挺强大的,R语言里用来画圈图还挺方便的. 今天这篇文章记录用circlize这个包画圈图展示blast双序列比对结果的代码 植物线粒体基因组类的文章通常会分析细胞器基因组间基因 ...

  4. 以太坊智能合约开发第二篇:理解以太坊相关概念

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 很多人都说比特币是区块链1.0,以太坊是区块链2.0.在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太 ...

  5. 为什么 Biopython 的在线 BLAST 这么慢?

    用过网页版本 BLAST 的童鞋都会发现,提交的序列比对往往在几分钟,甚至几十秒就可以得到比对的结果:而通过调用 API 却要花费几十分钟或者更长的时间!这到底是为什么呢? NCBIWWW 基本用法 ...

  6. BLAST引物或靶点特异性

    blastn -query qpcr_primer.txt -db Es_cds_db -outfmt 6 -evalue 1e-2 -out qpcr_primer_EsCDS.blast -num ...

  7. 生信分析-本地BLAST

    一. 本地blast简介 本地Blast(Basic Local Alignment Search Tool),是基于本地的比对搜索工具,可以在自己建立的数据库进行blast搜索,与NCBI的在线bl ...

  8. 第二章 序列比对——Blast局部比对

    第二章 序列比对--Blast局部比对  阅读量: 330 主要为基因组测序比对相关知识,部分内容作笔记自查使用.如有错误或遗漏还请海涵,可评论或邮箱联系. 最后修改时间:2020-04-16 16: ...

  9. Basic local alignment search tool (BLAST)

    Basic local alignment search tool (BLAST) 包括:blastn, blastp, blastx, tblastn, tblastx等. 使用conda安装即可. ...

最新文章

  1. tcpdump for Android 移动端抓包
  2. Skype for Business Server 2015-09-测试-基本功能(建议:看PDF!)
  3. 国外网站评出对程序员最具影响的书籍清单
  4. Android添加单元测试的方法与步骤
  5. java方法不可覆盖_详解Java构造方法为什么不能覆盖,我的钻牛角尖病又犯了.......
  6. 华罗庚的数学有多厉害?靠报纸上的一个四边形算出导弹基地的位置
  7. 计算机控制技术实际PID控制,计算机控制技术数字PID.doc
  8. iphone使用linux命令apt-get也没有问题
  9. iphone 制作在线播放器
  10. 【t063】最聪明的机器人
  11. Flutter动画系列之AnimatedWidget
  12. autocad2007二维图画法_AutoCAD2007教程(二)二维基本绘图命令
  13. matlab cftool 最小二乘,【转】最小二乘法与matlab拟合工具箱cftool
  14. App Store 评分和评论:用户评论如何影响 App Store 排名
  15. Vins-Mono系列代码和理论解读<五>.位姿图Pose_graph理论和代码实现细节
  16. 推荐几个程序员Mac m1max芯片笔记本软件
  17. IPv4与IPv6之间的区别
  18. 关于猜数字中随机数的产生
  19. Python批量对DJ歌曲进行下载,配合电子木鱼更佳
  20. Genbank的gbff格式转gff3格式(补充)

热门文章

  1. 你能分清比例和比率吗?
  2. Hadoop命令大全
  3. B/S、C/S、 A/S
  4. 项目管理中如何做好相关方(干系人)管理?
  5. Python 练习实例100例—2
  6. java JDBC事务和JTA事务详解
  7. 天池比赛物流比赛_比赛树及其属性
  8. 高斯混合模型(GMM)及其EM算法的理解
  9. 基于Java+Swing实现俄罗斯方块游戏
  10. android手机如何到导出电话号码,手机通讯录怎么导入到新手机?三种方法,快速迁移!...