串行比对
串行比对指将两个或多个串行排列在一起,标明其相似之处。串行中可以插入间隔(通常用短横线“-”表示)。对应的相同或相似的符号(在核酸中是A, T(或U), C, G,在蛋白质中是氨基酸残基的单字母表示)排列在同一列上。
tcctctgcctctgccatcat---caaccccaaagt
|||| ||| ||||| ||||| ||||||||||||
tcctgtgcatctgcaatcatgggcaaccccaaagt
这一方法常用于研究由共同祖先进化而来的串行,特别是如蛋白质串行或DNA串行等生物串行。在比对中,错配与突变相应,而空位与插入或缺失对应。串行比对还可用于语言进化或文本间相似性之类的研究。
术语“串行比对”也指构建上述比对或在潜在的不相关串行的数据库中寻找significant alignments。
比对方法
对于很短或非常相似的串行,我们可以人工进行比对。然而,在很多问题中,我们需要对非常长的串行进行比对,这是单靠人类的努力所不能解决的。在这种情况下,我们通过构造算法来进行高效的串行比对,有时还需要对最终结果进行调整,因为有些结果难以通过算法表达出来(特别是核苷酸串行)。串行比对的计算方法一般分为两类:全局性比对(global alignments)和局部比对(local alignments)。计算一个全局性的路线,是一个全局优化的形式,其强制按照整个长度的所有查询串行对齐。与此相反,局部比对只确定局部的相似而整个长串行却往往大相径庭。局部比对往往是可取的,但可能更难以计算的,因为还有来自确定其他相似区域的挑战。各种计算算法已应用于串行比对的问题,包括缓慢,但正规的像动态规划的优化方法和高效率,但不彻底的启发式算法,或大型数据库搜索设计的概率方法。
双串行比对
双串行比对方法涉及寻找(局部)最优匹配片断或蛋白质(氨基酸)或DNA(核酸)全局比对。
全局比对
全局比对是指将参与比对的两条串行里面的所有字符进行比对。 全局比对主要被用来寻找关系密切的串行。由于这些串行也都很易通过本地比对方法找到,现在全局比对也有些被认为只是一种技巧。另外,全局比对在应用于分子进化时也有些问题(比如domain shuffling -见下),这也限制了这种方法的可用性。
多串行比对
多串行比对是成对比对的延伸,是为了在一次比对里面处理多于两条的串行。多串行比对方法试图比对一个指定串行集合里面的所有串行,这可以帮助确定这些串行的共同区段。进行多串行比对有几种方法,最常用的一种是Clustal进程集,它使用渐进多串行比对算法。Clustal在cladistics中被用来创建进化树,在PSI-BLAST和Hidden Markov model- (HMM-)中用来创建串行档案以在串行数据库中搜索更远的同源串行。
多串行比对编程实现困难。被归为NP难题的一种。
软件
这一方法利用一个预先计算的哈希表作为短串行的索引。给定一个被查询串行,将根据索引来查询子串行,从而减少查询次数和时间。提供一些参数将使该方法更快或更准确。检索到与检索串行匹配的模式后,需要进一步使用更加准确和深入的算法。
BLAST利用成对的本地检索和许多其他方法来提高Smith-Waterman算法的速度。
外部链接
- (英文)描述BLAST算法的文章 (页面存档备份,存于)
- (英文)Blast服务器 (页面存档备份,存于),位于NCBI
- (英文)JAligner在线串行比对进程 (页面存档备份,存于)