BLAST 数据库搜索程序
我们应该都有接触过未知物种和功能信息的DNA序列,并拿它们做过BLAST吧,它是基于什么原理和方法判断序列来源的呢?是怎么从庞大繁杂的数据库中找出与它相似的已知序列的呢?这个问题促使我来更多得了解BLAST。
对于蛋白质而言,不同的氨基酸排列组合构成了结构和功能各异的生物大分子;对于核酸而言,不同的碱基排列组合,在不同物种中代代传递。因此,相似的序列往往起源于一个共同的祖先序列。对于一个已知序列但未知结构和功能的蛋白质,如果与它序列相似的某些蛋白质的结构和功能已知,则可以推测这个未知结构和功能的蛋白质的结构和功能。这就是序列比较的意义。而BLAST就是一个可以进行序列比对的、快速的数据库搜索工具。
1. BLAST的基本原理
BLAST基本原理很简单,它的要点是片段对的概念。
-
片段对:是指两个给定序列中的一对子序列,它们长度相等,且可形成无空位的完全匹配。
片段对
BLAST首先找出探测序列和目标序列间所有的匹配程度超过一定阈值的序列片段对,然后对片段对根据给定的相似性阈值进行延伸,得到一定长度的相似性片段,最后给出高分值片段对(high-scoring pairs, HSPs)。(改进后的BLAST允许空位的插入)
高分值片段对找高分值片段对比做序列比对节省了大量的时间
2. 将BLAST分类(按照应用分)
BLAST实际上是综合在一起的一组工具的统称,它不仅可用于直接对蛋白质序列数据库和核酸序列数据库进行搜索,而且可以将 待搜索的核酸序列 翻译成蛋白质序列后再进行搜索,或反之,以提高搜索效率。后面三种主要用于对新发现的序列进行搜索:
- Blastp:用蛋白质序列搜索蛋白质序列数据库(寻找与待搜索蛋白质序列相似的蛋白质序列)
- Blastn:用核酸序列搜索核酸序列数据库(寻找与待搜索核酸序列相似的核酸序列)
- Blastx:将核酸序列按6条链翻译成蛋白质序列后搜索蛋白质序列数据库(寻找与待搜索核酸序列编码蛋白质相似的蛋白质序列)
- tBlastn:用蛋白质序列搜索核酸序列数据库,数据库中的核酸序列要按6条链翻译成蛋白质序列后再搜索(寻找与待搜索蛋白质序列,编码相似蛋白质的核酸序列)
- tBlastx:将核酸序列按6条链翻译成蛋白质序列后搜索核酸序列数据库,数据库中的核酸序列要按6条链翻译成的蛋白质序列后再搜索(寻找与待搜索核酸序列,编码相似蛋白质的核酸序列)
为什么是按照6条链翻译后再检索?
在无法得知翻译起始位点的情况下,翻译可能是从第一个碱基开始;第二个碱基开始;第三个碱基开始或者是互补链的第一个碱基,第二个碱基,第三个碱基,这样总共6个可能开始的开始,从而产生6种不同的翻译链。这其中有些真实存在,有些不存在,因此都要在数据库中进行搜索。
3.将BLAST分类(按照算法分)
3.1 标准BLAST
适合寻找亲缘关系近的序列(远缘序列容易被忽略)
3.2 PSI-BLAST
PSI-BLAST(Position-Specific Iterated BLAST,位点特异性迭代BLAST):PSI-BLAST 的特色是每次用位置特异权重矩阵(Position-Specific Iterated Mattrix, PSSM)搜索数据库后再利用搜索的结构重新构建PSSM,然后用新的PSSM再次搜索数据库,如此反复(iteration)直至没有新的结果为止。
3.3 PHI-BLAST(精准模式)
PHI-BLAST(Pattern-Hit Initiated BLAST,模式识别BLAST):能找到与输入序列相似的并符合某种特定模式(pattern)的序列。
举例:
例如:N-糖基化位点基序总是符合以下特定模式:以Asn开始,然后紧跟除了Pro之外的任何一个氨基酸,再紧跟Ser或者Thr,再紧跟除Pro外的任何一个氨基酸。正则表示:N{P}[ST]{P}({}
代表除…外,[]
代表其中任意一个x
代表任意字符(3,7)
表示3-7个)
这种序列特征模式可能代表某个翻译后修饰的发生位点,也可以代表一个酶的活性位点,或者一个蛋白质家族的结构域、功能域。
还有其他的BLAST,这里就不再赘述。。。