亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于blast的分布式基因序列比對方法

文檔序號:6440776閱讀:1349來源:國知局
專利名稱:基于blast的分布式基因序列比對方法
技術領域
本發(fā)明涉及計算機和生物信息學技術領域,具體涉及一種基于BLAST的分布式基因序列比對方法。
背景技術
在過去幾年時間里,新一代測序(Next Generation kquencing,NGS)技術給生物學研究帶來了巨大的變革,在測序原理、操作細節(jié)、技術擴展等方面取得了顯著發(fā)展。相對于傳統(tǒng)的Sanger測序法,NGS技術平臺避免了克隆過程,直接使用接頭進行并行PCR(聚合酶鏈反應)、測序反應,因此其數(shù)據(jù)通量得到大幅提高,可以在更短的時間內對更多的DNA 進行測序。例如,使用Sanger測序法繪制第1張人類基因組圖譜前后共耗費13年時間和幾百臺測序儀,而現(xiàn)在NGS可以在幾個月的時間內完成該工作。此外,NGS的成本大大降低,如果保持現(xiàn)在的發(fā)展速度,幾年內個人基因測序的費用將能夠降到1000美元以下,屆時,NGS 的科研和臨床應用環(huán)境將得到進一步加強。在已發(fā)布的基因數(shù)據(jù)庫基礎上進行功能注釋是對測序數(shù)據(jù)分析的基本方法之一, 其中BLAST(Basic Local Alignment Search Tool,基本局部比對搜索工具)[1]軟件系列是由 NCBI (National Center for Biotechnology Information)發(fā)布的序列相似搜索程序,是目前學術界最常用的開源的功能注釋軟件。與精確匹配算法不同的是,BLAST采用 seed-and-extend近似匹配技術來快速搜索序列之間的相似段。此外,BLAST能夠在多對稱處理器(Symmetrical Multiprocessor,SMP)結構的機器上通過多線程運行,以提高計算效率。一般來說,NGS數(shù)據(jù)由數(shù)以百萬計的短序列DNA讀段組成,具有規(guī)模大、數(shù)據(jù)量高等特征,生物信息學研究中常采用高性能計算機集群對NGS數(shù)據(jù)進行注釋分析,盡管BLAST 實現(xiàn)了多線程技術,但仍然只是針對單機運行,而且在規(guī)模上有許多限制,例如對于超過4 核的SMP機器,處理器資源將無法得到充分利用。為了能夠適應呈指數(shù)增長的生物信息學數(shù)據(jù)量,進一步提高BLAST的運行效率,加速生物信息學分析和研究的進程,研發(fā)人員開發(fā)了多種面向集群應用環(huán)境的并行BLAST版本,例如mpiBlast [2],pBlast [3]等。雖然這些并行軟件增強了分析算法的可伸縮性,可以很容易的擴展至數(shù)百個甚至上千個處理器同時執(zhí)行,然而它們卻存在一些共同的缺點1)并不是所有的并行版本都能夠產生與NCBI Blast 單機運行一致的結果W],這是由于使用了不同的數(shù)據(jù)庫切割或結果合并方法而導致;2) 在傳統(tǒng)的高性能計算中,通常采用共享存儲系統(tǒng),也就是說數(shù)據(jù)庫、Blast 二進制文件、序列文件、中間結果都是存放在同一個物理存儲上,雖然從系統(tǒng)維護的角度來說更加便捷,但是當并行度高的時候,所有節(jié)點的聚合10對網(wǎng)絡資源開銷非常大[5],將嚴重影響整個軟件的總體執(zhí)行效率,因此10帶寬經(jīng)常成為多序列比對分析的瓶頸所在;幻這些軟件都需要使用耦合度高的高性能計算機集群和高性能存儲系統(tǒng),硬件成本昂貴。上面所引用的參考文獻如下[1]S. F. Altschul, W. Gish, W. Miller, Ε. W. Myers, and D. J. Lipman, “ BasicLocal Alignment Search Tool, " Journal of Molecular Biology,No215,pp. 403-410, 1990.[2]A. E. Darling, L. Carey, and W. C. Feng, " The design, implementation, and evaluation of mpiBlast, " In proceedings of 4th International Conference on Linux Clusters :The HPC revolution 2003,2003.[3]D. R. Mathog," Parallel Blast on Split Databases," in Bioinformatics Applications Note, vol. 19,no. 14,pp.1865-1866,2003.[4]dBlast, http://www. cmbi. kun. nl/software/dBlast.[5]M. C. Schatz," Blast Reduce :High Performance Short Read Mapping with MapReduce, “ 2008.

