單元102 - 106可各包括多個(gè)組件。更特定的,處理單元1102可以包括輸入 組件118、成本求值組件120和更新組件122。輸入組件118、成本求值組件120和更新組 件122可由處理單元1102執(zhí)行。類似地,處理單元2104可以包括輸入組件124、成本求值 組件126和更新組件128,…,且處理單元X 106可以包括輸入組件130、成本求值組件132 和更新組件134。應(yīng)當(dāng)理解,輸入組件(例如,輸入組件118、輸入組件124、…和輸入組件 130)可以基本上相似,成本求值組件(例如,成本求值組件120、成本求值組件126、…和成 本求值組件132)可以基本上相似,更新組件(例如,更新組件122、更新組件128、…和更 新組件134)可以基本上相似。
[0030] 以下示例描述了處理單元1102和處理單元2104。然而應(yīng)當(dāng)理解,這種示例可以擴(kuò) 展到其余處理單元102 - 106。處理單元1102的輸入組件118可以獲得查詢序列114以便 與數(shù)據(jù)庫序列112對齊。查詢序列114可以類似地由處理單元2104的輸入組件124獲得。
[0031] 如上所述,數(shù)據(jù)序列112可以被至少分段成第一帶和第二帶。例如,處理單元 1102的輸入組件118可以獲得數(shù)據(jù)庫序列112的第一帶。成本求值組件120可以利用 處理單元1102,以基于成本函數(shù)116為數(shù)據(jù)庫序列112的第一帶跨查詢序列114計(jì)算 Smith-Waterman值,該成本函數(shù)116對序列間的生物相似性建模。進(jìn)一步根據(jù)該示例,處理 單元2104的輸入組件124可以獲得數(shù)據(jù)庫序列112的第二帶。處理單元2104的成本求值 組件120可以為數(shù)據(jù)庫序列112的第二帶跨查詢序列114計(jì)算Smith-Waterman值。對第 一帶和第二帶(以及由其余處理單元102 - 106求值的數(shù)據(jù)庫序列112的任何其他(諸) 帶)的Smith-Waterman值的這種計(jì)算可以并行執(zhí)行(例如,同時(shí))。
[0032] 而且,更新組件122可以確定數(shù)據(jù)庫序列112的第二帶跨查詢序列114的 Smith-Waterman值的子集要用于重新計(jì)算。這種確定可以基于查詢序列長度Q和成本函數(shù) 116。例如,更新組件122可以基于查詢序列長度Q、間隔起始懲罰G s、間隔擴(kuò)展懲罰t以及 成本矩陣中的條目上界Mmax,來確定要被重新計(jì)算的Smith-Waterman值的該子集。
[0033] 此外,更新組件122可以使成本求值組件120為數(shù)據(jù)庫序列112的第二帶跨查詢 序列114重新計(jì)算Smith-Waterman值的該子集。因此,處理單元1102的輸入組件118可以 獲得數(shù)據(jù)庫序列112的第二帶(或其一部分)。Smith-Waterman值的該子集可以利用第一 處理單元1102來重新計(jì)算。數(shù)據(jù)庫序列112的第二帶的跨查詢序列114的Smith-Waterman 值的該子集的這種重新計(jì)算可以在以下步驟之后進(jìn)行:為數(shù)據(jù)庫序列112的第一帶跨查 詢序列114計(jì)算Smith-Waterman值(例如,由于Smith-Waterman算法的成本表108中 的Smith-Waterman值之間的依賴性)。因此,數(shù)據(jù)庫序列112的第二帶跨查詢序列114的 Smith-Waterman值的該子集的這種重新計(jì)算可以基于由處理單元1102所計(jì)算的數(shù)據(jù)庫序 列112的第一帶跨查詢序列114的Smith-Waterman值。
[0034] 作為另一示例,構(gòu)想處理單元2104的更新組件128可以替代地確定數(shù)據(jù)庫序列 112的第二帶跨查詢序列114的Smith-Waterman值的該子集要用于重新計(jì)算。根據(jù)該示例, 處理單元2104的更新組件128可以使成本求值組件126利用處理單元2104為數(shù)據(jù)庫序列 112的第二帶跨查詢序列114重新計(jì)算Smith-Waterman值的該子集。這種重新計(jì)算可以基 于由處理單元1102所計(jì)算的數(shù)據(jù)庫序列112的第一帶跨查詢序列114的Smith-Waterman 值(例如,由輸入組件124自成本表獲得、等等)。
[0035] 根據(jù)一示例,處理單元102 - 106可以是不同的處理器。沿襲該示例,處理單元 1102和處理單元2104可以是不同的處理器。根據(jù)另一示例,處理單元102 - 106可以是一 多核處理器的不同內(nèi)核。因此,處理單元1102和處理單元2104可以是這種多核處理器的不 同內(nèi)核。根據(jù)又一示例,處理器102 - 106可以是圖形處理單元(GPU)的不同內(nèi)核;因此, 處理單元1102和處理單元2104可以是GPU的不同內(nèi)核。作為又一示例,處理單元102 - 106可包括在不同的計(jì)算設(shè)備(例如,群集內(nèi)的不同計(jì)算設(shè)備,等等)內(nèi)。沿襲該示例,處理 單元1102和處理單元2104可以包括在不同的計(jì)算設(shè)備中。此外構(gòu)想,系統(tǒng)100可以采用 以上示例的組合。
[0036] 現(xiàn)在轉(zhuǎn)至圖2,圖示系統(tǒng)100所生成的成本表108。成本表108具有D+1個(gè)列(例 如,自0至D)和Q+1個(gè)行(例如,自0至Q)。圖1的處理單元102 - 106可以為成本表108 的單元計(jì)算Smith-Waterman值。根據(jù)一示例,成本表108可以通過采用以下用偽代碼描述 的遞歸函數(shù)來生成。
[0037] 同樣,數(shù)據(jù)庫序列被分段成多個(gè)帶。在圖2(及類似的圖3 - 4)的所示示例中,示 出帶n、帶n+1和帶n+2。然而應(yīng)當(dāng)理解,數(shù)據(jù)庫序列可以被分段成實(shí)質(zhì)上任何數(shù)量的帶,并 且所要求保護(hù)的主題不限于圖示示例。
[0038] 根據(jù)一示例,第一處理單元(例如,圖1的處理單元1102)可以為成本表108的第 一部分200中的單元計(jì)算Smith-Waterman值,第二處理單元(例如,圖1的處理單元2104) 可以為成本表108的第二部分202中的單元計(jì)算Smith-Waterman值,第三處理單元(例如, 圖1的處理單元X 106)可以為成本表108的第三部分204中的單元計(jì)算Smith-Waterman 值。成本表108的第一部分200對應(yīng)于跨該查詢序列的帶n,成本表108的第一部分202對 應(yīng)于跨該查詢序列的帶n+1,成本表108的第三部分204對應(yīng)于跨該查詢序列的帶n+2。
[0039] 第一處理單元可以為成本表108的第一部分200的第一行和第一列初始化 Smith-Waterman值?;诔跏蓟闹?,第一處理單元可以為成本表108的第一部分200中 的其余單元計(jì)算Smith-Waterman值。類似地,第二處理單元可以為成本表108的第二部分 202的第一行和第一列初始化Smith-Waterman值,第三處理單元可以為成本表108的第三 部分204的第一行和第一列初始化Smith-Waterman值。同樣地,基于初始化的值,第二處 理單元和第三處理單元可以為成本表108的第二部分202和第三部分204中的相應(yīng)的其余 單元計(jì)算Smith-Waterman值。由于Smith-Waterman算法的遞歸關(guān)系,因此初始化的值可 以影響隨后計(jì)算的Smith-Waterman值的子集。
[0040] 圖3 - 4圖示成本表108 (如圖2所示)的各個(gè)示例性重疊區(qū)域,所述重疊區(qū)域包 括重新計(jì)算的Smith-Waterman值的子集。然而應(yīng)當(dāng)理解,其他重疊區(qū)域意圖落在所附權(quán)利 要求的范圍內(nèi)。
[0041] 參照圖3,圖示成本表108的重疊區(qū)域的示例性繪圖。如圖所示,重疊區(qū) 域300被包括在成本表108的第二部分202內(nèi),而重疊區(qū)域302被包括在成本表108 的第三部分304內(nèi)。圖3所示的示例對應(yīng)于以下提出的并行Smith-Waterman算法 (Paral IeISmithWaterman)的偽隨機(jī)碼。
[0042] 重疊區(qū)域300和重疊區(qū)域302中包括的Smith-Waterman值被重新計(jì)算。因此,重 疊區(qū)域300中包括的Smith-Waterman值(例如,帶n+1跨該查詢序列的Smith-Waterman 值的子集)可以基于來自成本表108的第一部分200的Smith-Waterman值被重新計(jì)算,而 重疊區(qū)域302中包括的Smith-Waterman值(例如,帶n+2跨該查詢序列的Smith-Waterman 值的子集)可以基于來自成本表108的第二部分202的Smith-Waterman值被重新計(jì)算。
[0043] 轉(zhuǎn)至圖4,圖示成本表108的重疊區(qū)域的另一示例性圖示。如圖所示,重疊區(qū)域400 被包括在成本表108的第一部分200內(nèi),而重疊區(qū)域402被包括在成本表108的第二部分 202 內(nèi)。
[0044] 重疊區(qū)域400和重疊區(qū)域402中包括的Smith-Waterman值被重新計(jì)算。因此,重 疊區(qū)域400中包括的Smith-Waterman值(例如,帶η跨該查詢序列的Smith-Waterman值 的子集)可以基于來自成本表108的第二部分202的Smith-Waterman值被重新計(jì)算,重疊 區(qū)域402中包括的Smith-Waterman值(例如,帶n+1跨該查詢序列的Smith-Waterman值 的子集)可以基于來自成本表108的第三部分204的Smith-Waterman值被重新計(jì)算。
[0045] 再次參照圖1,此處所述的Smith-Waterman算法可以執(zhí)行局部序列對齊。因此, Smith-Waterman算法可以嘗試查找具有相似性或子序列同族關(guān)系的多個(gè)局部區(qū)域,在數(shù)據(jù) 庫序列112和查詢序列114之間對齊高度保守的區(qū)域。由于這種局部對齊不需要跨串的整 個(gè)長度延伸,因此局部對齊可以在數(shù)據(jù)庫序列112和查詢序列114的實(shí)質(zhì)上任何位置開始 和結(jié)束。Smith-Waterman算法是對兩個(gè)符號串進(jìn)行局部序列對齊的動(dòng)態(tài)編程算法,所述兩 個(gè)符號串即數(shù)據(jù)庫序列112和查詢序列114。數(shù)據(jù)庫序列112的長度為D,查詢序列114的 長度為Q。
[0046] 可以結(jié)合Smith-Waterman算法使用一種動(dòng)態(tài)編程方法,該動(dòng)態(tài)編程方法使用表 格或矩陣來保存值并且減少再計(jì)算。這可以在各不同的Smith-Waterman值之間產(chǎn)生數(shù)據(jù) 依賴性。例如,成本表108的條目(i, j)的Smith-Waterman值可以基于成本表108的條目 (i-1, j-1)、(i, j-Ι)和(i-1, j)的在先計(jì)算來計(jì)算。以下進(jìn)一步詳細(xì)描述了多個(gè)計(jì)算之間 的遞歸關(guān)系。
[0047] Smith-Waterman算法允許數(shù)據(jù)庫序列112和查詢序