雙向多步De Bruijn圖的突出端識別與去除方法
【專利摘要】本發(fā)明公開一種雙向多步De?Bruijn圖的突出端識別與去除方法,包括步驟,S1、讀取測序數(shù)據(jù)源文件,并構(gòu)造雙向多步De?Bruijn圖;S2、設(shè)定所述雙向多步De?Bruijn圖中的每個頂點u的數(shù)據(jù)結(jié)構(gòu),對所述雙向多步De?Bruijn圖突出端雙向邊的識別;S3、對所述雙向多步De?Bruijn圖突出端雙向邊的去除。本發(fā)明基于相關(guān)節(jié)點的結(jié)構(gòu)信息以及邊的相對豐度來判別該突出端是否可以被刪除,本發(fā)明方法的判別方式比以前的方法更精細,考慮的De?Bruijn圖中的信息更多;可以有效的刪除突出端雙向邊,從而可以一定程度上提高contigs的長度,同步提高contig的質(zhì)量。
【專利說明】雙向多步De Bruijn圖的突出端識別與去除方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基因測序領(lǐng)域,具體涉及雙向多步De Bruijn圖的突出端識別與去除方法。
【背景技術(shù)】
[0002]基因序列分析以算法與數(shù)學(xué)模型為核心,包括:基因數(shù)據(jù)的存儲與獲取、序列比對、測序與拼接、基因預(yù)測、生物進化與系統(tǒng)發(fā)育分析、蛋白質(zhì)結(jié)構(gòu)預(yù)測、RNA結(jié)構(gòu)預(yù)測、分子設(shè)計與藥物設(shè)計、代謝網(wǎng)絡(luò)分析、基因芯片、DNA計算等。生物技術(shù)和計算機信息處理技術(shù)的緊密結(jié)合,加快了處理生物信息數(shù)據(jù)的速度,使得在盡短的時間內(nèi)對生物學(xué)做出準(zhǔn)確的詮釋,加快生物信息學(xué)的發(fā)展。
[0003]基因序列分析是對海量基因序列數(shù)據(jù)進行分析,從而提取和挖據(jù)新的生物信息知識。涉及到計算機技術(shù)中的機器學(xué)習(xí)、模式識別、書籍分析與挖掘、組合數(shù)學(xué)、隨機模型、字符串、圖形算法、分布式計算、高性能計算、并行計算等。
[0004]基因是人類最基本的遺傳密碼,代表著每個人的生命信息?;蛐蛄猩洗嬖谥z傳位點的細微差異,這些遺傳密碼的多態(tài)性與人類的健康、致病機理、醫(yī)學(xué)治療有著相當(dāng)密切的關(guān)系。
[0005]自1977年Sanger測序技術(shù)問世以來,經(jīng)過三十多年的發(fā)展,DNA測序技術(shù)發(fā)展突飛猛進,以高通量、短序列為特點的第二代測序技術(shù)逐漸占領(lǐng)市場,以單分子測序為特點的第三代測序技術(shù)也逐漸出現(xiàn),分別在測序特點上占有不同的優(yōu)勢。傳統(tǒng)的基因測序方法的數(shù)據(jù)提取和分析軟件經(jīng)過近10年來的研究與開發(fā),目前已經(jīng)較為完善。但是,測序技術(shù)的發(fā)展,帶來了測序數(shù)據(jù)的變化,使得當(dāng)前存在的數(shù)據(jù)處理軟件不能滿足當(dāng)前生物醫(yī)學(xué)研究的需求。
[0006]新一代高通量測序方法在技術(shù)的應(yīng)用,可以在短時間內(nèi)完成整個基因組數(shù)據(jù)的測定。高通量測序方法的日新月異也同時對獲取的基因數(shù)據(jù)的分析處理方法提出了挑戰(zhàn)。目前,迫切需要開發(fā)能滿足高通量測序技術(shù)的海量數(shù)據(jù)處理的生物信息學(xué)平臺。面對個人基因組計劃及未來的個性化醫(yī)療前景,高效低成本的測序技術(shù)成為必然的趨勢。同時,簡化高效的一站式完備的生物信息學(xué)數(shù)據(jù)分析平臺等完備的測序解決方案,也是極為重要不可或缺的發(fā)展方向。
[0007]然而新一代的高通量測序方法雖然測序通量高,但是卻會引入測序誤差,同時測序樣本本身由于基因突變,測序不均勻而導(dǎo)致有SNP的出現(xiàn),而上述測序誤差,測序不均將會在基因組組裝時構(gòu)造的雙向多步De Bruijn圖中產(chǎn)生突出的突出端tip。如果這些突出端tip遍布于整個De Bruijn圖中,那么上述突出端就會阻礙圖的收縮,進而使得contig無法擴展,使得contig的長度和質(zhì)量都很低。
[0008]新一代的高通量測序方法產(chǎn)生的短基因片段的組裝導(dǎo)致大量的測序錯誤,加大了組裝算法的計算量。大量的測序錯誤,使得組裝錯誤率增加,嚴(yán)重影響了組裝結(jié)果。
[0009]目前組裝算法策略分為兩類,一是基于Overlap-Layout-Consensus (OLC)的算法,另一個是基于DeBruijn圖的算法。其中,基于OLC組裝算法開發(fā)的軟件,如SSAKE、VCAKE、SHARCGS等,在基因長序列組裝中更占有優(yōu)勢,但并不完全適用于新一代的短序列組裝。與OLC組裝算法不同,DeBruijn算法不再以read為單位組織數(shù)據(jù),而是以k_mers為單位進行數(shù)據(jù)組裝,其優(yōu)點主要有以下幾個方面:首先,以k-mers為單位進行序列組裝,不影響節(jié)點的質(zhì)量,減少了冗余數(shù)據(jù)量;其次,在圖中重復(fù)區(qū)域只出現(xiàn)一次,便于識別,可以避免錯誤的組裝,減小出錯率;最后,采取將有重疊區(qū)域映射到同一條弧上的策略,從而簡化了搜索路徑。目前,很多短序列組裝算法都使用這種框架,如Velvet、IDBA、SOAPdenovo,ABySS0
[0010]Velvet有效的利用De Brui jn圖,實現(xiàn)了高效的短序列組裝。Velvet以kner為基本單位構(gòu)建De Bruijn圖,利用圖的結(jié)構(gòu),結(jié)合相應(yīng)的序列特征,簡化圖的構(gòu)造,最終找到一條最優(yōu)路徑完成組裝過程。Velvet把焦點集中在錯誤的數(shù)據(jù)產(chǎn)生的三種結(jié)構(gòu)上,即tip、bubble、以及erroneous connection。依照長度原則和少數(shù)性原則,將長度小于2k的均去除;利用Tour Bus算法中的深度優(yōu)先搜索策略合并bubble,最后利用覆蓋度閾值法去除了 erroneous connection。該方法也充分利用了 paired-end雙端信息,進一步解決repeat問題,優(yōu)化了組裝效果。Velvet充分利用圖的結(jié)構(gòu)性質(zhì),簡化了數(shù)據(jù)冗余,速度較之前的算法有了很大的改進。雖然它沒有在預(yù)處理階段對序列進行糾錯,但是其對錯誤的預(yù)防機制,很大程度上的彌補了這方面的缺陷。這使得它更好的應(yīng)用在大型基因組序列的組裝中。
[0011]IDBA也是基于De Bruijn圖,實現(xiàn)簡便且高效的短序列組裝。IDBA以k-mer為基本單位,采用一個變化的k值域(Kmin-Kmax),代替使用固定的k值來得到k_mers的長度。由于基因組裝以k-mers為單位,通常會形成很多個重疊單元,使得組裝面臨著錯誤位置組裝、頂點缺失和覆蓋度低的問題。正確的選擇k值的大小成為組裝的一個關(guān)鍵因素。一些錯誤的reads的產(chǎn)生,也導(dǎo)致產(chǎn)生了大量的branching。K值越小,branching問題越嚴(yán)重,k值越大,則出現(xiàn)的reapt區(qū)域則變少,直接影響了組裝的質(zhì)量。IDBA采用不固定的k值進行組裝,很好的解決branching問題,提高了組裝的質(zhì)量。另外IDBA通過刪除低覆蓋率的錯誤k-mers而使得IDBA的內(nèi)存使用率明顯降低,同時也提升了 IDBA的處理速度。
[0012]SOAPdenovo能夠高效高質(zhì)量的完成數(shù)以億計的reads的組裝。SOAPdenovo繼承了OLC算法和De Bruijn圖算法的優(yōu)點,使得其組裝質(zhì)量大為提高。SOAP通過預(yù)置k-mer閾值的方法,采取過濾、糾錯的方式減少了錯誤序列的產(chǎn)生。同時,借鑒了 Velvet軟件的方法成功處理了 bubble,使得其平均覆蓋度增加。另外,SOAPdenovo利用了雙端信息進行進行重疊區(qū)域匹配,并合并read生成contig片段,生成基于contig的圖結(jié)構(gòu),從而,SOAPdenovo大大簡化了 contig圖的復(fù)雜性。
[0013]ABySS引進并行計算的思想,搭建一個Iinux集群,在集群上建立一個分布式的DeBruijn圖結(jié)構(gòu),將數(shù)據(jù)分布式存儲于每個節(jié)點上。其采用MPI通信機制完成節(jié)點之間的相互通信。從構(gòu)建圖、糾錯處理到后面的定點融合,最后完成整個基因組序列的再現(xiàn),其在運行時間和內(nèi)存消耗方面占有很大的優(yōu)勢,并且其錯誤率極低,在性能方面特別是cluster中單機內(nèi)存使用上均有很大的提升,正在得到越來越廣泛的應(yīng)用。
[0014]然而上述策略主要是依靠突出端的長度來判斷De Bruijn圖中一突出鏈?zhǔn)欠袷强梢詣h除的突出端,這樣一種單純的判別方式容易將圖中的突出端過度刪除,從而給contig帶來更多錯誤信息,同時多個contig過度擴展使得很可能錯配,同時由于雙向多步De Bruijn圖中有更多的信息未被使用,所以可以使用輔助信息判斷一個突出端是否可以刪除,同時避免將可能正確的信息刪除,或者引入錯誤的匹配信息。
【發(fā)明內(nèi)容】
[0015]本發(fā)明目的在于解決現(xiàn)有技術(shù)存在的問題,提供一種雙向多步De Bruijn圖的突出端識別與去除方法。
[0016]本發(fā)明的技術(shù)方案包括一種雙向多步De Bruijn圖的突出端識別與去除方法,包括步驟,
[0017]S1、讀取測序數(shù)據(jù)源文件,并構(gòu)造雙向多步De Bruijn圖;
[0018]S2、設(shè)定所述雙向多步De Bruijn圖中的每個頂點u的數(shù)據(jù)結(jié)構(gòu),對所述雙向多步De Bruijn圖突出端雙向邊的識別;
[0019]S3、對所述雙向多步De Bruijn圖突出端雙向邊的去除。
[0020]優(yōu)選地,所述De Bruijn圖構(gòu)造步驟為,
[0021]S11、讀取一個序列s;
[0022]S12、將序列s用滑動窗口切割為多個片段t,選取一片段t其標(biāo)志數(shù)為cur、并標(biāo)記其前、后的片段的標(biāo)志數(shù)分別為pre、Iat ;
[0023]S13、若t的編碼小于其互補片段編碼,則交換pre,Iat的值;
[0024]S14、在cur的正向位置映射表的相應(yīng)bit位置I來表示指向pre的邊;
[0025]S15、在cur的反向位置映射表的相應(yīng)bit位置I來表示指向Iat的邊;
[0026]S16、重復(fù)步驟S12-S15,處理序列s的其他片段t,直至完成序列s的全部片段t,執(zhí)行步驟S17 ;
[0027]S17、讀取一個新的序列S,重復(fù)步驟S12-S16 ;直至處理完所有的序列,執(zhí)行步驟S18 ;
[0028]S18、完成雙向多步de Bruijn圖的構(gòu)造。
[0029]優(yōu)選地,所述突出端雙向邊的識別包括
[0030]S21、遍歷所述雙向多步De Bruijn圖中的每個頂點u ;
[0031]S22、統(tǒng)計所述頂點u的邊數(shù);
[0032]S23、判斷所述頂點u是否只有一條邊,是則執(zhí)行步驟S24,否則執(zhí)行步驟S21 ;
[0033]S24、所述頂點u唯一邊的下標(biāo)為i,所述邊的目標(biāo)頂點為V ;所述目標(biāo)頂點為V指向所述頂點u的邊的下標(biāo)為j ;
[0034]S25、計算所述頂點u所有邊中豐度權(quán)重最大值,并記錄為weight.;
[0035]S26、如果所述頂點u的雙向邊長度〈kmer長度,且邊的權(quán)重小于weight的0.25倍,則所述雙向邊被標(biāo)記為突出端雙向邊,否則標(biāo)記為非突出端雙向邊。
[0036]優(yōu)選地,所述突出端雙向邊的去除包括,
[0037]S31、遍歷整個雙向多步De Brui jn圖,訪問所述De Brui jn圖中的每個頂點u,對所述頂點u的每一條邊執(zhí)行步驟S32 ;
[0038]S32、如果所述頂點u有邊被標(biāo)記為突出端雙向邊,則執(zhí)行步驟S33,否則執(zhí)行步驟S31,
[0039]S33、刪除所述突出端雙向邊。[0040]如果該邊不是頂點U的最后一條邊,遍歷頂點U中的每個邊;如果該頂點不是圖中最后一個頂點,遍歷De Bruijn圖中的頂點U。
[0041]本發(fā)明的有益效果包括:基于相關(guān)節(jié)點的結(jié)構(gòu)信息以及邊的相對豐度來判別該突出端是否可以被刪除,本發(fā)明方法的判別方式比以前的方法更精細,考慮的De Bruijn圖中的信息更多;可以有效的刪除突出端雙向邊,從而可以一定程度上提高contigs的長度,同步提高contig的質(zhì)量。
【專利附圖】
【附圖說明】
[0042]圖1為本發(fā)明一實施例的突出端雙向邊的識別流程圖。
[0043]圖2為本發(fā)明一實施例的突出端雙向邊的去除流程圖。
【具體實施方式】
[0044]下面結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細說明。
[0045]本發(fā)明實施例提供一種雙向多步De Bruijn圖的突出端識別與去除方法,包括步驟,
[0046]S1、讀取測序數(shù)據(jù)源文件,并構(gòu)造雙向多步De Bruijn圖;
[0047]S2、設(shè)定所述雙向多步De Bruijn圖中的每個頂點u的數(shù)據(jù)結(jié)構(gòu),對所述雙向多步De Bruijn圖突出端雙向邊的識別;
[0048]S3、對所述雙向多步De Bruijn圖突出端雙向邊的去除。
[0049]其中,通過如果一個頂點u只有一條雙向邊,同時雙向邊的長度小于kmer的長度,雙向邊的權(quán)重小于該邊指向的頂點V中所有邊的最大權(quán)重的0.25倍,那么該雙向邊就被標(biāo)記為關(guān)出纟而雙向邊,否則就不標(biāo)記。
[0050]系統(tǒng)倍數(shù)也可以為其他的可行系數(shù)值,不限于0.25。
[0051]本發(fā)明實施例基于相關(guān)節(jié)點的結(jié)構(gòu)信息以及邊的相對豐度來判別該突出端是否可以被刪除,本發(fā)明方法的判別方式比以前的方法更精細,考慮的De Bruijn圖中的信息更多;可以有效的刪除突出端雙向邊,從而可以一定程度上提高contigs的長度,同步提高contig的質(zhì)量。
[0052]優(yōu)選地,所述De Bruijn圖構(gòu)造步驟為,
[0053]S11、讀取一個序列s;
[0054]S12、將序列s用滑動窗口切割為多個片段t,選取一片段t其標(biāo)志數(shù)為cur、并標(biāo)記其前、后的片段的標(biāo)志數(shù)分別為pre、Iat ;
[0055]S13、若t的編碼小于其互補片段編碼,則交換pre,Iat的值;
[0056]S14、在cur的正向位置映射表的相應(yīng)bit位置I來表示指向pre的邊;
[0057]S15、在cur的反向位置映射表的相應(yīng)bit位置I來表示指向Iat的邊;
[0058]S16、重復(fù)步驟S12-S15,處理序列s的其他片段t,直至完成序列s的全部片段t,執(zhí)行步驟S17 ;
[0059]S17、讀取一個新的序列S,重復(fù)步驟S12-S16 ;直至處理完所有的序列,執(zhí)行步驟S18 ;
[0060]S18、完成雙向多步de Bruijn圖的構(gòu)造。[0061]如圖1所示,所述突出端雙向邊的識別包括
[0062]S21、遍歷所述雙向多步De Bruijn圖中的每個頂點u ;
[0063]S22、統(tǒng)計所述頂點u的邊數(shù);
[0064]S23、判斷所述頂點u是否只有一條邊,是則執(zhí)行步驟S24,否則執(zhí)行步驟S21 ;
[0065]S24、所述頂點u唯一邊的下標(biāo)為i,所述邊的目標(biāo)頂點為V ;所述目標(biāo)頂點為V指向所述頂點u的邊的下標(biāo)為j ;
[0066]S25、計算所述頂點u所有邊中豐度權(quán)重最大值,并記錄為weight.;
[0067]S26、如果所述頂點u的雙向邊.arcs長度length〈kmer長度length,且邊的權(quán)重multiplicity小于weight的0.25倍,則所述雙向邊被標(biāo)記為突出端雙向邊,否則標(biāo)記為非突出端雙向邊。
[0068]如圖2所示,所述突出端雙向邊的去除包括,
[0069]S31、遍歷整個雙向多步De Brui jn圖,訪問所述De Brui jn圖中的每個頂點u,對所述頂點u的每一條邊執(zhí)行步驟S32 ;
[0070]S32、如果所述頂點u有邊被標(biāo)記為突出端雙向邊,則執(zhí)行步驟S33,否則執(zhí)行步驟
S31,
[0071]S33、刪除所述突出端雙向邊。
[0072]以上所述本發(fā)明的【具體實施方式】,并不構(gòu)成對本發(fā)明保護范圍的限定。任何根據(jù)本發(fā)明的技術(shù)構(gòu)思所作出的各種其他相應(yīng)的改變與變形,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍內(nèi)。
【權(quán)利要求】
1.一種雙向多步De Bruijn圖的突出端識別與去除方法,其特征在于,包括步驟, 51、讀取測序數(shù)據(jù)源文件,并構(gòu)造雙向多步DeBruijn圖; 52、設(shè)定所述雙向多步DeBruijn圖中的每個頂點u的數(shù)據(jù)結(jié)構(gòu),對所述雙向多步DeBruijn圖突出端雙向邊的識別; 53、對所述雙向多步DeBruijn圖突出端雙向邊的去除。
2.如權(quán)利要求1所述的突出端識別與去除方法,其特征在于,所述DeBruijn圖構(gòu)造步驟為, S11、讀取一個序列s ; S12、將序列s用滑動窗口切割為多個片段t,選取一片段t其標(biāo)志數(shù)為cur、并標(biāo)記其前、后的片段的標(biāo)志數(shù)分別為pre、Iat ; S13、若t的編碼小于其互補片段編碼,則交換pre,Iat的值; S14、在cur的正向位置映射表的相應(yīng)bit位置I來表示指向pre的邊; S15、在cur的反向位置映射表的相應(yīng)bit位置I來表示指向Iat的邊; S16、重復(fù)步驟S12-S15,處理序列s的其他片段t,直至完成序列s的全部片段t,執(zhí)行步驟S17 ;S17、讀取一個新的序列S,重復(fù)步驟S12-S16;直至處理完所有的序列,執(zhí)行步驟S18 ; S18、完成雙向多步deBruijn圖的構(gòu)造。
3.如權(quán)利要求1所述的突出端識別與去除方法,其特征在于,所述突出端雙向邊的識別包括 S21、遍歷所述雙向多步DeBruijn圖中的每個頂點u ; S22、統(tǒng)計所述頂點u的邊數(shù); S23、判斷所述頂點u是否只有一條邊,是則執(zhí)行步驟S24,否則執(zhí)行步驟S21; S24、所述頂點u唯一邊的下標(biāo)為i,所述邊的目標(biāo)頂點為V;所述目標(biāo)頂點為V指向所述頂點u的邊的下標(biāo)為j ; S25、計算所述頂點u所有邊中豐度權(quán)重最大值,并記錄為weight.; S26、如果所述頂點u的雙向邊長度〈kmer長度,且邊的權(quán)重小于weight的0.25倍,則所述雙向邊被標(biāo)記為關(guān)出纟而雙向邊,否則標(biāo)記為非關(guān)出纟而雙向邊。
4.如權(quán)利要求3所述的突出端識別與去除方法,其特征在于,所述突出端雙向邊的去除包括, S31、遍歷整個雙向多步DeBruijn圖,訪問所述De Brui jn圖中的每個頂點u,對所述頂點u的每一條邊執(zhí)行步驟S32 ; S32、如果所述頂點u有邊被標(biāo)記為突出端雙向邊,則執(zhí)行步驟S33,否則執(zhí)行步驟S31, S33、刪除所述突出端雙向邊。
【文檔編號】G06F19/10GK103699814SQ201310672168
【公開日】2014年4月2日 申請日期:2013年12月10日 優(yōu)先權(quán)日:2013年12月10日
【發(fā)明者】孟金濤, 張慧琳, 彭豐斌, 魏彥杰, 馮圣中 申請人:深圳先進技術(shù)研究院