本發(fā)明涉及一種dna序列的壓縮系統(tǒng),具體是一種基于full-text索引結構與混合上下文預測模型的有參考dna序列壓縮方法和系統(tǒng)。
背景技術:
dna分子是由腺嘌呤(a)、鳥嘌呤(g)、胞嘧啶(c)、胸腺嘧啶(t)四種脫氧核糖核苷酸組成的。dna序列中蘊含著生命體重要的遺傳信息,對生物、醫(yī)學、信息等領域具有重要意義。隨著dna測序技術的發(fā)展,越來越多的dna數(shù)據(jù)被儲存被加以利用,dna序列的數(shù)量呈現(xiàn)指數(shù)增長。然而,數(shù)據(jù)儲存能力增長速度遠遠低于數(shù)據(jù)的增長量,數(shù)據(jù)儲存空間不足已成為科學發(fā)展過程中不容回避的現(xiàn)實挑戰(zhàn)。因此如何高效地儲存dna數(shù)據(jù)成為眾多研究人員關注的問題。dna序列之間具有很高的相似性,例如,大猩猩與人之間的dna相似率高達98%,這給數(shù)據(jù)儲存帶來了極高的冗余性,尋找一種高效的壓縮方法可以極大地減少所需的儲存空間。
為了準確提取出已壓縮信息,dna壓縮技術需要是無損并且可逆的壓縮。找到一種高效且適合于dna數(shù)據(jù)的壓縮方法是比較困難的。目前的壓縮方法主要分為兩種,一種是基于字典的壓縮,它把序列中未編碼的重復子序列用已編碼過的子序列來表示,或者將待壓縮序列用參考序列中的重復子序列表示。s.kuruppu等人在2010年的《internationalsymposiumonstringprocessingandinformationretrieval》發(fā)表的“relativelempel-zivcompressionofgenomesforlarge-scalestorageandretrieval”一文中即用上述原理利用索引序列壓縮目標序列。另一種是基于統(tǒng)計信息的壓縮,這種方法主要是通過預測符號出現(xiàn)概率,從而對其進行變長編碼,其本質是為出現(xiàn)頻率高的符號分配較短的碼字,而為出現(xiàn)頻率低的符號分配較長碼字,使得每個符號的碼長接近于其信息量。a.j.pinho等人在2012年的《nucleicacidsresearch》發(fā)表的“green:atoolforefficientcompressionofgenomeresequencingdata”一文中利用統(tǒng)計模型編碼目標序列與參考序列間的差異符號,從而達到了較高的壓縮率。但這種方法在搜索重復時給定了子序列的長度,因此不能充分利用dna序列間重復性這一特點。dna序列間的高冗余性以及目前壓縮算法的不足使申請人針對dna序列壓縮,找到一種更有效的壓縮方法。
技術實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術的不足,提供了一種基于壓縮的全文子序列索引(full-textindex)與混合上下文預測模型的有參考dna序列壓縮方法和系統(tǒng),結合基于字典壓縮與基于統(tǒng)計壓縮的優(yōu)勢,充分利用序列間冗余性,提高了dna序列壓縮率。
本發(fā)明是通過以下技術方案實現(xiàn)的:
根據(jù)本發(fā)明的第一目的,提供一種有參考dna序列壓縮方法,包括:
重復圖案的匹配步驟,利用輸入的參考序列生成反向的全文子序列索引結構,對輸入的待壓縮序列進行最長匹配子序列搜索,將匹配信息用于壓縮編碼步驟,并將未匹配的符號用于非重復符號的預測編碼步驟;
壓縮編碼步驟,將匹配序列的長度、位置信息進行壓縮編碼,并將編碼信息用于解壓縮;
非重復符號的預測編碼步驟,接收所述重復圖案的匹配步驟的未匹配的符號,利用混合上下文模型進行符號出現(xiàn)概率預測及編碼。
優(yōu)選地,所述有參考dna序列,是指不同基因組同一編號的dna序列。
優(yōu)選地,所述重復圖案的匹配步驟,通過對參考序列上重復子序列的查找與定位,高效表示待壓縮序列中的匹配子序列。
優(yōu)選地,所述重復圖案的匹配步驟,通過全文子序列索引結構對非固定長度字符串進行匹配搜索。
優(yōu)選地,所述壓縮編碼步驟,通過編碼匹配序列的標志位、長度、位置信息對匹配信息進行壓縮。
優(yōu)選地,所述的非重復符號的預測編碼步驟,通過連續(xù)上下文模型與非連續(xù)上下文模型的混合模型進行符號出現(xiàn)概率預測及編碼。
優(yōu)選地,所述方法進一步包括解壓縮步驟,所述解壓縮步驟利用同一參考序列,將壓縮編碼后的二進制文件恢復出解壓縮序列。
優(yōu)選地,所述解壓縮步驟,通過識別已壓縮二進制信息,對照同一參考序列,恢復出解壓縮序列,恢復出的解壓縮序列應與輸入待壓縮序列相同。
根據(jù)本發(fā)明的另一目的,提供一種有參考dna序列壓縮系統(tǒng),包括:
重復圖案的匹配模塊,利用輸入的參考序列生成反向的全文子序列索引結構,對輸入的待壓縮序列進行最長匹配子序列搜索,將匹配信息輸入到壓縮編碼模塊,并將未匹配的符號輸出到非重復符號的預測編碼模塊;
壓縮編碼模塊,將匹配序列的長度、位置信息進行壓縮編碼,并將編碼信息輸出到解壓縮模塊;
非重復符號的預測編碼模塊,接收所述重復圖案的匹配模塊輸出的未匹配的符號,利用混合上下文模型進行符號出現(xiàn)概率預測及編碼。
優(yōu)選地,所述系統(tǒng)進一步包括解壓縮模塊,所述解壓縮模塊利用同一參考序列,將壓縮編碼后的二進制文件恢復出解壓縮序列。
本發(fā)明中采用的基于全文子序列索引(full-text)結構與混合上下文預測模型的壓縮技術為有參考序列的dna序列壓縮提供了一種兩步壓縮框架。本發(fā)明第一階段的重復圖案匹配模塊所使用的full-text索引結構可以對非固定長度的待匹配序列進行快速查找與最大長度匹配,從而實現(xiàn)高效的序列壓縮。本發(fā)明充分結合索引數(shù)據(jù)結構高效查找和混合上下文模型對單個字符高效壓縮的特點,在可接受的壓縮耗時內(nèi),比其他有參考dna序列方法取得更高的壓縮率,具備良好的實用性。
與現(xiàn)有技術相比,本發(fā)明具有如下的有益效果:
本發(fā)明在有參考序列的情況下提供一種有效的基因壓縮,采用兩步壓縮框架,對未能達到匹配壓縮長度要求的部分進行符號預測編碼壓縮,提升了壓縮率,具備良好的實用性和擴展性。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為本發(fā)明一實施例中系統(tǒng)的結構框圖;
圖2為本發(fā)明一實施例方法中full-textindex算法搜索匹配序列示意圖。
具體實施方式
下面結合具體實施例對本發(fā)明進行詳細說明。以下實施例將有助于本領域的技術人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進。這些都屬于本發(fā)明的保護范圍。
如圖1所示,本發(fā)明所述有參考dna序列壓縮系統(tǒng)一優(yōu)選實施例的結構框圖,包括:重復圖案的匹配模塊、壓縮編碼模塊、非重復符號的預測編碼模塊及解壓縮模塊。其中:重復圖案的匹配模塊利用輸入的參考序列生成反向的full-text索引結構,對輸入的待壓縮序列進行最長匹配子序列搜索,將匹配信息輸入到壓縮編碼模塊,并將未匹配的符號輸出到非重復符號的預測編碼模塊;壓縮編碼模塊將匹配序列的長度、位置信息進行壓縮編碼,并將編碼信息輸出到解壓縮模塊;非重復符號的預測編碼模塊接收所述重復圖案的匹配模塊輸出的未匹配的符號,利用混合上下文模型進行符號出現(xiàn)概率預測及編碼。解壓縮模塊利用同一參考序列,將壓縮編碼后的二進制文件恢復出解壓縮序列。
當然,對應于上述的步驟,本發(fā)明實施例中對應的有參考dna序列壓縮方法,包括:
重復圖案的匹配步驟,利用輸入的參考序列生成反向的full-text索引結構,對輸入的待壓縮序列進行最長匹配子序列搜索,將匹配信息用于壓縮編碼步驟,并將未匹配的符號用于非重復符號的預測編碼步驟;
壓縮編碼步驟,將匹配序列的長度、位置信息進行壓縮編碼,并將編碼信息用于解壓縮;
非重復符號的預測編碼步驟,接收所述重復圖案的匹配步驟的未匹配的符號,利用混合上下文模型進行符號出現(xiàn)概率預測及編碼;
解壓縮步驟,利用同一參考序列,將壓縮編碼后的二進制文件恢復出解壓縮序列。
在本發(fā)明部分實施例中,所述的重復圖案編碼模塊或步驟中的全文子序列索引結構的具體實現(xiàn)如圖2所示。其中,生成全文子序列索引結構主要利用了burrows-wheeler變換,使得經(jīng)過變換后的序列更容易被壓縮。通過對參考序列建立反向的全文子序列索引結構,建立統(tǒng)計數(shù)組occ(s),c[s],從而通過sp=c[s]+occ(s,sp-1)+1,ep=c[s]+occ(s,ep)確定子串在索引中出現(xiàn)的位置范圍,其中,occ(s)表示s在同種符號中的出現(xiàn)順序,c[s]表示字典序小于s的符號總數(shù)。當下一符號不滿足sp≤ep這一條件時,匹配到最長重復子串。利用匹配子串的sp和ep確定其位置信息。
在本發(fā)明部分實施例中,所述的壓縮編碼模塊或步驟對輸出的匹配標志位、匹配序列的長度、位置信息進行壓縮編碼。對于匹配長度,由于事先設置了匹配長度的最小值,因此將所有待編碼匹配長度減去最小匹配長度進行壓縮,節(jié)省編碼位數(shù)。對于匹配位置,結合dna序列經(jīng)常在某一個或幾個位點發(fā)生突變的特性,將待編碼位置與預期出現(xiàn)位置做比較,若鄰近預期位置,則編碼相對差值,否則編碼其絕對位置。
本實施例中,所述的非重復符號的預測編碼模塊或步驟,接收所述重復圖案的匹配模塊輸出的未匹配的符號,利用混合上下文模型進行符號出現(xiàn)概率預測及編碼。分別根據(jù)連續(xù)上下文模型和非連續(xù)上下文模型構建概率加權樹,類似于連續(xù)上下文加權樹,對于每棵高度為d的非連續(xù)上下文加權樹,其內(nèi)部節(jié)點s的一對子節(jié)點記作0s和1s,已知這一對子節(jié)點的加權估計概率為
其中,節(jié)點s的長度記作ls,as,bs表示某階上下文中0和1分別出現(xiàn)的次數(shù),pe(as,bs)是節(jié)點s的加權概率,可通過如下公式計算:
且pe(0,0)=1。通過連續(xù)上下文模型和非連續(xù)上下文模型得出的獨立的預測結果分別在不同的條件下達到最優(yōu)。利用互補上下文模型可以根據(jù)所有上下文模型預測結果,得到最可能的整體預測概率,此時模型與訓練數(shù)據(jù)最大可能匹配?;パa上下文模型核心在于以下條件最大熵模型的求解:
其中t表示上下文模型對比特位y產(chǎn)生的預測概率,
其中,fi(t,y)是特征函數(shù),當y等于待預測的比特時返回ti,否則返回0。
最后利用牛頓-拉弗森迭代算法,求出估計概率p及權重wi。
利用計算得到的概率p對待編碼位進行算術編碼,從而得到壓縮后的二進制文件。由于整個壓縮過程是可逆的,利用同一參考序列,對應進行解壓縮過程,即可將得到的二進制文件恢復出解壓縮序列。
實施效果
本實施例中關鍵參數(shù)的設置為:實驗所用數(shù)據(jù)來源于人類基因組數(shù)據(jù)koref-20090131,yh,hg18,其中包含有人類22條常染色體,x染色體和y染色體的測序序列。其中hg18作為參考序列,利用上述壓縮方法壓縮其他兩組基因序列。重復序列的匹配長度閾值設為30,連續(xù)上下文模型選取了階數(shù)為1,2,4,6,8,10,11,12,13,14,16階組成的上下文集,非連續(xù)上下文選取了11個在訓練數(shù)據(jù)集上表現(xiàn)復雜度較低且壓縮率較好的圖案。經(jīng)實驗對比,在處理原始dna序列中,本實施例系統(tǒng)能夠得到更高的壓縮率。
以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領域技術人員可以在權利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質內(nèi)容。