一种生物数据的索引方法、系统及电子设备技术方案

技术编号:21891671 阅读:36 留言:0更新日期:2019-08-17 14:25
本申请属于计算机科学与生物信息学的交叉领域,特别涉及一种生物数据的索引方法、系统及电子设备。所述生物数据的索引方法包括:步骤a:对生物数据进行并行化输入,并对输入的生物数据进行质量筛选;步骤b:对质量筛选后的生物数据进行k-mer提取;步骤c:k-mer提取完成后,通过两级哈希分别将每个k-mer散列到对应的处理器上,得到生物数据的分布式哈希索引。本申请充分利用计算集群,通过多节点共享内存以及两级哈希的方式,实现大规模生物数据的分布式哈希,解决了单节点所能进行索引及统计分析的哈希规模的限制,实现生物数据的高效索引和极速分析。

An Index Method, System and Electronic Equipment for Biological Data

【技术实现步骤摘要】
一种生物数据的索引方法、系统及电子设备
本申请属于计算机科学与生物信息学的交叉领域,特别涉及一种生物数据的索引方法、系统及电子设备。
技术介绍
生物数据索引的建立,实质就是基于一些字符串进行哈希的过程。生物数据,特别是基因数据,数据索引的建立、基于索引的统计分析,两者都是生物数据分析的基础。如生物数据的聚类分类、生物数据的特征提取、信息挖掘都需要基于索引信息进行统计分析。以基因数据为代表的测序技术的飞速发展、第二代以及第三代测序技术的普及,生命科学领域进入了以爆发式的海量基因数据为特征的大数据时代。基因数据正在以12-18个月10倍以上超过摩尔定律的速度指数增长。早在2008年中英美德等国家就发起了“国际千人基因组计划”,该计划的数据总量高达200TB;在宏基因组研究领域,1克土壤样品测序后便可产生50TB的原始基因数据。然而当前传统的串行基因组数据分析方法或者单节点的并行分析以及索引方法已然不能满足以上各种应用对TB乃至PB级别的基因组数据分析需求,这就对生物大数据的索引及分析提出了巨大挑战。近年来出现了不少值得关注的单节点高效基于k-mer(长度为k的基因序列)频率计数基因组统计分析工具,其中也涉及了生物数据的索引。例如马里兰大学GMarcais设计的无锁哈希压缩存储的多线程并行k-mer频率计数工具Jellyfish[MG,KingsfordC.Afast,lock-freeapproachforefficientparallelcountingofoccurrencesofk-mers[J].Bioinformatics,2011,27(6):764],该无锁哈希策略加快了索引建立的过程,但是却牺牲了大量的内存开销;芝加哥大学PMelsted使用布隆过滤器开发的BFCounter[MelstedPPritchardJonathanK.Efficientcountingofk-mersinDNAsequencesusingabloomfilter[J].BMCBioinformatics,12,1(2011-08-10),2011,12(1):1-7],该软件可对出现频次大于1的k-mer进行计数,该软件也对使用布隆过滤器产生的假阳性k-mer进行了分析,发现节省了超过50%以上的内存消耗。波兰罗兹技术大学S.Deorowicz开发了基于磁盘的k-mer频率统计分析软件KMC[DeorowiczS,DebudajgrabyszA,GrabowskiS.Disk-basedk-mercountingonaPC[J].BMCBioinformatics,2013,14(1):160]和KMC2[DeorowiczS,KokotM,GrabowskiS,andDebudaj-GrabyszA.KMC2:fastandresource-frugalk-mercounting.Bioinformatics,31(10):1569-1576,May2015]。法国雷恩第一大学R.Chikhi通过基于小内存和集成磁盘设计了k-mer计数器DSK[RizkG,LavenierD,ChikhiR.DSK:k-mercountingwithverylowmemoryusage[J].Bioinformatics,2013,29(5):652-3],KMC2相比于DSK,是一个可调整内存大小和计算速度的高效工具。随着基因测序技术的快速发展和测序成本的不断降低,生物信息分析研究的数据越来越多,计算模型也越来越复杂。普通个人计算机以及传统串行计算方式已经无力解决生物信息分析中的大规模数据处理问题。为了解决生物信息分析中对计算能力和计算时间的高要求,必须借助高性能计算技术和超级计算机集群系统。然而,上述的现有基于生物大数据的索引及统计分析工具大都是单节点并行,扩展性方面的表现都较差,在处理TB-PB级数据时存在诸多问题,并且由于这些工具在设计之初并没有考虑到超大规模的生物数据的处理,所以耗时较长,而且当数据量过大时易出现运行出错、异常、终止等问题。
技术实现思路
本申请提供了一种生物数据的索引方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。为了解决上述问题,本申请提供了如下技术方案:一种生物数据的索引方法,包括以下步骤:步骤a:对生物数据进行并行化输入,并对输入的生物数据进行质量筛选;步骤b:对质量筛选后的生物数据进行k-mer提取;步骤c:k-mer提取完成后,通过两级哈希分别将每个k-mer散列到对应的处理器上,得到生物数据的分布式哈希索引。本申请实施例采取的技术方案还包括:在所述步骤a中,所述对生物数据进行并行化输入具体为:获取集群中处理器的个数,设进程的个数为P,生物数据的大小为S,每个进程所需输入的生物数据大小为S/P,根据每个进程所需输入的生物数据的大小得到每个进程的数据起始地址。本申请实施例采取的技术方案还包括:在所述步骤b中,所述对质量筛选后的生物数据进行k-mer提取具体为:每个进程分别对并行化I/O模块输入的数据进行reads到k-mer的并行提取,用一个长度为k的窗口对长度为m的reads从第一个位置开始扫描,直到窗口末端与reads的末端重合。本申请实施例采取的技术方案还包括:在所述步骤c中,所述通过两级哈希分别将每个k-mer散列到对应的处理器上具体为:k-mer提取完成后,根据k-mer的值调用一个卷积哈希函数Hash_func进行第一级哈希散列,分别找到每个k-mer映射到对应处理器的ProcID;完成第一级哈希后,每个进程分别对各自的k-mer进行第二级哈希,形成生物数据的分布式哈希索引。本申请实施例采取的技术方案还包括:所述步骤c后还包括:根据分布式哈希索引统计k-mer的出现频率进行生物数据的统计分析。本申请实施例采取的另一技术方案为:一种生物数据的索引系统,包括:数据输入模块:用于对生物数据进行并行化输入;质量控制模块:用于对输入的生物数据进行质量筛选;k-mer提取模块:用于对质量筛选后的生物数据进行k-mer提取;哈希模块:用于在k-mer提取完成后,通过两级哈希分别将每个k-mer散列到对应的处理器上,得到生物数据的分布式哈希索引。本申请实施例采取的技术方案还包括:所述数据输入模块对生物数据进行并行化输入具体为:获取集群中处理器的个数,设进程的个数为P,生物数据的大小为S,每个进程所需输入的生物数据大小为S/P,根据每个进程所需输入的生物数据的大小得到每个进程的数据起始地址。本申请实施例采取的技术方案还包括:所述k-mer提取模块对质量筛选后的生物数据进行k-mer提取具体为:每个进程分别对并行化I/O模块输入的数据进行reads到k-mer的并行提取,用一个长度为k的窗口对长度为m的reads从第一个位置开始扫描,直到窗口末端与reads的末端重合。本申请实施例采取的技术方案还包括:所述哈希模块包括第一哈希单元和第二哈希单元;所述第一哈希单元用于在k-mer提取完成后,根据k-mer的值调用一个卷积哈希函数Hash_func进行第一级哈希散列,分别找到每个k-mer映射到对应处理器的ProcID;所述第二哈希单元用于在完成第一级哈希后,每个本文档来自技高网
...