發(fā)明內容
(一)要解決的技術問題本發(fā)明要解決的技術問題是如何設計一種基于傳統(tǒng)單機運行的NCBI BLAST開發(fā)出分布式基因序列比對方法,一方面使得并行的注釋分析結果與單機運行結果完全一致,另一方面使得整個系統(tǒng)的累加10帶寬得以提高,遠超過共享式存儲網(wǎng)絡的帶寬,減輕基因功能注釋分析的10瓶頸效應。(二)技術方案為解決上述技術問題,本發(fā)明提供了一種基于BLAST的分布式基因序列比對方法,包括以下步驟Si、程序對用戶參數(shù)進行解析,并確定MPI線程個數(shù),讀取查詢序列文件,根據(jù)任務個數(shù)分割查詢序列文件得到查詢序列文件片段,然后每個MPI線程分別讀取各自的MPI 線程序號;S2、根據(jù)所述MPI線程序號判斷當前MPI線程是否為頭節(jié)點,如果當前MPI線程是頭節(jié)點,則等待其它MPI線程的通信請求,如果有通信請求則響應其它MPI線程的通信請求,并將當前任務分配給提出通信請求的線程,將任務序號減1 ;繼續(xù)分配任務,直到所有任務分配完畢,則結束當前MPI線程;如果當前MPI線程不是頭節(jié)點,則先向頭節(jié)點請求任務序號,根據(jù)任務序號讀取查詢序列文件片段,并對數(shù)據(jù)庫執(zhí)行BLAST,得到BLAST比對結果,然后將任務序號減1,執(zhí)行BLAST完畢再請求任務序號;繼續(xù)執(zhí)行BLAST,直至最后一個任務;S3、合并所有的BLAST比對結果。優(yōu)選地,步驟Sl中根據(jù)任務個數(shù)分割查詢序列文件時,將查詢序列文件分割為相對于節(jié)點個數(shù)更多的塊。優(yōu)選地,步驟S2中,如果MPI線程不是頭節(jié)點,則為計算節(jié)點,所述數(shù)據(jù)庫以及執(zhí)行BLAST時所得到的Blast中間結果均存儲于所述計算節(jié)點的本地存儲器中。優(yōu)選地,所述任務個數(shù)大于或等于MPI線程個數(shù)。優(yōu)選地,所述查詢序列文件為FASTA格式。優(yōu)選地,所述數(shù)據(jù)庫為基因數(shù)據(jù)庫。(三)有益效果
本發(fā)明基于傳統(tǒng)單機運行的NCBI BLAST開發(fā)出了一種分布式基因序列比對方法 (也稱為注釋方法),其一方面借助于BLAST原有的程序,使得并行的注釋分析結果與單機運行結果完全一致,另一方面,通過對基因數(shù)據(jù)庫的分布式存儲和查詢序列文件分割處理, 使得序列比對方法中的整個系統(tǒng)的累加IO帶寬大大提高,遠超過共享式存儲網(wǎng)絡的帶寬, 減輕了基因功能注釋分析的IO瓶頸效應。進一步,由于本發(fā)明中的分布式算法可適用于廉價的存儲和計算機系統(tǒng),因此可使用松耦合、高異構的基于普通服務器的網(wǎng)絡拓撲結構代替高性能計算機集群系統(tǒng),使得基因功能注釋分析能夠在普通的PC機集群上運行,從而降低了生物信息學研究的硬件成本。此外,在Blast的查詢序列分割處理中,引入了負載均衡的方法,進一步提高了資源利用率,加速了整體分析執(zhí)行速度。


