999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于位圖索引和B+樹的BLAST改進(jìn)算法

2013-08-04 02:23:52中山大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院廣州510275
關(guān)鍵詞:單詞數(shù)據(jù)庫

1.中山大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣州 510275

2.北京師范大學(xué)珠海分校 信息技術(shù)學(xué)院,廣東 珠海 519085

1.中山大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣州 510275

2.北京師范大學(xué)珠海分校 信息技術(shù)學(xué)院,廣東 珠海 519085

1 引言

BLAST是Basic Local Alignment Search Tool的簡寫。是采用啟發(fā)式算法的一個(gè)生物序列比對的軟件工具包,最初由Altschul S在1990年發(fā)展起來[1-2]。由于其在序列比對之前進(jìn)行一次定位,并對定位片段使用得分矩陣進(jìn)行打分的方式找出高分片段HSP(High Score Pair),因此雖然BLAST軟件采用的算法喪失了一些敏感度,可是它也達(dá)到了計(jì)算速度的極大提高,從而BLAST逐漸成為生物信息學(xué)領(lǐng)域的最重要的一種軟件,使用BLAST算法進(jìn)行序列搜索與比對也成為了分子生物學(xué)的必備。

雖然BLAST算法速度非常快,可是面對爆炸式增長的生物數(shù)據(jù)庫就顯得力不從心。現(xiàn)代生物數(shù)據(jù)庫大小增長速度十分快速,NCBI的GenBank核酸堿基數(shù)目大概每14個(gè)月就翻一倍。而即使依照摩爾定律,計(jì)算機(jī)的性能也要18個(gè)月才能更新一倍。因此,如何能夠更好地使用序列比對算法將是一個(gè)重要的問題。

為此,本文設(shè)想使用位圖索引組織BLAST程序使用的生物數(shù)據(jù)庫,并依靠B+樹進(jìn)行二次索引,使得BLAST在進(jìn)行序列搜索的時(shí)候,能夠更快地找到HSP。

2 問題描述

BLAST算法的過程[3]分為3個(gè)步驟。分別是播種(Seeding),擴(kuò)展(Extension),以及評估(Evaluation)。

BLAST算法假定序列比對中查詢序列和數(shù)據(jù)庫序列中的重要序列有共同之處,因此可以依靠兩者之間的共同點(diǎn)找出應(yīng)該搜索的區(qū)域。根據(jù)這個(gè)條件,BLAST程序從查詢序列中提取出所有長度為一固定值W的子串,并定義這些長度固定的子串為單詞(Word),然后BLAST程序利用這些單詞建立一個(gè)單詞表,再根據(jù)這張表,對數(shù)據(jù)庫序列進(jìn)行一次遍歷,找出所有與單詞表中單詞相匹配的片段。如DNA序列S=GCACCTACTA,當(dāng)W=8時(shí)序列S可以生成三個(gè)單詞:GCACCTAC,CACCTACT,ACCTACTA。BLAST程序首先找出搜索數(shù)據(jù)庫中有哪個(gè)位置有這三個(gè)單詞,然后標(biāo)記這些單詞。這些搜索數(shù)據(jù)庫中找到的共同單詞被稱為命中(Word Hits),如圖1。之后BLAST只考慮在這些命中區(qū)域附近搜索。這些命中就像種子一般,這就是BLAST算法的第一個(gè)步驟:播種。后面的計(jì)算都從這里發(fā)展,依靠這樣BLAST能夠節(jié)省大量搜索不必要區(qū)域的時(shí)間。

圖1 命中

對于蛋白序列,命中的范圍除了包括準(zhǔn)確的匹配,還包括相似的單詞。因?yàn)橹豢紤]準(zhǔn)確的匹配可能會(huì)忽略一些重要的匹配。例如搜索數(shù)據(jù)庫中有段序列T=MGKGD,明顯MGR,GRG和RGD都和序列T不匹配。可是在生物學(xué)中兩個(gè)序列是十分相似的。為了避免出現(xiàn)這種情況。BLAST定義單詞除了包括準(zhǔn)確的匹配之外,還包括依據(jù)得分矩陣生成的鄰域(Neighborhood)。每個(gè)鄰域都有自己的得分,BLAST在搜索前會(huì)設(shè)置一個(gè)值T,并搜索時(shí)自動(dòng)生成所有得分大于T的單詞。由于蛋白序列搜索與核酸序列搜索有很大相似性,以下主要討論DNA序列搜索的BLAST算法。

