BLAST 序列比对
通过BLAST,可以快速的从数据库中,找到和已知序列最相似的序列。uniprot,ncbi,pdb 数据库等,都提供BLAST 的功能。
BLAST 的原理
BLAST 的全称为basic local alignment search tool,基本局部比对工具。
BLAST 的原理很简单,就是通过搜寻片段对的方式。
而什么是片段对呢?
片段对就是两个给定序列中的一对自序列,长度相等,且可以形成无空位的完全匹配。
BLAST 首先找出探测序列和目标序列间所有的匹配程度超过一定阈值的序列片段对,然后对片段对根据给定的相似性阈值进行延伸,得到一定长度的相似性片段,最后给出高分值片段(high-scoring pairs,HSPs)。
改进后的BLAST 允许空位的插入。
通过BLAST 算法降低了计算的复杂度,但相应的牺牲了一定的准确性。
BLAST 的种类
BLAST 实际上是一组工具的统称。
为什么要用Blastx?为什么Blastx 需要按6条链翻译成蛋白质后再收缩?
有可能核酸数据库中的核酸,没有匹配到相似的序列。再或者匹配到的序列没有符合预期的相关注释信息。
因为在不知道起始位点的情况下,翻译可能是从某个任意的起始位点(密码子)开始, 而且也可能从互补链上开始翻译,因此有3*2 = 6种(这里我也不太明白为什么可能从1,2,3碱基就是3了)
这些翻译出的蛋白质有些是真实存在的,有些则是不存在的,但是到底谁是真的我们也不知道,因此干脆就六个全弄了。
反之也可以使用tblastn,通过比较已知的蛋白质序列和核酸数据库按六条链翻译成的蛋白质数据库,进行匹配。发现编码该蛋白质的潜在基因。
将tblastn 与Blastx 用在一起,就成了tblastx 。
将核酸序列先按6条链翻译成蛋白质序列,再将核酸数据库按照6条序列翻译成蛋白质数据库,再将二者进行匹配。
不同算法的BLAST工具
开始搜索
使用NCBI提供的BLAST 工具
https://blast.ncbi.nlm.nih.gov/Blast.cgi
先试试Blastp
其中query subrange 提供了一个缩小范围的功能,可以进一步选定序列。如果空着,则为全长搜索。
虽然是ncbi的数据库,但是数据库,范围却包括其他数据库的信息。
算法中也提供了多种选项。
查看搜索结果
首先映入眼帘的,是搜索任务的描述。
接着是图形化搜索结果
图中信息显示了蛋白质序列及其序列所属的蛋白质超家族
以及所有搜索结果中的高分匹配段以及它们的长度和得分情况。
描述部分是匹配序列的详细信息
打分和覆盖度分别对应了图形中的颜色与长度
除此之外E-value 也非常重要
而Ident 信息则代表了这些序列双序列比较得到的一致度。
这也侧面反映了对于得分高的亲缘序列,除了BLAST 之外,也进行了双序列比较。
但对于那些远源序列,则不会显示了。
加强版的BLAST
前面我们提到过,使用BLAST 只能找到那些和检测序列非常相近的序列,而那些远缘序列,则找不到了。
这时可以使用PSI BLAST,Position-Specific Iterated BLAST,位点特异性迭代BLAST
简单的理解就是一个迭代的过程,通过BLAST 找到了与目的序列相似的序列信息,并对其中每一个位置上的元素进行构建PSSM矩阵。根据分析后,再对新搜索出来的结果构建PSSM矩阵。这样如此往复,直到无法搜索出新的结果为止。
操作一下
第一轮搜索的结果和标准BLAST 是一样的
第二轮搜索可以选定数据的上限
第二轮搜索的序列增添了新的面孔(黄色的),没有标黄的便是第一轮中的序列。
而对比发现,这些序列的一致性并不比第一轮中的序列低太多。
在右上角可以选择直接跳到这轮找到的第一个新序列。
理论上来说,按照需要可以进行n轮PSI BLAST,直到找到的序列数目或内容满意为止。
精准版的BLAST
PHI-BLAST,pattern-hit initiated,模式识别BLAST,能找到符合某种特定模式的与输入序列相似的序列。
这样的模式,可以通过正则表达式定义。
{} 内的表示除其以外的内容,[] 表示其中之一,x表示任意字母, (a, b)表示 a到b 个之前的字母内容。
正则小练习
yes, no, no, no
测试一下
PHI-BLAST 和PSI-BLAST 可以联合使用
总结三种BLAST 的关系
其他类型的BLAST
smartBLAST
可以当作是BLASTp 的简洁强化版,搜索界面只需要输入序列即可。
只会返回最相似的三条序列的信息,而且会给出相关的系统发生树
smartBLAST 是个找出最想要的比对序列的很好的选择
其他平台上的BLAST
ps:可以利用时差在歪果仁睡觉的时候去用他们的数据库。