圖1為本發(fā)明的方法流程圖;圖2為分布式BLAST網(wǎng)絡拓補圖。
具體實施例方式下面結合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。本發(fā)明的方法流程圖如圖1所示,包括以下步驟Si、首先程序對用戶參數(shù)進行解析,并確定MPI (Message Passing hterface,消息傳遞接口 )線程個數(shù),讀取查詢序列文件(FASTA格式)根據(jù)任務(即查詢序列文件)個數(shù)分割查詢序列文件(任務個數(shù)大于或等于MPI線程個數(shù))得到查詢序列文件片段,然后每個MPI線程分別讀取自己的MPI線程序號;所述用戶參數(shù)主要是指BLAST參數(shù),BLAST是開源軟件,其參數(shù)可以在NCBI網(wǎng)站查詢得到。這里對用戶參數(shù)進行解析是指,程序解析用戶的輸入?yún)?shù),并將這些參數(shù)傳遞給BLAST。S2、根據(jù)所述MPI線程序號判斷當前MPI線程是否為頭節(jié)點,如果MPI線程是頭節(jié)點(MPI_RANK = =1),則等待其它MPI線程的通信請求,如果有則響應其它MPI線程的通信請求并將當前任務分配給該線程,任務序號減1 ;繼續(xù)分配任務,直到所有任務分配完畢, 則結束當前MPI線程;如果當前MPI線程不是頭節(jié)點(也就是說,是計算節(jié)點),則先向頭結點請求任務序號,根據(jù)任務序號讀取查詢序列文件片段,并對基因數(shù)據(jù)庫執(zhí)行BLAST,得到 BLAST比對結果,然后將任務序號減1,執(zhí)行BLAST完畢再請求任務序號;繼續(xù)執(zhí)行BLAST, 直至最后一個任務;其中,所述數(shù)據(jù)庫以及執(zhí)行BLAST時所得到的BLAST中間結果均存儲于所述計算節(jié)點的本地存儲器中。本步驟中使用了負載均衡算法。S3、合并所有BLAST比對結果。此處的合并是指簡單的文本合并,因為所有節(jié)點的比對結果都是生成文本格式的結果文件,最后總的結果就是簡單地把所有的文本文件按照處理順序合并起來。例如,在Iinux系統(tǒng)中,通過幾條批處理命令,cat等即可實現(xiàn)。在本發(fā)明的方法中,采用了下列兩種方法來提高程序運行效率,改善其他并行版本中所存在的瓶頸和缺點1.對于大數(shù)據(jù)量、高并發(fā)度的序列比對任務,在共享存儲的體系架構中,一直以來 IO是整個系統(tǒng)最大的瓶頸所在。尤其對于Blast來說,大量的數(shù)據(jù)庫訪問、查詢序列存取、以及中間結果的生成都需要占用存儲帶寬。然而,即使對于高性能磁盤陣列,例如本發(fā)明測試中所采用的HDS 3080系統(tǒng),其最大訪存帶寬(峰值)約2GB/s,如果使用200線程的并行度,如果假設采用IB網(wǎng)絡,物理帶寬足夠的話,那么平均每個線程的存儲帶寬只有l(wèi)OMB/s。 從單機存儲的角度來看,這樣的訪存性能是非常低下的,即使是普通的個人電腦硬盤,訪存速度也能達到均值70-80MB/S??紤]到現(xiàn)在的用戶級硬盤價格極其低廉,單個硬盤的存儲空間已經(jīng)能夠達到2TB,而NCBI常用的公共基因數(shù)據(jù)庫所占空間在200GB以下,因此本發(fā)明將數(shù)據(jù)庫、Blast中間結果完全放置于計算節(jié)點的本地存儲器中,每個計算節(jié)點都保留一份完整的拷貝。整體來看,程序運行過程中的所有累加存儲帶寬就能夠遠遠超過現(xiàn)有的共享存儲帶寬。本發(fā)明的分布式存儲網(wǎng)絡拓補如圖2所示(圖2中,基因數(shù)據(jù)庫、Blast中間結果分布存儲在各個節(jié)點上的本地存儲器的相同目錄結構下)。此外,由于該方案適用于普通服務器+普通用戶級硬盤的體系架構,而且與采用高性能計算機集群的性能保持相當,因此, 可以大大降低運營成本,減少硬件投入,使得生物信息學研究門檻降低。為了使得程序適用于異構的計算機體系環(huán)境,例如上述的普通服務器+普通用戶級硬盤的體系架構,采用自適應的作業(yè)分配算法。相對于節(jié)點數(shù),將任務(查詢序列)分割為粒度更細的小塊,再通過負載均衡提高各個節(jié)點的資源利用率。例如在100節(jié)點的并行條件下,將任務劃分為200份,首先同時運行100份任務,對于先結束的線程,則繼續(xù)分配更多的任務,這樣可以解決單次分配整個任務而造成的結束時間不一致問題。本發(fā)明方法中的查詢序列分割、作業(yè)調度與分配、線程通訊、作業(yè)結果合并部分, 可采用各種程序語言(如C語言)實現(xiàn),而具體的單線程作業(yè)的序列比對部分則直接調用 Blast實現(xiàn)。將本發(fā)明的執(zhí)行程序在分布式PC集群中進行測試,共10個節(jié)點,每個節(jié)點4 核4G內存,采用分布式存儲方案,對NCBI NT(版本2010-10-09)庫進行比對,測試樣本序列10萬條,劃分為40個任務。同時,也將傳統(tǒng)的并行BLAST方法在高性能計算環(huán)境中運行測試,分配40個核,共80G內存,采用共享存儲方案,基于HNAS 3080實現(xiàn)。結果表明,高性能環(huán)境完成該任務需要893分鐘的機時,平均單核花費22. 32分鐘;而普通服務器環(huán)境完成該任務則使用了 871分鐘的機時,平均單核花費21. 78分鐘。由此可見,在取得相似計算性能的同時,本發(fā)明所采用的技術方案大大降低了運行成本,具有較高的經(jīng)濟效益。以上所述僅是本發(fā)明的實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變型,這些改進和變型也應視為本發(fā)明的保護范圍。
權利要求
1.一種基于BLAST的分布式基因序列比對方法,其特征在于,包括以下步驟51、程序對用戶參數(shù)進行解析,并確定MPI線程個數(shù),讀取查詢序列文件,根據(jù)任務個數(shù)分割查詢序列文件得到查詢序列文件片段,然后每個MPI線程分別讀取各自的MPI線程序號;52、根據(jù)所述MPI線程序號判斷當前MPI線程是否為頭節(jié)點,如果當前MPI線程是頭節(jié)點,則等待其它MPI線程的通信請求,如果有通信請求則響應其它MPI線程的通信請求,并將當前任務分配給提出通信請求的線程,將任務序號減1 ;繼續(xù)分配任務,直到所有任務分配完畢,則結束當前MPI線程;如果當前MPI線程不是頭節(jié)點,則先向頭節(jié)點請求任務序號, 根據(jù)任務序號讀取查詢序列文件片段,并對數(shù)據(jù)庫執(zhí)行BLAST,得到BLAST比對結果,然后將任務序號減1,執(zhí)行BLAST完畢再請求任務序號;繼續(xù)執(zhí)行BLAST,直至最后一個任務;53、合并所有的BLAST比對結果。
2.如權利要求1所述的方法,其特征在于,步驟Sl中根據(jù)任務個數(shù)分割查詢序列文件時,將查詢序列文件分割為相對于節(jié)點個數(shù)更多的塊。
3.如權利要求1所述的方法,其特征在于,步驟S2中,如果MPI線程不是頭節(jié)點,則為計算節(jié)點,所述數(shù)據(jù)庫以及執(zhí)行BLAST時所得到的Blast中間結果均存儲于所述計算節(jié)點的本地存儲器中。
4.如權利要求1所述的方法,其特征在于,所述任務個數(shù)大于或等于MPI線程個數(shù)。
5.如權利要求1所述的方法,其特征在于,所述查詢序列文件為FASTA格式。
6.如權利要求1 5中任一項所述的方法,其特征在于,所述數(shù)據(jù)庫為基因數(shù)據(jù)庫。
全文摘要
本發(fā)明涉及計算機和生物信息學技術領域,公開了一種基于BLAST的分布式基因序列比對方法,包括S1、程序對用戶參數(shù)進行解析,并確定MPI線程個數(shù),讀取查詢序列文件,根據(jù)任務個數(shù)分割查詢序列,每個MPI線程讀取各自的MPI線程序號;S2、根據(jù)MPI線程序號判斷當前MPI線程是否為頭節(jié)點,如果當前MPI線程是頭節(jié)點,則等待其它MPI線程的通信請求,如果有則響應,并將當前任務分配給提出通信請求的線程;繼續(xù)分配任務;如果當前MPI線程不是頭節(jié)點,則先向頭節(jié)點請求任務序號,根據(jù)任務序號讀取查詢序列文件片段,并執(zhí)行BLAST,得到BLAST比對結果,然后將任務序號減1,執(zhí)行BLAST完再請求任務序號;S3、合并所有BLAST比對結果。本發(fā)明能降低生物信息學研究的硬件成本。
文檔編號G06F19/22GK102521529SQ20111041020
公開日2012年6月27日 申請日期2011年12月9日 優(yōu)先權日2011年12月9日
發(fā)明者劉充, 吳一雷, 李國銳, 謝威, 閆鵬程, 陳禹保, 黃勁松 申請人:北京市計算中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1