序列比对
序列比对指将两个或多个序列排列在一起,标明其相似之处。序列中可以插入间隔(通常用短横线“-”表示)。对应的相同或相似的符号(在核酸中是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算法的速度。
FASTA
外部链接
- (英文)描述BLAST算法的文章 (页面存档备份,存于互联网档案馆)
- (英文)Blast服务器 (页面存档备份,存于互联网档案馆),位于NCBI
- (英文)JAligner在线序列比对程序 (页面存档备份,存于互联网档案馆)