在實(shí)際的操作過程中,BLAST程序會(huì)先利用查詢序列根據(jù)用戶設(shè)定的W值和T值生成一個(gè)單詞表。然后順序查詢數(shù)據(jù)庫序列,對于每一個(gè)長度為W的子序列,BLAST都在單詞表中進(jìn)行查找,如果找到,則說明這是一個(gè)命中,否則跳過。假設(shè)單詞長度為W,序列生成單詞數(shù)目為v。序列數(shù)據(jù)庫共有n條序列,序列平均長度為l,假定沒有長度小于w的序列,則每個(gè)序列能夠產(chǎn)生的片段數(shù)為l-w+1。總共產(chǎn)生片段數(shù)為n(l-w+1)。對于每一個(gè)片段,BLAST都要從單詞庫中查找一次,在對單詞表排序的情況下,采用二分法查找則使用的平均時(shí)間復(fù)雜度為O(lnv)。因此整個(gè)過程時(shí)間復(fù)雜度為:

無論比對的序列為蛋白序列還是DNA序列,其W值通常為3~12左右。而數(shù)據(jù)庫中序列的長度通常都是超過100。因此可以忽略上式的w值。可記時(shí)間復(fù)雜度為:

實(shí)際上,n與l的乘積代表序列數(shù)據(jù)庫的總大小,用C代替,上式可化簡為:

3 基于位圖索引和B+樹的BLAST改進(jìn)算法

由式(1)知上述過程耗時(shí)取決于數(shù)據(jù)庫大小C與生成單詞數(shù)目v。其搜索速度與數(shù)據(jù)庫大小成線性關(guān)系。而現(xiàn)代生物數(shù)據(jù)庫發(fā)展的速度將會(huì)對計(jì)算資源提出巨大的要求。因此逐字順序檢索數(shù)據(jù)庫序列是不現(xiàn)實(shí)的。而對于一個(gè)DNA查詢序列,其生成的單詞數(shù)理論最多有4w個(gè),當(dāng)W=11時(shí)約為4×106個(gè)。如果能夠找出一種辦法,能夠加快單詞從數(shù)據(jù)庫中找到匹配的時(shí)間,則效果可能會(huì)好很多。

如果在搜索數(shù)據(jù)庫中對所有可能的單詞建立其所在數(shù)據(jù)庫位置的表,并對這個(gè)表對單詞字段建立位圖索引[4-5],則可以極大地加快單詞匹配的速度。為了加快單詞的檢索,可以對單詞字段再建立一個(gè)表,采用B+樹[6-7]存儲(chǔ)。如此可以大幅降低單詞匹配的耗時(shí)。

改進(jìn)的算法主要在于對序列數(shù)據(jù)庫存儲(chǔ)方式的改進(jìn)。首先把數(shù)據(jù)庫序列進(jìn)行編號(hào),如果序列長度過大,可能還要分段。在此,規(guī)定長度大于L=250的數(shù)據(jù)庫序列都進(jìn)行分段,使長度大小不超過L。設(shè)編號(hào)總數(shù)為N,即該數(shù)據(jù)庫有N段。然后對于每一個(gè)可能的單詞,都根據(jù)數(shù)據(jù)庫生成一個(gè)長度為N的位向量。位向量的生成方法是查找數(shù)據(jù)庫的每一段,如果第i條有該單詞的命中,則對應(yīng)位向量第i個(gè)元素為1,否則記0。

以表1的DNA數(shù)據(jù)庫作為例子。這個(gè)數(shù)據(jù)庫只包含3條序列,而且每條長度為60,因此不需要對序列進(jìn)行分段。

首先對數(shù)據(jù)庫按序列進(jìn)行編號(hào)。這里片段總數(shù)N=3。然后第1個(gè)DNA段第1個(gè)長度為W的片段TACTTGCCAAG,其在第1個(gè)DNA段有1個(gè)命中,因此位向量第1個(gè)元素為1。對于第2個(gè)DNA段,片段TACTTGCCAAG并沒有命中,因此位向量第2個(gè)元素為0。依此類推,片段TACTTGCCAAG的位向量為100。然后對于這個(gè)DNA段的第2個(gè)長度為W的片段ACTTGCCAAGT,因?yàn)樗诘?個(gè)DNA段有命中,因此這個(gè)單詞位向量第3個(gè)元素置1。可得出這個(gè)片段的位向量為101。依此類推,遍歷整個(gè)數(shù)據(jù)庫之后,可以得出一張“單詞-位向量”表。

