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

文档序号:6440776阅读:1242来源:国知局
专利名称:基于blast的分布式基因序列比对方法
技术领域
本发明涉及计算机和生物信息学技术领域,具体涉及一种基于BLAST的分布式基因序列比对方法。
背景技术
在过去几年时间里,新一代测序(Next Generation kquencing,NGS)技术给生物学研究带来了巨大的变革,在测序原理、操作细节、技术扩展等方面取得了显著发展。相对于传统的Sanger测序法,NGS技术平台避免了克隆过程,直接使用接头进行并行PCR(聚合酶链反应)、测序反应,因此其数据通量得到大幅提高,可以在更短的时间内对更多的DNA 进行测序。例如,使用Sanger测序法绘制第1张人类基因组图谱前后共耗费13年时间和几百台测序仪,而现在NGS可以在几个月的时间内完成该工作。此外,NGS的成本大大降低,如果保持现在的发展速度,几年内个人基因测序的费用将能够降到1000美元以下,届时,NGS 的科研和临床应用环境将得到进一步加强。在已发布的基因数据库基础上进行功能注释是对测序数据分析的基本方法之一, 其中BLAST(Basic Local Alignment Search Tool,基本局部比对搜索工具)[1]软件系列是由 NCBI (National Center for Biotechnology Information)发布的序列相似搜索程序,是目前学术界最常用的开源的功能注释软件。与精确匹配算法不同的是,BLAST采用 seed-and-extend近似匹配技术来快速搜索序列之间的相似段。此外,BLAST能够在多对称处理器(Symmetrical Multiprocessor,SMP)结构的机器上通过多线程运行,以提高计算效率。一般来说,NGS数据由数以百万计的短序列DNA读段组成,具有规模大、数据量高等特征,生物信息学研究中常采用高性能计算机集群对NGS数据进行注释分析,尽管BLAST 实现了多线程技术,但仍然只是针对单机运行,而且在规模上有许多限制,例如对于超过4 核的SMP机器,处理器资源将无法得到充分利用。为了能够适应呈指数增长的生物信息学数据量,进一步提高BLAST的运行效率,加速生物信息学分析和研究的进程,研发人员开发了多种面向集群应用环境的并行BLAST版本,例如mpiBlast [2],pBlast [3]等。虽然这些并行软件增强了分析算法的可伸缩性,可以很容易的扩展至数百个甚至上千个处理器同时执行,然而它们却存在一些共同的缺点1)并不是所有的并行版本都能够产生与NCBI Blast 单机运行一致的结果W],这是由于使用了不同的数据库切割或结果合并方法而导致;2) 在传统的高性能计算中,通常采用共享存储系统,也就是说数据库、Blast 二进制文件、序列文件、中间结果都是存放在同一个物理存储上,虽然从系统维护的角度来说更加便捷,但是当并行度高的时候,所有节点的聚合10对网络资源开销非常大[5],将严重影响整个软件的总体执行效率,因此10带宽经常成为多序列比对分析的瓶颈所在;幻这些软件都需要使用耦合度高的高性能计算机集群和高性能存储系统,硬件成本昂贵。上面所引用的参考文献如下[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.

发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何设计一种基于传统单机运行的NCBI BLAST开发出分布式基因序列比对方法,一方面使得并行的注释分析结果与单机运行结果完全一致,另一方面使得整个系统的累加10带宽得以提高,远超过共享式存储网络的带宽,减轻基因功能注释分析的10瓶颈效应。(二)技术方案为解决上述技术问题,本发明提供了一种基于BLAST的分布式基因序列比对方法,包括以下步骤Si、程序对用户参数进行解析,并确定MPI线程个数,读取查询序列文件,根据任务个数分割查询序列文件得到查询序列文件片段,然后每个MPI线程分别读取各自的MPI 线程序号;S2、根据所述MPI线程序号判断当前MPI线程是否为头节点,如果当前MPI线程是头节点,则等待其它MPI线程的通信请求,如果有通信请求则响应其它MPI线程的通信请求,并将当前任务分配给提出通信请求的线程,将任务序号减1 ;继续分配任务,直到所有任务分配完毕,则结束当前MPI线程;如果当前MPI线程不是头节点,则先向头节点请求任务序号,根据任务序号读取查询序列文件片段,并对数据库执行BLAST,得到BLAST比对结果,然后将任务序号减1,执行BLAST完毕再请求任务序号;继续执行BLAST,直至最后一个任务;S3、合并所有的BLAST比对结果。优选地,步骤Sl中根据任务个数分割查询序列文件时,将查询序列文件分割为相对于节点个数更多的块。优选地,步骤S2中,如果MPI线程不是头节点,则为计算节点,所述数据库以及执行BLAST时所得到的Blast中间结果均存储于所述计算节点的本地存储器中。优选地,所述任务个数大于或等于MPI线程个数。优选地,所述查询序列文件为FASTA格式。优选地,所述数据库为基因数据库。(三)有益效果
本发明基于传统单机运行的NCBI BLAST开发出了一种分布式基因序列比对方法 (也称为注释方法),其一方面借助于BLAST原有的程序,使得并行的注释分析结果与单机运行结果完全一致,另一方面,通过对基因数据库的分布式存储和查询序列文件分割处理, 使得序列比对方法中的整个系统的累加IO带宽大大提高,远超过共享式存储网络的带宽, 减轻了基因功能注释分析的IO瓶颈效应。进一步,由于本发明中的分布式算法可适用于廉价的存储和计算机系统,因此可使用松耦合、高异构的基于普通服务器的网络拓扑结构代替高性能计算机集群系统,使得基因功能注释分析能够在普通的PC机集群上运行,从而降低了生物信息学研究的硬件成本。此外,在Blast的查询序列分割处理中,引入了负载均衡的方法,进一步提高了资源利用率,加速了整体分析执行速度。


图1为本发明的方法流程图;图2为分布式BLAST网络拓补图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本发明的方法流程图如图1所示,包括以下步骤Si、首先程序对用户参数进行解析,并确定MPI (Message Passing hterface,消息传递接口 )线程个数,读取查询序列文件(FASTA格式)根据任务(即查询序列文件)个数分割查询序列文件(任务个数大于或等于MPI线程个数)得到查询序列文件片段,然后每个MPI线程分别读取自己的MPI线程序号;所述用户参数主要是指BLAST参数,BLAST是开源软件,其参数可以在NCBI网站查询得到。这里对用户参数进行解析是指,程序解析用户的输入参数,并将这些参数传递给BLAST。S2、根据所述MPI线程序号判断当前MPI线程是否为头节点,如果MPI线程是头节点(MPI_RANK = =1),则等待其它MPI线程的通信请求,如果有则响应其它MPI线程的通信请求并将当前任务分配给该线程,任务序号减1 ;继续分配任务,直到所有任务分配完毕, 则结束当前MPI线程;如果当前MPI线程不是头节点(也就是说,是计算节点),则先向头结点请求任务序号,根据任务序号读取查询序列文件片段,并对基因数据库执行BLAST,得到 BLAST比对结果,然后将任务序号减1,执行BLAST完毕再请求任务序号;继续执行BLAST, 直至最后一个任务;其中,所述数据库以及执行BLAST时所得到的BLAST中间结果均存储于所述计算节点的本地存储器中。本步骤中使用了负载均衡算法。S3、合并所有BLAST比对结果。此处的合并是指简单的文本合并,因为所有节点的比对结果都是生成文本格式的结果文件,最后总的结果就是简单地把所有的文本文件按照处理顺序合并起来。例如,在Iinux系统中,通过几条批处理命令,cat等即可实现。在本发明的方法中,采用了下列两种方法来提高程序运行效率,改善其他并行版本中所存在的瓶颈和缺点1.对于大数据量、高并发度的序列比对任务,在共享存储的体系架构中,一直以来 IO是整个系统最大的瓶颈所在。尤其对于Blast来说,大量的数据库访问、查询序列存取、以及中间结果的生成都需要占用存储带宽。然而,即使对于高性能磁盘阵列,例如本发明测试中所采用的HDS 3080系统,其最大访存带宽(峰值)约2GB/s,如果使用200线程的并行度,如果假设采用IB网络,物理带宽足够的话,那么平均每个线程的存储带宽只有lOMB/s。 从单机存储的角度来看,这样的访存性能是非常低下的,即使是普通的个人电脑硬盘,访存速度也能达到均值70-80MB/S。考虑到现在的用户级硬盘价格极其低廉,单个硬盘的存储空间已经能够达到2TB,而NCBI常用的公共基因数据库所占空间在200GB以下,因此本发明将数据库、Blast中间结果完全放置于计算节点的本地存储器中,每个计算节点都保留一份完整的拷贝。整体来看,程序运行过程中的所有累加存储带宽就能够远远超过现有的共享存储带宽。本发明的分布式存储网络拓补如图2所示(图2中,基因数据库、Blast中间结果分布存储在各个节点上的本地存储器的相同目录结构下)。此外,由于该方案适用于普通服务器+普通用户级硬盘的体系架构,而且与采用高性能计算机集群的性能保持相当,因此, 可以大大降低运营成本,减少硬件投入,使得生物信息学研究门槛降低。为了使得程序适用于异构的计算机体系环境,例如上述的普通服务器+普通用户级硬盘的体系架构,采用自适应的作业分配算法。相对于节点数,将任务(查询序列)分割为粒度更细的小块,再通过负载均衡提高各个节点的资源利用率。例如在100节点的并行条件下,将任务划分为200份,首先同时运行100份任务,对于先结束的线程,则继续分配更多的任务,这样可以解决单次分配整个任务而造成的结束时间不一致问题。本发明方法中的查询序列分割、作业调度与分配、线程通讯、作业结果合并部分, 可采用各种程序语言(如C语言)实现,而具体的单线程作业的序列比对部分则直接调用 Blast实现。将本发明的执行程序在分布式PC集群中进行测试,共10个节点,每个节点4 核4G内存,采用分布式存储方案,对NCBI NT(版本2010-10-09)库进行比对,测试样本序列10万条,划分为40个任务。同时,也将传统的并行BLAST方法在高性能计算环境中运行测试,分配40个核,共80G内存,采用共享存储方案,基于HNAS 3080实现。结果表明,高性能环境完成该任务需要893分钟的机时,平均单核花费22. 32分钟;而普通服务器环境完成该任务则使用了 871分钟的机时,平均单核花费21. 78分钟。由此可见,在取得相似计算性能的同时,本发明所采用的技术方案大大降低了运行成本,具有较高的经济效益。以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
权利要求
1.一种基于BLAST的分布式基因序列比对方法,其特征在于,包括以下步骤51、程序对用户参数进行解析,并确定MPI线程个数,读取查询序列文件,根据任务个数分割查询序列文件得到查询序列文件片段,然后每个MPI线程分别读取各自的MPI线程序号;52、根据所述MPI线程序号判断当前MPI线程是否为头节点,如果当前MPI线程是头节点,则等待其它MPI线程的通信请求,如果有通信请求则响应其它MPI线程的通信请求,并将当前任务分配给提出通信请求的线程,将任务序号减1 ;继续分配任务,直到所有任务分配完毕,则结束当前MPI线程;如果当前MPI线程不是头节点,则先向头节点请求任务序号, 根据任务序号读取查询序列文件片段,并对数据库执行BLAST,得到BLAST比对结果,然后将任务序号减1,执行BLAST完毕再请求任务序号;继续执行BLAST,直至最后一个任务;53、合并所有的BLAST比对结果。
2.如权利要求1所述的方法,其特征在于,步骤Sl中根据任务个数分割查询序列文件时,将查询序列文件分割为相对于节点个数更多的块。
3.如权利要求1所述的方法,其特征在于,步骤S2中,如果MPI线程不是头节点,则为计算节点,所述数据库以及执行BLAST时所得到的Blast中间结果均存储于所述计算节点的本地存储器中。
4.如权利要求1所述的方法,其特征在于,所述任务个数大于或等于MPI线程个数。
5.如权利要求1所述的方法,其特征在于,所述查询序列文件为FASTA格式。
6.如权利要求1 5中任一项所述的方法,其特征在于,所述数据库为基因数据库。
全文摘要
本发明涉及计算机和生物信息学技术领域,公开了一种基于BLAST的分布式基因序列比对方法,包括S1、程序对用户参数进行解析,并确定MPI线程个数,读取查询序列文件,根据任务个数分割查询序列,每个MPI线程读取各自的MPI线程序号;S2、根据MPI线程序号判断当前MPI线程是否为头节点,如果当前MPI线程是头节点,则等待其它MPI线程的通信请求,如果有则响应,并将当前任务分配给提出通信请求的线程;继续分配任务;如果当前MPI线程不是头节点,则先向头节点请求任务序号,根据任务序号读取查询序列文件片段,并执行BLAST,得到BLAST比对结果,然后将任务序号减1,执行BLAST完再请求任务序号;S3、合并所有BLAST比对结果。本发明能降低生物信息学研究的硬件成本。
文档编号G06F19/22GK102521529SQ20111041020
公开日2012年6月27日 申请日期2011年12月9日 优先权日2011年12月9日
发明者刘充, 吴一雷, 李国锐, 谢威, 闫鹏程, 陈禹保, 黄劲松 申请人:北京市计算中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1