階梯式DNA序列搜尋演算法
6
0
0
全文
(2) (Expected Case Time Complexity 或 Best Case Time Complexity),在 SPTC 欄位中所表示的 均是在比對過程中最差情況之時間複雜度,其 中 m 是指比對樣本的長度,n 是指序列的長 度,而 σ 則表示是在 BM 演算法中的劣字元 (bad character)表格的大小。由 Karp 與 Rabin 所提出的 KR 演算法是將字串進行編碼,轉換 字串到數字集合後再來執行比對以降低字串 比對的次數,而 Knuth-Morris-Pratt 演算法和 Boyer-Moore 演算法則提供了採用區段比對 的概念,若能夠將這些特性加以整合運用,則 可減少搜尋重複相同 DNA 字串之時間複雜 度。 表(一):各種演算法時間複雜度之比較. PPTC. SPTC ECTC(BCTC). BF-A. -. O(mn). O(mn). KR-A. O(m). O(mn). O(m+n). KMP-A O(m) O(n+m). -. BM-A O(m+ ) O(mn). O(n / m). 二、符號定義 本論文主要之目標是希望從一個 DNA 家族序列中尋找長度不定的共同字串,DNA 序 列 是 由 字 母 表 Σ = {A, C , G, T } 所 構 成 之 字 串,其中 A, C , G , T 為 DNA 序列中的四個鹼 基。以 S 代表 DNA 家族序列之集合,在 S 集 合中若一個 DNA 序列以 y 來表示, y ∈ S , 其中 | y | 代表該序列的長度,且該序列的索引 值由 0 到 | y | −1 ,索引值由 i 到 j 的子序列是 以 y[i... j ] 表示,且 0 ≤ i ≤ j ≤| y | −1 。若ψ 集 合是由序列 y 來組成所有可能子序列區段之 集合,其中每一個不同長度的子序列區段即為 比對樣本之候選字串,而ψ my 則為ψ y 中樣本長 y. 度為 m 的子集合,若某一樣本以 w 符號代 表,則 | w | 代表該樣本的長度,索引值是由 0 到 | w | −1 。假設在 S 集合中,序列之總數為 i. | I y | 為第 y 個已編碼序列區間集合的個數, A. I y 代表對 y 序列之編碼數值中數字 A 所在. 之區間位置,即該編碼數值之區間索引值。. 三、演算法說明 本論文針對比對多重 DNA 序列之共同子 字串提出兩種演算法,第一種為階梯式步進比 對演算法(Ladderlike Stepping Searching Algorithm ,LSSA),第二種為階梯式區間跳躍比對 演算法(Ladderlike Interval Jumping Searching Algorithm, LIJSA),兩種演算法皆包含三個階 段:編碼、排序和搜尋階段。第一階段和第二 階段在兩種演算法之中皆執行相同的程序,僅 有在第三個階段中,階梯式區間跳躍演算法提 出了更進階的演算模組及更快的比對速度。第 一階段編碼的精神在於字串序列轉換成數字 序列時,經由編碼後的數值具有唯一性,所以 能夠降低原本逐一字元符號比對的時間複雜 度,第二個階段是執行排序之動作,主要的目 的是為了在數值比對時可以依數值之大小循 序比對,可避免未經排序數列之重複搜尋,而 第三個階段是執行及記錄最後比對的過程,第 一種步進式比對沒有額外的區間切割程序,而 第二種演算法將同一區間之編碼數值在排序 之後集中放置,以不同方式進行區間分割,期 能將不同序列在同一區間之編碼數值數量差 距加大,增加區間跳躍之機率並減少序列比對 所需之時間,以下分別說明這三個階段的執行 方式與改進效率。 (一)編碼階段:在此採用的編碼方式和 Karp-Rabin 演算法[23]相似,不同點在於本演 算法所取的換算基底不是 ASCII 編碼數字而 是以 4 為基底,其中 G、A、T、C 分別以 0、 1、2、3 來取代。至於以 4 為編碼基底的原因 在於將字串轉變成數字時具有’唯一’之特性, 可避免在 Karp-Rabin 演算法中所取的編碼基 底小於 ASCII 數字,造成編碼後產生衝突的情 況發生,運用公式(1)及(2)取得每一 DNA 序列 區段中樣本長度為 m 的’唯一’雜湊值,其中 w 是長度為 m 的樣本字串, base 為編碼基底, 而 y 為進行編碼之 DNA 序列。編碼過程的時. N ,其中第 i 個序列以 S 表示,該序列之長 度為 | S i |= Li 。在本論文所討論之演算法中,. 間複雜度為 O ( N × ( Lmax − m + 1)) ,其中 N 為家 族序列集合的個數, Lmax 為集合中最長的序列. 字串將先進行編碼轉換之過程,並形成一個以 數值代表的新集合,以ψ~ y 來表示之,對子序 列ψ~ y 集合進行編碼後之數值,而ψ~ y 為數值集. 長度, m 為某一樣本的長度,其中 2 ≤ m ≤ Lmax 。. m. 合ψ~ y 中樣本長度為 m 的子集合,ψ~ y 集合中 依其數值大小進行排序及分組,讓具有某些共 同範圍之數值可以群聚在某一特別區間,並以 I 符號來代表編碼數值區間之集合,其中對 y 序列編碼後之數值區間集合以 I y 表示,則. hashfunc(w[0...m − 1]) =. w[0]basem−1 + w[1]basem− 2 + ... + w[m − 1]base0. (1) rehashfunc ( y [ i ], y [ i + m ], hash ([ i ... i + m − 1])) (2).
(3) (二)排序階段:長度為 Lmax 之 DNA 序列依固 定長度由頭至尾依序取 m 個鹼基進行區段編 碼後,將產生 Lmax − m + 1 個數值,在此採取由 小至大之快速搜尋排序法進行編碼數值排序 [19][24],採用快速排序演算法(Quick Sort)所 花費之時間複雜度為 O ( n log n) ,其中 n = Lmax − m + 1 。. (三)搜尋階段:階梯式步進式比對演算法和階 梯式區間跳躍比對演算法皆建議採用兩兩序 列的漸進比較法則,在任一個比對過程中都是 由 兩 組序 列經 編 碼及 排序 後 之集 合進 行 比 對,且兩集合的比對過程如同下階梯一般,前 者不需要經由區間切割之過程,可將每一個經 編碼之數值視為一區間,其搜尋比對採一次單 階步進之方式,後者則是經過進一步的區間切 割,可一次單階或多階的躍進,這兩種演算法 比較說明將於下列章節描述。階梯式步進演算 法排序階段後的搜尋比對,是不再進行任何特 定區間分割,因此在任意 i, j 兩序列的比對過 程中就像是在階梯中行進一般,每一個經排序 之編碼數值如同一個階梯,一階一階地往下比 對,故只須選取兩序列從頭至尾比對一次即可 將相同字串全數找出,所花費之搜尋比對時間 複雜度為 O(Li + L j ),1 ≤ i, j ≤ N 且 i ≠ j , Li 與. L j 分別為序列 i 與 j 之長度值。在開始的比對 階段,本演算法可任意挑選出兩序列進行比 對,若以尋找長度 m 的共同子序列,在比對這 兩組經編碼之數值集合之後,相同的數值將形 成一個新的序列集合,以ψ~mi, j ,該集合中的數 值經解碼後的內容即為這兩條比對序列所共 同存在的字串,亦即ψ mi, j 表示,若是 m > 1,則. ψ mi, j 集合中的數量必然小於較短的 DNA 序列 長 度 , | ψ i , j |≤ min( Li , L j ) , 1 ≤ i, j ≤ N 且. i ≠ j ,接下來的搜尋比對即以此新的編碼數 值集合ψ~ i, j 與另一編碼過的數值序列ψ~ k 繼續 m. m. 進行相同的比對,由於愈往後面的比對階梯數 減少,相等數值的機率也愈來愈少,亦即共同 字串的可能性降低,因此愈後面搜尋比對的時 間複雜度一定具備逐漸下降的趨勢,。在多重 DNA 家族序列集合中,搜尋比對之最佳與最 差的狀況分析分別如下所述,最佳狀況是在第 一次比對中,對搜尋某一樣本長度 m 之共同 子區段,在兩序列當中已無相同的編碼數值, 即 | ψ mi , j | = 0 , 故所 花 費之 時間 複 雜度 僅為 ,最差的情形在於每次比對後相同 O ( Li + L j ) 的編碼數值即為較短一條序列的所有編碼數 值 , 亦 即 | ψ mi , j |= min( Li , L j ) , 時 間 複 雜 度 為 O ( Li + L j + min( Li , L j ) + L k + min(min( L I , L J ),. L k ) + L m + ...) ,這種情形發生在每條序列都是. 其它序列的子區段, S i ⊂ S j ⊂ S k ,這種特 別的情形其時間複雜度可以趨近於 O( N × min(L1 , L2 , L3 ,...)),即使在最差的情況下 仍然低於傳統比對方式的時間複雜度。本演算 法除了可以快速找出所有指定序列所共同擁 有的字串外,並可以同時得到該共同字串之出 現次數與出現在序列中的位置,比對結果可迅 速提供生物學家進一步的迅速分析比較同一 家族序列之共同區段與特殊功能之因子。. (四)階梯式進步之改進方式:在上述搜尋階段 中所強調的是任意選擇兩個序列進行進步式 的比對,但為了進一步降低比對的時間複雜 度,提出更進階的改善方法,主要的精神在於 兩個 DNA 序列經由編碼後的數值比對過程 中,期望能群聚編碼數值範圍相近的數字,使 其具備區間跳躍的環境,快速地跳過比原本編 碼數值還要小的項目,直接比對與其相等或者 較大的數值區間,若是可以略過的數值區間愈 多,比對的速度就愈快,如同下階梯一般,比 對時可以一階一階行進,甚至有時可以一次跳 躍數個階梯,故稱之為階梯式區間跳躍法則。 本論文所提之階梯式區間跳躍法則主要分為 兩種區間切割法來定義階梯之實際範圍,第一 種稱為位元切割法,第二種稱為均勻分佈切割 法。位元切割法之優點在於能夠快速地計算出 編碼數值應屬於哪一個區間,該切割法是根據 比對樣本之長度(m)來進行區間切割,其公式 如下, (3). | I m |= log base 4 m. 其中 base 之值設定為 10,由公式(3)可以得知 分割區間個數為取 4 的倍數後,再取上限之整 數值,第一區間為單位元區間,以此類推為二 位元區間、三位元區間等,其中位元的相對意 義即為該數字的長度,例如,0~9 的數值為第 一區間、10~99 為第二區間,以此類推,因為 此位元切割法是在編碼階段即可完成,並不會 額外佔用其它計算之需求,接下來的搜尋比對 階段當中,仍然依照先前的比對規則,只是在 比對兩序列數值前根據區間跳躍規則 (Jump Rule,JR)進行比對,其 JR 規則如下之判斷式,. Case1: A I m1 ≠ B I m2 and A>B ÎB jump to. A. I. 2 m. Case2: A I m1 ≠ B I m2 and A<B Î A jump to. B. Case3: A I m1 = B I m2 and. I m1 A≠ B. ÎStep by Step in LSSA. (4).
(4) 果如圖(二 a)與(圖二 b)所示,切割後讓每一個 區間內的數值具體地分佈分散,以因此提昇了 區間跳躍之機率。 原始區間總數為. Case4: A I m1 = B I m2 and A=B ÎCheck if A and B repeat continuously 1. log. 4 m ,其中 base 之數值為 10 ,且採用 | I m _ original | 之符號代表。在未經均勻分佈切割. 2. in interval I m and I m. base. 其中 A I m1 表示第一個已編碼數值序列中數字 A. 時,演算法直接計算其切割基底,計算方式為. 所在之區間位置, B I m2 為第二個已編碼數值序. ,並以 sbase 表示。例如取樣本長 度為 5 的比對字串,原始區間之總數為. 列中數字 B 所在之區間位置,如果比對的兩個 數字不是位在同一區間,則停留在數字較小的 數值序列需要跳躍至較大數字所在之區間,接 著才繼續以 LSSA 進行比對的工作,若兩個比 對數字落在同一個區間內,則直接進行 LSSA 比對之程序,若是序列的子區段內容不同,則 編碼數值就不會相同,若是分配至不同的切割 區間內,很明顯地,跳躍規則將可用來進行區 間之跳躍,必能降低在搜尋比對階段之時間複 雜度。在執行位元區間分割法之後,經由理論 分析與統計實驗結果,各區間內的數值個數如 圖(一)所示,大部份的字串經編碼後其數值仍 分佈在分割區域中的最後兩個區間內,因此, 最主要的切割區應強調在最後的兩區間中,均 勻 分 佈切 割法 之 應用 也因 此 在本 論文 中 提 出。首先須了解切割區間之原則以及區間切割 的總數,才可以決定所有字串經編碼後數值的 分組方式。. 平均數字數量. 500 400. 樣本長度=5. 300. 樣本長度=10. 200. 樣本長度=15. 100. 樣本長度=20. 10. | I m _ original |−2. log. 4 5 =4 , sbase = 10 4 − 2 = 100 ,倒數第二 個 區 間 數 | I m _ L2 | = 9 , 最 後 一 個 區 間 數 10. |I. |−1. |I. |−2. | Im _ L1 |= (4m −10 m_ original ) (10 m_ original ),故得 總. 區. 間. 數. | I m _ total |=| I m _ G | + | I m _ L1 |. + | I m _ L2 | 。. 此均勻切割法亦是在編碼階段完成,所以 不會造成額外的時間複雜度,同樣地,亦能透 過公式 A sbase 的計算即可立刻求得該數值 A 所屬之區間位置,和位元分割法一樣在搜尋 比對階段中依照 JR 執行序列比對。若是相對 應較大數字所在區間並無任何元素存在,則指 標依序往下一區間跳躍,直至有元素存在的區 間才停止跳躍。無論是位元切割法或者是均勻 切割法之最終目的是為降低演算法之時間複 雜度,希望能夠避免演算法對每一筆數值資料 進行比對的缺點,進而提供以區間跳躍之方式 來加快搜尋比對速度,期望時間複雜度由原本 兩序列傳統比對之時間複雜度 O ( L i + L j ) 下降 至 O(| I i | + | I j |) 。. 0 1. 3. 5. 7. 9. 11 13. 區間個數. 圖(一):RNase 家族序列經位元分割後平均區 間數字數量分佈在最後兩區間的情形 圖(二 a) RNase 序列切割前分佈情況 本演算法對目前的切割區域分類為兩種 情 形 , 第 一 種 類 別 為 一 般 切 割 區 (General Segmentation Region) 及第二種類別為均勻分 佈 切 割 區 (Uniform Distributed Segmentation Region)。一般切割區視為非集中區間,也就 是除了最後兩區間以外之集合,以 I m _ G 表示 樣本長度為 m 之非集中區間,因為數量所佔 比例低,所以不再進行任何區間切割,一般切 割區之區間總數為 | I m _ G |= 1。均勻分佈切割區 存在大部份的編碼數值,演算法對此集中之區 間進行切割時,首先必須先了解區間與區間之 間隔,可採用統計直方等化法進行分析,其結. 圖(二 b)RNase 序列經均勻切割後分佈情況.
(5) 圖(三):RNase 家族序列經位元切割、均勻切割與未經切割時之平均變異度比較圖,其中欲比對之 樣本長度為 5~20 個鹼基 並無太大的變動,無論樣本長度大小為何,透 四、結果與討論 過均勻切割法後均保持週期性的脈動,故有可 在上述章節中所討論之階梯式共同子序 能當樣本長度繼續增長的情形下,均勻切割法 列搜尋演算法中,進步式比對演算法 LSSA 經 會比位元切割法保持較大之變異度,搜尋比對 由表 (二 ) 中與 BF-A( 傳統字串比對演算法 ) 、 速度也會有較佳的表現。所以本演算法建議樣 KR-A(Karp-Rabin 演算法)比較過後,得知 LS 本長度較小時使用位元切割法,反之,當樣本 SA 演算法有較快的搜尋比對速度,由 LSSA 長度較長時使用均勻切割法。 中可看出編碼階段、排序階段、搜尋階段之時 五、參考文獻 間複雜度分別為 O(( Lmax − m) 2 × N ) 、 O ( N × ( L max [1]Lincoln Stein,2001,Genome annotation : from − m) log(Lmax − m))、 O( N × ( Lmax − m)) ,未經區間 sequence to biology Nature reviews genetics, 切割部份與 KR-A 之時間複雜度相對比值為 2:493 – 503 O(log(Lmax − m) / Lmax ),又 KR-A 與傳統演算法 [2] Jacek Majewski and Jurg Ott, 2002, Distribution and characterization of regulatory elements 時間複雜度比值為 O(( Lmax − m) ( Lmax m)) ,故 in the human genome, Genome research, 可得知未經區間切割之演算法所花費之時間 12:1827~1836 複雜度比傳統演算法和 KR-A 更低,最後透過 [3] Len A. Pennacchio and Edward M. Rubin, 區 間 切 割 法 達 到 期 望 時 間 複 雜 度 2001, Genomic strategies to identify mammalian O(| I i | + | I j |),1 ≤ i ≤ j ≤ N 且 i ≠ j ,但是位元 regulatory sequences, Nature reviews genetics, Vol. 2, 100~109 切割法和均勻切割法之期望時間複雜度均為 [4] http://www.genome.ad.jp/ , Aug. 14 2003 相同( O | I i | + | I j | ),為了更詳細的比較兩種 [5] http://www-btls.jst.go.jp , Aug. 14 2003 區間切割方法的比對速度,本論文提出在編碼 [6] Yutaka Suzuki, Tatsuhiko Tsunoda, Jun Sese, 數值序列進行分段後,對每一區間所存在之編 Hirotoshi Taira et.al.,2001, Identification and 碼資料數量計算其平均變異度,期望經編碼之 characterization of the potential promoter re資料可以透過適當之區間分組,使所有序列在 gions of 1031 kinds of human genes, Genome research,11:677–684 各區間之平均變異度能夠差距越大越好,亦即 [7] Gabriela G. Loots, Ivan Ovcharenko, Lior 將比對序列在同一個區間之數量差異性提高 Pachter, Inna Dubchak, and Edward M. Rubin, 時,可以使階梯式比對法則進行快速跳躍的機 2002, rVista for comparative sequence-based 率增高,所以序列之間每一區間的平均變異度 discovery of functional transcription factor 相差越大,就越有可能降低演算法之時間複雜 binding sites, Genome research, 12:832–839 度,平均變異度之比較可以由圖(三)所示,無 [8]Ramana V. Davuluri, Ivo Grosse, Michael Q. 論是位元切割法或者是均勻切割法均比原先 Zhang ,2001, Computational identification of 未經區間切割時之變異度還要高,故可得知經 promoters and first exons in the human genome, Nature Genetics, 29: 412 - 417 區間切割後再進行搜尋比對時,能進一步提昇 [9]Nathan D. Trinklein, Shelley J. Force Aldred, 演算法之整體表現。 Alok J. Saldanha,and Richard M. Myers, 2003, 經位元切割法後之序列平均變異度有隨 Identification and functional analysis of human 著樣本長度上升而下降之趨勢,原因為隨著樣 transcriptional promoters, Genome research, 本長度的增加,經編碼過後的數值越大,而且 13:308~312 大部份的數值會落在最後幾個區間當中,造成 [10]Jacek Majewski and Jurg Ott, 2002, Distri序列在同一區間的變異度下降。經均勻切割法 bution and characterization of regulatory elements in the human genome, Genome research, 後,序列平均變異度亦隨樣本長度上升而下 12:1827~1836 降,由於切割之區間範圍較小,隨著樣本長度 [11]Yitzhak Pilpel, Priya Sudarsanam, George M. 增長編碼數值變大,落在區間中經編碼的數量 Church, 2001, Identifying regulatory networks 則不會突然遞增或減少,所以變異度的差異性. (. ).
(6) by combinatorial analysis of promoter elements, Nature Genetics 29:153~159 [12]Buhler,J.,2001,Effective large-scale sequence comparison by locality-sensitive hashing.Bioinformatics, 17 ,419-428. [13]Ning Z,Cox AJ, Mullikin JC., October 2001,vol. 11,SSAHA:a fast search method for large DNA databases, Genome Research,11,1725-1729. [14]Natalia Volfovsky,Brian J Haas and Steven L Salberg, 2001,A clustering method for repeat analysis in DNA sequences,Genome Biology. [15]Pierre Baldi and Pierre-François Baisnée, 2000, Sequence analysis by additive scales:DNA structure for sequences and repeats of all lengths, Bioinformatics, 16, 865-889. [16]KARP R.M., RABIN M.O., 1987, Efficient randomized pattern-matching algorithms. IBM J. Res. Dev. 31(2):249-260. [17]CROCHEMORE, M., LECROQ, T., 1996, Pattern matching and text compression algorithms, in CRC Computer Science and Engineering Handbook, A. Tucker ed., Chapter 8, pp 162-202, CRC Press Inc., Boca Raton, FL. [18]KNUTH D.E., MORRIS (Jr) J.H., PRATT. V.R., 1977, Fast pattern matching in strings, SIAM Journal on Computing 6(1):323-350. [19]Knuth,D.E., 1998, vol. 3 of The Art of Computer Programming, 2nd edn, Addison Wesley. [20]BOYER R.S., MOORE J.S., 1977, A fast string searching algorithm. Communications of the ACM. 20:762-772. [21]COLE, R., 1994, Tight bounds on the complexity of the Boyer-Moore pattern matching algorithm, SIAM Journal on Computing 23(5):1075-1091. [22]SUNDAY D.M., 1990, A very fast substring search algorithm, Communications of the ACM . 33(8):132-142. [23]Ricardo Baeza-Yates, Gaston H. Gonnet, October 1992, vol. 35,A new approach to text searching, Communications of the ACM, 10, 74-82. [24]Hoare, C. A. R. (1962), Quicksort, The Computer Journal 5, 10-15.. 表(二):BF-A、KR-A、LSSA 與 IJSA(未經區間切割、經位元區間切割和經均勻區間切割)時間複雜度比 較表 時間複雜度 BF-A O(( Lmax − m) × Lmax × m × N ) 編碼階段 KR-A. LSSA. LIJSA. 備 註. O (( Lmax − m) × N ). 排序階段 -. O (( Lmax − m ) 2 × N ). O (( Lmax − m) 2 × N ). O ( N × ( Lmax − m) log( Lmax − m)). O ( N × ( Lmax − m)). O (( Lmax − m) 2 × N ). O( N × ( Lmax − m) log( Lmax − m)). O (( Lmax − m) 2 × N ). O ( N × ( Lmax − m) log( Lmax − m)). 2. 未 經 區 間 切 割 位 元 區 間 切 割 法 均 勻 切 割 法. 搜尋階段. O ( N × ( Lmax − m)) O ( N × ( L max − m) / | I max |). O( N × ( Lmax − m)) O ( N × ( L max − m ) / | I max |). m :樣本長度、 N :序列個數、 Lmax :序列集合中擁有最大長度之序列的長度、 | I m _ max | : 序列集合中擁有最大長度之序列的區間切割數量.
(7)
相關文件
• 一個簡單有效的 Hash function,又稱 RK 算法 (Rabin- Karp Algorithm/ Rabin fingerprint ).
錯排數
自己設計 random function 自己設計 random function... 自己設計 random function 自己設計
自己設計 random function.. 自己設計
自己設計 random function.. 自己設計
母體分配 樣本平均數 的抽樣分配 抽樣誤差與 非抽樣誤差 樣本平均數 的平均數與. 變異數
樣本重抽法 (resampling method) 則是一個與實際抽樣分配或是 大樣本漸近分配完全迥異的做法 , 其統計推論的基礎 , 來自 「原有樣
西元 1998 年,G oogle 的創辦人之一賴利佩吉發表了網 頁排序的演算法,涵蓋 G oogle