序列比對

序列比对指将两个或多个序列排列在一起，标明其相似之处。序列中可以插入间隔（通常用短横线“-”表示）。对应的相同或相似的符号（在核酸中是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算法的速度。