语音识别:时间序列的Smith–Waterman对齐算法
一、基本概念
????????Smith-Waterman 算法執行局部序列比對;也就是說,用于確定兩串核酸序列或蛋白質序列之間的相似區域。 Smith-Waterman 算法不是查看整個序列,而是比較所有可能長度的片段并優化相似性度量。
????????該算法由 Temple F. Smith 和 Michael S. Waterman 于 1981 年首次提出。 [1]與作為其變體的 Needleman-Wunsch 算法一樣,Smith-Waterman 是一種動態規劃算法。因此,它具有理想的特性,即可以保證找到相對于所使用的評分系統(包括替換矩陣和間隙評分方案)的最佳局部對齊。 Needleman-Wunsch 算法的主要區別在于負評分矩陣單元設置為零,這使得(因此正評分)局部對齊可見。 Traceback 過程從得分最高的矩陣單元開始并繼續進行,直到遇到得分為零的單元,從而產生得分最高的局部對齊。由于它在時間和空間上的二次復雜性,它通常不能實際應用于大規模問題,而是被不太通用但計算效率更高的替代方案所取代,例如 (Gotoh, 1982), [2] (Altschul 和 Erickson, 1986 年),[3] 和(邁爾斯和米勒,1988 年)。 [4]
二、算法原理
令 和是要對齊的序列,其中和 分別是 和 的長度。1 確定替代矩陣和空位懲罰方案。
-
- 構成兩個序列的元素的相似度得分
- ? - 長度為? k 的間隙的懲罰
2?構造一個評分矩陣H 并初始化它的第一行和第一列。評分矩陣的大小為 。該矩陣使用基于 0 的索引。
????????
3 使用以下等式填充評分矩陣。
是對齊和,
是如果 在末尾的分數長度為的間隙,
是如果 在末尾的分數長度為的間隙,
表示和 沒有相似性。
4 追溯。從評分矩陣 {\displaystyle H}H 中的最高分數開始,到分數為 0 的矩陣單元格結束,遞歸地基于每個分數的來源進行回溯,以生成最佳局部對齊。
三、計算步驟
????????Smith-Waterman 算法通過匹配/錯配(也稱為替換)、插入和刪除來比對兩個序列。插入和刪除都是引入間隙的操作,用破折號表示。 Smith–Waterman 算法有幾個步驟:
????????1?確定替代矩陣和空位懲罰方案。替換矩陣為每對堿基或氨基酸分配匹配或錯配的分數。通常匹配得到正分數,而不匹配得到相對較低的分數。間隙懲罰函數確定打開或擴展間隙的得分成本。建議用戶根據目標選擇合適的評分系統。此外,嘗試替代矩陣和空位懲罰的不同組合也是一種很好的做法。
????????2?初始化評分矩陣。評分矩陣的維度分別為每個序列的 1+length。第一行和第一列的所有元素都設置為 0。額外的第一行和第一列使得可以在任何位置將一個序列與另一個序列對齊,并將它們設置為 0 使末端間隙不受懲罰。
????????3?得分。考慮替換的結果(對角線得分)或添加差距(水平和垂直得分),從左到右、從上到下對矩陣中的每個元素進行評分。如果沒有一個分數是正數,則該元素為 0。否則,使用最高分數并記錄該分數的來源。
????????4?追溯。從分數最高的元素開始,根據每個分數的來源遞歸回溯,直到遇到 0。在此過程中生成基于給定評分系統具有最高相似度分數的片段。要獲得第二好的局部對齊,請從最佳對齊軌跡之外的第二高分開始應用回溯過程。
四、算法示例
4.1 替代矩陣
? ? ? ? 每個堿基取代或氨基酸取代都被分配一個分數。一般來說,匹配的得分為正,不匹配的得分相對較低。以 DNA 序列為例。如果匹配得到+1,不匹配得到-1,那么替換矩陣是:
| 1 | -1 | -1 | -1 |
| -1 | 1 | -1 | -1 |
| -1 | -1 | 1 | -1 |
| -1 | -1 | -1 | 1 |
這個替換矩陣可以描述為:
?不同的堿基取代或氨基酸取代可以具有不同的分數。氨基酸的置換矩陣通常比堿基的置換矩陣復雜。參見 PAM,BLOSUM。
4.2 空檔罰分
????
????????空位罰分指定插入或刪除的分數。一個簡單的空位罰分策略是對每個空位使用固定分數。然而,在生物學中,出于實際原因,需要對分數進行不同的計算。一方面,兩個序列之間的部分相似性是普遍現象;另一方面,單個基因突變事件可能導致插入單個長缺口。因此,形成長間隙的連接間隙通常比多個分散的短間隙更受青睞。為了考慮到這種差異,評分系統中增加了間隙打開和間隙擴展的概念。缺口開放分數通常高于缺口擴展分數。例如,EMBOSS Water 中的默認參數是:缺口開度 = 10,缺口延伸 = 0.5。
????????在這里,我們討論了間隙懲罰的兩種常見策略。有關更多策略,請參閱間隙懲罰。令 為長度為 k 的間隙的間隙懲罰函數:
1)線性罰分
線性間隙罰分在打開和擴展間隙時具有相同的分數:
, 其中 是單個間隙的成本。
?間隙懲罰與間隙長度成正比。當使用線性間隙懲罰時,Smith-Waterman 算法可以簡化為:
簡化算法使用步驟。當對一個元素進行評分時,只需要考慮與該元素直接相鄰的元素的差距罰分。
2)仿射罰分
????????仿射空位罰分分別考慮空位打開和擴展:
,
????????其中 ?是空位開放罰分,?是空位擴展罰分。例如,長度為 2 的間隙的懲罰是。 在原始的 Smith-Waterman 算法論文中使用了任意間隙懲罰。它使用?步驟,因此對時間要求很高。 Gotoh 將仿射間隙罰分的步驟優化為 {\displaystyle O(mn)}O(mn),[2] 但優化后的算法僅嘗試找到一個最佳對齊方式,并且不能保證找到最佳對齊方式。 [ 3] Altschul 修改了 Gotoh 的算法,以在保持計算復雜性的同時找到所有最佳對齊。 [3]后來,Myers 和 Miller 指出,Gotoh 和 Altschul 的算法可以在 Hirschberg 于 1975 年發表的方法[11]的基礎上進一步修改并應用該方法。 [4] Myers 和 Miller 的算法可以使用?空間對齊兩個序列,其中是較短序列的長度。
4.3 間隙懲罰示例
? ? ? ? 以序列TACGGGCCCGCTAC和TAGCCCTATCGGTCA的比對為例。當使用線性間隙懲罰函數時,結果為(由 EMBOSS Water 執行的對齊。替換矩陣為 DNAfull。間隙打開和擴展均為 1.0):
TACGGGCCCGCTA-C
TA---G-CC-CTATC
當使用仿射間隙懲罰時,結果是(間隙打開和擴展分別為 5.0 和 1.0):
TACGGGCCCGCTA
TA---GCC---CTA
這個例子表明仿射間隙懲罰可以幫助避免分散的小間隙。
4.4 評分矩陣
????????評分矩陣的作用是對兩個序列中的所有成分進行一對一的比較,并記錄最優的比對結果。評分過程反映了動態規劃的概念。通過迭代擴展不斷增長的最佳對齊來找到最終的最佳對齊。換句話說,當前的最佳對齊是通過決定哪條路徑(匹配/不匹配或插入間隙)從先前的最佳對齊中給出最高分數來生成的。矩陣的大小是一個序列的長度加 1 乘以另一個序列的長度加 1。附加的第一行和第一列用于將一個序列與另一個序列中的任何位置對齊。第一行和第一列都設置為 0,這樣結束間隙就不會受到懲罰。初始評分矩陣為:
| 0 | 0 | ... | 0 | ... | 0 |
| 0 | |||||
| ... | |||||
| 0 | |||||
| ... | |||||
| 0 |
五、例子
5.1 示例說明
以 DNA 序列 TGTTACGG 和 GGTTGACTA 的比對為例。使用以下方案:
代入矩陣:
間隙懲罰:(線性間隙懲罰 )
初始化并填充評分矩陣,如下圖所示。該圖顯示了前三個元素的評分過程。黃色表示正在考慮的堿基。紅色表示被評分單元格的最高可能分數。
評分矩陣的初始化(左1)和前三個元素的評分過程(左2-4)
完成的評分矩陣如下左圖所示。藍色表示最高分。一個元素可以從多個元素接收分數,如果追溯該元素,每個元素將形成不同的路徑。如果有多個最高分,則應從每個最高分開始進行回溯。回溯過程如下右圖所示。最佳的局部對齊是在相反的方向上生成的。
5.2 實現步驟參考圖
step1:初始化評分矩陣
?step2:按規則填充評分矩陣
?
step4 確定最高分數
?step5:回溯路徑
step6:結果輸出
總結
以上是生活随笔為你收集整理的语音识别:时间序列的Smith–Waterman对齐算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言:烟花效果实现
- 下一篇: 公式编辑语言:LaTeX/Advance