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