【技术保护点】
1.一种生物数据的索引方法,其特征在于,包括以下步骤:步骤a:对生物数据进行并行化输入,并对输入的生物数据进行质量筛选;步骤b:对质量筛选后的生物数据进行k-mer提取;步骤c:k-mer提取完成后,通过两级哈希分别将每个k-mer散列到对应的处理器上,得到生物数据的分布式哈希索引。

【技术特征摘要】
1.一种生物数据的索引方法,其特征在于,包括以下步骤:步骤a:对生物数据进行并行化输入,并对输入的生物数据进行质量筛选;步骤b:对质量筛选后的生物数据进行k-mer提取;步骤c:k-mer提取完成后,通过两级哈希分别将每个k-mer散列到对应的处理器上,得到生物数据的分布式哈希索引。2.根据权利要求1所述的生物数据的索引方法,其特征在于,在所述步骤a中,所述对生物数据进行并行化输入具体为:获取集群中处理器的个数,设进程的个数为P,生物数据的大小为S,每个进程所需输入的生物数据大小为S/P,根据每个进程所需输入的生物数据的大小得到每个进程的数据起始地址。3.根据权利要求2所述的生物数据的索引方法,其特征在于,在所述步骤b中,所述对质量筛选后的生物数据进行k-mer提取具体为:每个进程分别对并行化I/O模块输入的数据进行reads到k-mer的并行提取,用一个长度为k的窗口对长度为m的reads从第一个位置开始扫描,直到窗口末端与reads的末端重合。4.根据权利要求3所述的生物数据的索引方法,其特征在于,在所述步骤c中,所述通过两级哈希分别将每个k-mer散列到对应的处理器上具体为:k-mer提取完成后,根据k-mer的值调用一个卷积哈希函数Hash_func进行第一级哈希散列,分别找到每个k-mer映射到对应处理器的ProcID;完成第一级哈希后,每个进程分别对各自的k-mer进行第二级哈希,形成生物数据的分布式哈希索引。5.根据权利要求1至4任一项所述的生物数据的索引方法,其特征在于,所述步骤c后还包括:根据分布式哈希索引统计k-mer的出现频率进行生物数据的统计分析。6.一种生物数据的索引系统,其特征在于,包括:数据输入模块:用于对生物数据进行并行化输入;质量控制模块:用于对输入的生物数据进行质量筛选;k-mer提取模块:用于对质量筛选后的生物数据进行k-mer提取;哈希模块:用于在k-mer提取完成后,通过两级哈希分别将每个k-mer散...

【专利技术属性】
技术研发人员:葛健秋郭宁朱玉寰魏彦杰冯圣中方晓东
申请(专利权)人:深圳先进技术研究院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1