首页 理论教育4.3秒速完成多序列比对的算法

4.3秒速完成多序列比对的算法

【摘要】:由此可见,双序列比对也是MSAA的重要组成部分。在多序列比对中常用的双序列比对算法包括动态规划算法和启发式快速比对算法,动态规划算法主要包括NW算法、SW算法、Hirschberg算法等。本文研究中所需的双序列比对算法也是应用了《基于动态规划的双序列比对算法构件设计与实现》一文中的实现方式。以保留的种子片段在靶序列中出现的位置为基础进行两端的扩展,并形成比对,比对的方式可以是动态规划算法。

由于双序列比对算法可以找到两条序列之间的相似性区域,以及保守位点等信息,通过比对分值可对序列之间的距离远近进行初步的评估,因此目前很多常用多序列比对算法的第一步都是双序列比对,通过双序列比对对序列组进行初步的处理,以此为基础进行后续的算法步骤。由此可见,双序列比对也是MSAA的重要组成部分。

在多序列比对中常用的双序列比对算法包括动态规划算法和启发式快速比对算法,动态规划算法主要包括NW算法、SW算法、Hirschberg算法等。关于动态规划算法的分析,我们团队之前已进行了相关的研究。本文研究中所需的双序列比对算法也是应用了《基于动态规划的双序列比对算法构件设计与实现》一文中的实现方式。这一节主要对另一种启发式快速比对算法进行分析。

启发式快速比对算法通常基于分治法的算法思想,将序列比对问题通过其建立的索引进行划分,将问题转换为寻找各个片段的最优解。启发式算法主要有两种类型:基于哈希表索引的算法和基于后缀树索引的算法。FASTA、BLAST算法属于前者,MUMmer、AVID算法属于后者。此外,Wilbur和Lipman在1983年提出了一种基于k-mer匹配的全局比对算法。该算法大大缩小了比对所需的时间,且具有较高的准确性,适用于数据量较大的比对。这里我主要详细说明一下目前常用的BLAST算法,它属于基于哈希表的seed算法,广泛应用于数据库搜索。

BLAST算法步骤主要有四步,描述如下:

(1)寻找待比对序列与靶序列之间高度相似的片段。通过预设的长度对待比对序列进行切割形成种子片段,通常DNA种子片段的长度为3,蛋白质种子片段的长度为11。BLAST在这一步骤中会对种子片段进行筛选,过滤掉重复且复杂度极低的片段,避免后续产生过多无生物学意义的结果。(www.chuimin.cn)

(2)通过在数据库中建立的索引表,快速定位种子片段在候选序列中的位置。这里需要用到相应的替换矩阵计算比对分值,比对分值必须达到事先设定的阈值,才能保留其相应的种子片段。

(3)以保留的种子片段在靶序列中出现的位置为基础进行两端的扩展,并形成比对,比对的方式可以是动态规划算法。这里需预设一个阈值t,当扩展到比对得分低于t时结束,保留相应的比对结果。

(4)对比对结果进行评估。BLAST引入了E-value来评估比对结果的统计显著性,确保比对结果不是由随机因素产生的。