史密斯沃特曼算法

史密斯 - 沃特曼算法 （ Smith - Waterman algorithm ） 是一種進行局部序列比對 （ 相對於全局比對 ） 的算法 ， 用於找出兩個核苷酸序列或蛋白質序列之間的相似區域 。 該算法的目的不是進行全序列的比對 ， 而是找出兩個序列中具有高相似度的片段 。 該算法由坦普爾 · 史密斯和邁克爾 · 沃特曼於1981年提出 。 史密斯 - 沃特曼算法是尼德曼 - 翁施算法的一個變體 ， 二者都是動態規劃算法 。 這一算法的優勢在於可以在給定的打分方法下找出兩個序列的最優的局部比對 （ 打分方法使用了置換矩陣和空位罰分 ） 。 該算法和尼德曼 - 翁施算法的主要區別在於該算法不存在負分 （ 負分被替換爲零 ） ， 因此局部比對成爲可能 。 回溯從分數最高的矩陣元素開始 ， 直到遇到分數爲零的元素停止 。 分數最高的局部比對結果在此過程中產生 。 在實際運用中 ， 人們通常使用該算法的優化版本 。