為了更快地進(jìn)行查找。可以為這張單詞-位向量表進(jìn)行進(jìn)一步的索引。例如以“單詞”為鍵,建立B+樹,樹的葉子節(jié)點(diǎn)指向這個(gè)單詞所對應(yīng)的位向量。假如建立的B+樹的一個(gè)塊有255個(gè)指針,那么3層255階的B+樹能夠有2553≈1.66×107個(gè)指向記錄的指針。當(dāng)BLAST數(shù)據(jù)庫建立的索引表單詞長度W=11時(shí),上限單詞數(shù)目為411≈4.2×106,小于上述B+樹可提供指針數(shù)目,因此只需要建立一個(gè)三層B+樹就能夠進(jìn)行索引了。

表1 DNA序列數(shù)據(jù)庫

當(dāng)BLAST根據(jù)查詢序列生成單詞表時(shí),給出任意一個(gè)長度為W的單詞,可以根據(jù)B+樹找到單詞對應(yīng)的位向量,然后利用位向量知道數(shù)據(jù)庫第幾條DNA段有命中。從而快速地找到命中的序列。

圖2 三階B+樹

4 算法分析

假定B+樹每一個(gè)塊都是充滿的(事實(shí)上,因?yàn)楫?dāng)W=11時(shí)單詞數(shù)目的上限小于葉節(jié)點(diǎn)指針數(shù),因此這個(gè)B+樹是不可能充滿的),那么給出一個(gè)單詞要找到其在B+樹對應(yīng)的鍵時(shí),程序需要從根節(jié)點(diǎn)開始逐層往下比較,每層都順序比對所有的鍵,平均比對次數(shù)為255/2次,一直到葉節(jié)點(diǎn)所在的第三層,共需比對255/2×3=382.5次。

找到對應(yīng)位向量之后,程序只需讀入位向量一次,然后根據(jù)位向量查找命中的序列段。每在位向量中發(fā)現(xiàn)一個(gè)1,則說明有一條序列內(nèi)部有命中。然后遍歷這一段序列,找到所有的命中。設(shè)數(shù)據(jù)庫有N個(gè)序列段,每個(gè)序列段長度最大值為L,假定數(shù)據(jù)庫每個(gè)序列段的長度都達(dá)到最大,從而對于每一個(gè)有命中的序列段,程序都需要比對(L-W+1)次以找出命中的具體位置。

又設(shè)查詢序列能夠生成v個(gè)單詞,每個(gè)單詞在數(shù)據(jù)庫中有h個(gè)序列段是有命中的,那么平均每個(gè)單詞查找命中需要比對的次數(shù)為:

這里的h可以用任意長度為W的單詞在數(shù)據(jù)庫有命中的序列段個(gè)數(shù)的期望近似代替,即:h?H=N·P。其中P是任意長度為W的單詞在數(shù)據(jù)庫的任意一個(gè)序列段有命中的概率近似估計(jì)(因?yàn)椴煌瑔卧~在一個(gè)隨機(jī)序列出現(xiàn)的概率不同,因此這里計(jì)算概率時(shí)不考慮重復(fù)情況只給出概率上限):

因此平均每個(gè)單詞需進(jìn)行比對的次數(shù)可估計(jì)為:

而查詢序列生成v個(gè)單詞,兩步共需比對次數(shù)為:

因?yàn)閿?shù)據(jù)庫的序列條數(shù)通常十分巨大,因此可以省略382.5,同時(shí)對于較大的L值,W值通常比較小。因此T可以近似估計(jì)為:

這里N與L的乘積實(shí)際上就是數(shù)據(jù)庫的規(guī)模,即C=N×L,則上式可化簡為:

把式(3)與式(1)比較,可以得出T與T0的關(guān)系:

取W=11,L=250,則 β與v有關(guān),可以繪出 β(v)的圖像如圖3。

由圖3可知隨著查詢序列長度的增長原算法與改進(jìn)算法耗時(shí)比在降低,即對于較長的查詢序列,改進(jìn)算法的效果將會(huì)變差,不過對于DNA序列,查詢序列的長度一般小于1 000,根據(jù)圖像可得 v<1 000時(shí) β(v)>100,即原算法耗時(shí)T至少為改進(jìn)算法耗時(shí)T0的100倍,換句話說,執(zhí)行任何一次搜索的時(shí)候,算法查詢命中所耗費(fèi)時(shí)間將變?yōu)樵瓉淼?/100。

除此之外,只讀入有命中的序列段而不是全部讀入整個(gè)序列數(shù)據(jù)庫將會(huì)節(jié)省大量的時(shí)間。另外,為了更快地進(jìn)行檢索,還可以采用把整個(gè)B+樹索引載入內(nèi)存,這樣只需要一次的磁盤I/O就能找到單詞所對應(yīng)的位向量。

