一種參考基因組上基因序列片段的快速比對定位方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及基因測序數(shù)據(jù)的生物信息學(xué)分析技術(shù),具體涉及一種參考基因組上基 因序列片段的快速比對定位方法。
【背景技術(shù)】
[0002] 隨著基因測序技術(shù)的發(fā)展,測序價(jià)格呈指數(shù)下降,速度甚至超過摩爾定律。伴隨而 來的大量測序數(shù)據(jù)為快速準(zhǔn)確的計(jì)算分析提出了巨大挑戰(zhàn)。分析測序數(shù)據(jù)的第一步是序列 比對,即把序列片段比對定位到參考基因組上,往往需要消耗大量的計(jì)算資源與時(shí)間。比對 定位序列片段正成為一個(gè)加速數(shù)據(jù)分析流程的瓶頸。
[0003] 為了解決序列片段在參考基因組上的比對定位問題,人們已經(jīng)發(fā)展了很多算法并 開發(fā)了應(yīng)用廣泛的具體實(shí)現(xiàn),其中比較知名的有BWA,Bowtie,SOAP等軟件。現(xiàn)有的比對算 法和對軟件都是針對在參考基因組上尋找和定位序列片段的最佳比對位置而設(shè)計(jì)的。因?yàn)?在比對時(shí)考慮了位點(diǎn)突變的容錯(cuò)情況,往往序列片段上的突變越多,在參考基因組上的可 能比對上的位置越多,需要的計(jì)算量也越大。人類基因組上有大量組成唯一的序列片段。以 36個(gè)堿基(36bp)的片段為例,30億個(gè)堿基組成的基因組上至少有2/3的區(qū)域上的36bp的 片段是唯一的。目前的比對算法和軟件并不是針對這些唯一片段區(qū)域而設(shè)計(jì)的,它們解決 的是一個(gè)更普遍的序列比對和定位問題,因此其算法和實(shí)現(xiàn)方法針對某類具體問題都存在 優(yōu)化空間。而對于那些不關(guān)注突變分析,只關(guān)注唯一比對片段的測序流程來說,比對方法的 設(shè)計(jì)有很大的優(yōu)化空間,通過重新設(shè)計(jì),可以節(jié)省比對時(shí)間,進(jìn)一步提高效率。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問題:針對現(xiàn)有技術(shù)的上述問題,提供一種時(shí)間復(fù)雜度低、比 對定位速度快、定位效率高、應(yīng)用范圍廣、能夠適用于跨物種的混合快速分析的參考基因組 上基因序列片段的快速比對定位方法。
[0005] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0006] 一種參考基因組上基因序列片段的快速比對定位方法,步驟包括:
[0007] 1)從參考基因組上提取基因序列片段;
[0008] 2)針對參考基因組上的每一個(gè)基因序列片段,以基因序列片段作為key部分、基 因序列片段的目標(biāo)信息作為Value部分建立鍵值對,將基因序列片段采用哈希函數(shù)映射 確定數(shù)據(jù)庫中的目標(biāo)存儲(chǔ)位置,并將鍵值對寫入目標(biāo)存儲(chǔ)位置,最終完成參考基因組的建 庫;
[0009] 3)當(dāng)需要對待匹配基因序列片段進(jìn)行快速比對定位時(shí),首先將所述待匹配基因 序列片段采用哈希函數(shù)映射查找數(shù)據(jù)庫中的目標(biāo)存儲(chǔ)位置,如果查找成功,則從目標(biāo)存儲(chǔ) 位置讀取匹配基因序列片段對應(yīng)鍵值對的基因序列片段的目標(biāo)信息;否則返回查找失敗信 息。
[0010] 優(yōu)選地,所述步驟1)的詳細(xì)步驟包括:
[0011] 1. 1)設(shè)定基因序列片段的長度L;
[0012] 1. 2)計(jì)算參考基因組上唯一的基因序列片段的位置和目標(biāo)信息;
[0013] 1. 3)根據(jù)基因序列片段的位置分別提取基因序列片段及其目標(biāo)信息。
[0014] 優(yōu)選地,所述步驟1. 2)中唯一的基因序列片段具體是指任意兩個(gè)基因序列片段 之間的編輯距離大于等于設(shè)定的閾值η。
[0015] 優(yōu)選地,所述目標(biāo)信息包括染色體、染色體位置、GC含量、物種分類中的至少一種。
[0016] 優(yōu)選地,所述步驟2)的詳細(xì)步驟包括:
[0017] 2. 1)從提取得到的所有基因序列片段中取出一個(gè)基因序列片段作為當(dāng)前基因序 列片段;
[0018] 2. 2)以當(dāng)前基因序列片段作為key部分、當(dāng)前基因序列片段的目標(biāo)信息作為 Value部分建立鍵值對(Key,Value)以描述當(dāng)前基因序列片段及其目標(biāo)信息之間的映射關(guān) 系;
[0019] 2. 3)將當(dāng)前基因序列片段的鍵值對(Key,Value)中的Key部分和Value部分進(jìn)行 編碼,選用指定的哈希函數(shù)將當(dāng)前基因序列片段映射到d個(gè)數(shù)據(jù)庫中的數(shù)據(jù)庫i中;
[0020] 2. 4)將當(dāng)前基因序列片段采用哈希函數(shù)映射確定其在數(shù)據(jù)庫i中的目標(biāo)存儲(chǔ)位 置,并將編碼后的鍵值對(Key,Value)寫入數(shù)據(jù)庫i的目標(biāo)存儲(chǔ)位置;
[0021] 2. 5)判斷提取得到的所有基因序列片段是否已經(jīng)處理完畢,如果已經(jīng)處理完畢, 則跳轉(zhuǎn)執(zhí)行步驟2. 1);否則,判定已經(jīng)完成參考基因組的建庫。
[0022] 優(yōu)選地,所述步驟2. 3)中將當(dāng)前基因序列片段映射到d個(gè)數(shù)據(jù)庫中的數(shù)據(jù)庫i中 的詳細(xì)步驟包括:
[0023] 2. 3. 1)設(shè)定數(shù)據(jù)庫個(gè)數(shù)d;
[0024] 2. 3. 2)取當(dāng)前基因序列片段Key部分長度為m的前綴子串,選用指定的哈希函數(shù) 并采用如式(1)所示函數(shù)式計(jì)算當(dāng)前基因序列片段在d個(gè)數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)庫編號i,從 而將當(dāng)前基因序列片段映射到d個(gè)數(shù)據(jù)庫中的數(shù)據(jù)庫i中;
[0025] i=f(Key[1:m])%d(1)
[0026] 式⑴中,i為當(dāng)前基因序列片段在d個(gè)數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)庫編號,Key[1:ni]為當(dāng) 前基因序列片段Key部分長度為m的前綴子串,d為預(yù)先設(shè)定的數(shù)據(jù)庫個(gè)數(shù),f為指定的哈 希函數(shù)。
[0027] 優(yōu)選地,所述步驟3)的詳細(xì)步驟包括:
[0028] 3. 1)當(dāng)需要對待匹配基因序列片段進(jìn)行快速比對定位時(shí),首先計(jì)算待匹配基因序 列片段的反向互補(bǔ)序列,將待匹配基因序列片段及其反向互補(bǔ)序列分別進(jìn)行編碼,然后將 編碼后長度為m的前綴子串選用指定的哈希函數(shù)并采用式(1)所示函數(shù)式分別計(jì)算待匹配 基因序列片段及其反向互補(bǔ)序列在d個(gè)數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)庫編號i;
[0029] 3. 2)針對待匹配基因序列片段及其反向互補(bǔ)序列,分別在計(jì)算得到的數(shù)據(jù)庫編號 i對應(yīng)目標(biāo)數(shù)據(jù)庫中并行查找待匹配基因序列片段及其反向互補(bǔ)序列,如果待匹配基因序 列片段及其反向互補(bǔ)序列兩者中的任意一個(gè)在目標(biāo)數(shù)據(jù)庫中找到匹配記錄,則將匹配鍵值 對中的Value部分的目標(biāo)信息作為比對定位的結(jié)果返回;否則待匹配基因序列片段及其反 向互補(bǔ)序列兩者在目標(biāo)數(shù)據(jù)庫中均未找到匹配記錄,則返回查找失敗信息。
[0030] 優(yōu)選地,所述步驟3. 1)中計(jì)算待匹配基因序列片段的反向互補(bǔ)序列具體是指首 先將待匹配基因序列片段反轉(zhuǎn),然后分別將反轉(zhuǎn)后的基因序列片段中堿基A和堿基T互換、 堿基C和堿基G互換,得到待匹配基因序列片段的反向互補(bǔ)序列。
[0031] 優(yōu)選地,所述步驟2. 3)將當(dāng)前基因序列片段的鍵值對(Key,Value)中的Key部分 和Value部分進(jìn)行編碼具體是指:針對Key部分依次以00替換堿基A、以01替換堿基C、以 10替換堿基G、以11替換堿基T進(jìn)行編碼,針對Value部分采用可變長編碼;所述步驟3. 1) 將所述待匹配基因序列片段進(jìn)行編碼具體是指:依次以〇〇替換堿基A、以01替換堿基C、以 10替換堿基G、以11替換堿基T進(jìn)行編碼。
[0032] 優(yōu)選地,所述指定的哈希函數(shù)為MurmurHash函數(shù)。
[0033] 本發(fā)明參考基因組上基因序列片段的快速比對定位方法具有下述優(yōu)點(diǎn):
[0034] 1、本發(fā)明針對參考基因組上的每一個(gè)基因序列片段,以基因序列片段作為key部 分、