【BLAST算法原理】什么是K串?什么是HSP?什么是E值?

本文介绍了BLAST算法,一种用于数据库搜索的局部比对方法,通过K-tuple或K-mer减少比对时间。BLAST利用动态规划找到高得分联配对(HSP),并通过E-value评估序列相似性,降低假阳性的可能性。
摘要由CSDN通过智能技术生成

 做过多序列比对的人都知道BLAST,也常听到K串、HSP以及E值,那么这些名词到底是什么意思?

BLAST算法背景

我们知道全局比对使用Needleman-Wunsch算法,局部比对使用Smith-Waterman算法,这两个算法都是基于动态规划。两、三条序列比对尚可使用上述算法,比对的运算时间我们还能接受,但当更多条序列进行比对时,前趋节点个数为2^k-1,正比于节点数,时间复杂度为O(2^k*N^k),运算量极大,运算时间也变得很长。所以为了解决运算量大、耗时长这一问题,1990年,Altschul等人提出了用于数据库搜索的BLAST算法(Basic Local Alignment Search Tool),至今也广泛使用,其发表的文献也被引用万次。如其名,使用的是局部比对,也是基于动态规划。那么同样是动态规划,它与Smith-Waterman算法有何不同呢?

BLAST算法原理

为了降低比对时间,BLAST算法中的一个很重要的手段是建立序列数据库的“字”检索系统,也就是K-tuple或K-mer,这种思想最初由Wilber和Lipman提出。建立“字”检索系统就是将数据库中所有序列包含的不同长度字符串进行扫描,建立索引。当对递交序列进行数据库搜索比对时,首先对待检索序列进行扫描,确定其中包含的所有特定长度字符串,接着在实际数据库搜索时,只对包含相同字符串的数据库序列进行比对,忽略不包含这些索引的序列(大量无关序列),进而能够节省时间。比如有一段DNA序列TGCAGCG,以3个碱基长度的字符串为例,它包含5个字长为3的字符串(TGC,GCA,CAG,AGC,GCG),那么在比对之前,先搜索实际数据库中包含这5个字符串的序列有哪些,不比对无关序列。这种思想和操作是真的妙,通过提前筛选,忽略掉无关序列,不做无用功。

那么具体步骤是什么呢?

具体步骤:

I.第一步:对递交序列进行字符串分割,字长为k,建立所有词的索引列表(如图A)。

图片

II.第二步:检索目标数据库中所有包含列表中字符串完全一样的序列(如图B)。

图片

III.第三步:获取HSP(High Scoring Segment Pair,高得分联配对)。对每个数据库序列包含或匹配的词得到的联配(即“hit”),用动态规划算法向两端延伸,延伸过程中联配值S会变化,设定一个阈值X,当联配值到达X时,延伸结束,就获得了HSP(如图C)。

图片

如下图D,在延伸过程中,联配得分在动态变化,比如说这里的阈值X,把它沿横坐标延长,在原字符串长度基础上匹配值有极大值就可以停止延伸(即a点),如果延伸到b点匹配值会降到该邻域的极小值。

图片

 通过上述三步,我们就得到了序列比对相似度比较高的HSP。那么这个相似性高或者不高怎么判断呢?这就需要统计推断。

序列相似性的统计推断

BLAST搜索返回的结果中,有递交序列与数据库序列比对结果的得分,也有一个统计检验结果E-value。对于两条序列,在一定的长度m和n的限定下,HSP的统计值可由两个参数(k和λ)确定。E-value的公式是:

E=kmne^(-λS)

E值是指随机情况下获得的≥联配S值的HSP数量,可想而知,E值越小,说明随机获得的HSP联配值≥真实比对的S值的数量越少,也就是假阳性小,说明统计学意义上递交序列与得到的联配序列相似性越高。

我们再来观察一下E值公式,m是递交序列的长度,n是整个数据库序列的长度,λ是打分修正参数,mn可以代表搜索空间大小,m和n的变化会影响比对随机发生的可能性。当联配值S变大时,E值变小,这也符合预期,因为我们通过BLAST比对,期望得到的联配分数越大,那么随机匹配它的“成功率”越低。

 

从上面这个图可以看出,当E<0.05时,P值与E值趋近相同。

参考资料

樊龙江-《生物信息学》

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值