5 速度提升的代價(jià)

事實(shí)上,為序列數(shù)據(jù)庫建立位圖索引將會(huì)需要大量空間用于存儲(chǔ)單詞-位向量表,即使采用壓縮的算法[8]存儲(chǔ)位向量,根據(jù)對幾個(gè)生物數(shù)據(jù)庫的建表實(shí)現(xiàn)的結(jié)果,建立單詞-位向量表時(shí)最好預(yù)留30倍原文件大小的空間。也即是說,對于一個(gè)大小為1 GB的序列數(shù)據(jù)庫,至少需要30 GB的硬盤空間用于存放改進(jìn)的數(shù)據(jù)庫。而這正是速度提升的代價(jià)所在。

不過鑒于現(xiàn)今PB級的存儲(chǔ)設(shè)備已相當(dāng)普及,相對于為了加快搜索速度而增添計(jì)算資源,采購大容量存儲(chǔ)設(shè)備反而更加劃算,因此這個(gè)代價(jià)是完全可以承受的。

另一個(gè)速度提升的代價(jià)在于對序列數(shù)據(jù)庫的預(yù)處理時(shí)間,易知如果需要為一個(gè)序列數(shù)據(jù)庫建立位圖索引,將會(huì)需要大量的時(shí)間用于建立單詞-位向量表。不過在實(shí)際應(yīng)用中,對于一個(gè)序列數(shù)據(jù)庫來說,建表將會(huì)是一次性的。因此一旦建表完成,之后的任何一次序列搜索將都會(huì)獲得速度的提升。而B+樹的特性又能夠使得對數(shù)據(jù)庫的日常維護(hù)變得十分容易,例如,當(dāng)要修改某條序列時(shí),只需要考慮受到影響的單詞的位向量即可。

6 結(jié)束語

本文分析了BLAST算法其在播種階段的計(jì)算步驟,并提出采用位圖索引和B+樹重新組織數(shù)據(jù)庫的方法提高計(jì)算速度。采用位圖索引的思想對序列數(shù)據(jù)庫進(jìn)行處理,生成單詞-位向量表,在使用B+樹進(jìn)行二次索引,從而改變BLAST在播種階段的處理方式。理論證明,新的算法能夠使BLAST查找命中耗費(fèi)的時(shí)間至少縮小為原算法的百分之一。

但還有一些問題尚待進(jìn)一步研究,例如改進(jìn)序列數(shù)據(jù)庫的存儲(chǔ)效率以及改進(jìn)算法實(shí)現(xiàn)兩個(gè)問題,這將是下一步研究的重心。

[1]Altschul S,Gish W.Basic local alignment search tool[J].Journal of Molecular Biology,1990,215:403-410.

[2]Altschul S,Madden T,Sch?ffer A.Gapped BLAST and PSIBLAST:a new generation of protein database search programs[J].Nucleic Acids Research,1997,25(17):3389-3402.

[3]Korf I,Yandell M,Bedell J.BLAST[M].America:O’Reilly Media,2003.

[4]Bayer R,McCreight E M.Organization and maintenance of large ordered indexes[J].Acta Informatica,1972,1:173-189.

[5]Comar D.The ubiquitous B-tree[J].Computing Surveys,1979,11(2):121-137.

[6]O’Neil P.Model 204 architecture and performance[C]//Proceedings of the 2nd International Workshop on High Performance Transaction Systems,Asilomar,CA,USA,1987:40-59.

[7]O’Neil P,Quass D.Improved query performance with variant indexes[C]//SIGMOD’97.New York:ACM Press,1997:38-49.

[8]Wu K,Otoo E,Shoshani A.Optimizing bitmap indices with efficient compression[J].ACM Transactions on Database Systems,2006,31(1):1-38.

基于位圖索引和B+樹的BLAST改進(jìn)算法

黃志洪1,呂 威2,黃 俊1

HUANG Zhihong1,LV Wei2,HUANG Jun1

1.School of Mathematics&Computational Science,Sun Yat-sen University,Guangzhou 510275,China
2.School of Information Technology,Beijing Normal University Zhuhai Campus,Zhuhai,Guangdong 519085,China

It concentrates on the time consuming procedure that goes through the database in the first step of BLAST.In order to speed up the program,it introduces a new approach which using bit map index and B+tree.The developed method builds up a word-bit_vector table according to the database,and reorganizes it with B+tree.It proves theoretically that it decreases the word searching time of BLAST substantially.

sequence alignment;BLAST algorithm;bitmap index;B+tree

針對BLAST算法在查找命中的過程中需要遍歷數(shù)據(jù)庫造成計(jì)算資源消耗的問題,提出了基于位圖索引和B+樹的數(shù)據(jù)存儲(chǔ)方式以加快數(shù)據(jù)的檢索。改進(jìn)算法利用位圖索引的原理建立數(shù)據(jù)庫的單詞-位向量表,并對這個(gè)表使用B+樹再次進(jìn)行索引,最終達(dá)到加快BLAST程序的運(yùn)算速度。對于DNA序列這個(gè)方法能夠使BLAST查找命中耗費(fèi)的時(shí)間得到極大的減少。

序列比對;BLAST算法;位圖索引;B+樹

A

TP391

10.3778/j.issn.1002-8331.1110-0392

HUANG Zhihong,LV Wei,HUANG Jun.Improved BLAST algorithm based on bitmap indexes and B+tree.Computer Engineering and Applications,2013,49(11):118-120.

國家自然科學(xué)基金(No.11126039)。

黃志洪(1967—),男,講師,主要研究領(lǐng)域?yàn)閿?shù)據(jù)庫、數(shù)據(jù)分析。E-mail:luwei00@126.com

2011-10-20

2012-02-06

1002-8331(2013)11-0118-03

CNKI出版日期:2012-07-19 http://www.cnki.net/kcms/detail/11.2127.TP.20120719.1511.006.html

猜你喜歡
單詞數(shù)據(jù)庫
What’s This?
Exercise 1
單詞連一連
看圖填單詞
數(shù)據(jù)庫
看完這些單詞的翻譯,整個(gè)人都不好了
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 这里只有精品免费视频| 青青青伊人色综合久久| 午夜电影在线观看国产1区| 色成人亚洲| 呦系列视频一区二区三区| 精品久久久久成人码免费动漫| 中文字幕乱码中文乱码51精品| 亚洲精品视频网| 国内精品小视频福利网址| 欧美α片免费观看| 精品视频一区二区三区在线播| 欧美中文字幕第一页线路一| 欧美在线观看不卡| 一本大道香蕉中文日本不卡高清二区 | 国产在线无码av完整版在线观看| 国产无套粉嫩白浆| 日韩免费中文字幕| 日韩天堂视频| 亚洲色中色| 国产美女精品人人做人人爽| 玩两个丰满老熟女久久网| 久久人与动人物A级毛片| 精品伊人久久久大香线蕉欧美| 男女男精品视频| 免费av一区二区三区在线| 久久综合成人| 97se亚洲综合在线韩国专区福利| 亚洲国产综合精品一区| 真人高潮娇喘嗯啊在线观看| 女人毛片a级大学毛片免费| YW尤物AV无码国产在线观看| 尤物国产在线| 亚洲综合激情另类专区| 亚洲乱伦视频| 国产99免费视频| 伊人久久久大香线蕉综合直播| 国产成人精品第一区二区| 国产福利拍拍拍| 毛片免费试看| 亚洲日韩图片专区第1页| 成人免费网站久久久| 人妻丰满熟妇αv无码| 免费高清a毛片| 亚洲精品第一在线观看视频| 扒开粉嫩的小缝隙喷白浆视频| 亚洲二区视频| 99偷拍视频精品一区二区| 国产在线一区二区视频| 青青草综合网| 国产精品大白天新婚身材| 亚洲色图欧美| 美女被操黄色视频网站| 国产乱人免费视频| 91视频青青草| 国产精品亚洲欧美日韩久久| 亚洲精品麻豆| 国产av一码二码三码无码| 欧美日韩亚洲国产主播第一区| 成人在线综合| 十八禁美女裸体网站| 久热这里只有精品6| 国产免费观看av大片的网站| a毛片免费在线观看| 91色在线视频| 国产成人a毛片在线| 一级香蕉人体视频| 亚洲中文制服丝袜欧美精品| 亚洲福利一区二区三区| 国产在线精品99一区不卡| a天堂视频| 中文字幕在线一区二区在线| 亚洲欧洲美色一区二区三区| 亚洲天堂色色人体| 久久6免费视频| 国产成人综合日韩精品无码首页| 亚洲综合专区| 日韩不卡免费视频| 欧美在线国产| 狠狠色丁婷婷综合久久| 白丝美女办公室高潮喷水视频 | 91成人免费观看在线观看| 亚洲天堂视频在线免费观看|