数据分区存储方法及装置与流程

文档序号:23659182发布日期:2021-01-15 13:56阅读:102来源:国知局
数据分区存储方法及装置与流程

本发明涉及生物信息技术领域,具体而言,涉及一种数据分区存储方法及装置。



背景技术:

随着生命科学和基因测序技术的快速发展,测序成本的超摩尔定律下降,数据产出能力大幅提高。随着科学研究的深入,对癌症和遗传病等疾病的诊断、治疗和筛查,不仅只是关注单基因对疾病的影响,还包含复杂的多基因对疾病的作用机制,越来越多的国家发起了应用人类全基因组测序进行人类健康的研究。人类的全基因组的长度30亿碱基,存储一个人的30x的wgs(全基因组测序)数据,大概就需要大于90g的硬盘空间。所以随着测序样本增加,积累的数据很容易达到pb(拍字节)级别。人类对于疾病诊断、治疗和筛查,不仅仅关注单个个体本身的变异,还需要通过收集一个群体的全基因组测序数据,建立生物数据库,以便研究人群中各变异的分布情况,以及突变对疾病治疗和诊断的影响。

最早的分析系统是shareeverything(共享架构)单机形式,为了解决海量数据分析诉求和降低系统建设成本,两种全新的架构系统应运而生,一种是基于通用服务器的sharenothing(无共享)架构,最典型的代表是基于数据库发展的mpp(massivelyparallelprocessing,大规模并行处理)系统;另一种是海量数据分析的hadoop大数据分析系统。mpp系统受限于单点瓶颈的架构设计,导致其进行海量数据时能力不足;而原生的hadoop系统由于一开始就瞄准pb/eb(exabytes;艾字节)级的数据,很好解决了海量数据分析问题。虽然建立以hadoop平台的生物大数据平台,可以很好的管理和存储这些数据,但是对数据的操作效率(如查询分析)较低。

而使用hive仓库的分区表,将数据结构化,并按某种规则进行分区,将数据分布式存储在不同的节点上,可以提高数据的利用效率。因此,可以搭建hadoop数据平台,hive数据仓库表以染色体或基因为分区条件建立分区表。

但是,上述通过搭建hadoop数据平台,以使hive数据仓库表以染色体或基因为分区条件建立分区表会引入新的问题,人类的基因组是二倍体,有22对常染色体,1对性染色体,及mt线粒体,由于25条染色体(1~22条常染色体,两条性染色体x,y,另线粒体mt,)的长度差异较大,如果是以染色体条件分区,有25个数据区,25个分区的数据的数据量有极大的差异。当然也可以按基因分区,因为基因长度大小不一,同样会存在数据量不均衡问题,而且单个表的基因分区数有6万多,会影响查询性能,由于hive本身对分区数据有限制,当然也是可以修改的,主要是因为namenode(管理文件系统的命名空间;hdfs集群有两类节点,namenode和多个datanode)节点的内存限制,如果分区数目很大,会影响namenode服务,进而影响一系列依赖于namenode的服务进程。所以要合理设置分区规则。另一方面基因的编码区约占基因组的2%,会缺失98%的非编码区域,不满足全基因测序结果数据的存储。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据分区存储方法及装置,以至少解决相关技术中人类全基因组变异检测结果数据在hive数据仓库分区数目过多或过少,以及分区数据量不均衡的技术问题。

根据本发明实施例的一个方面,提供了一种数据分区存储方法,包括:在预定数据仓库中初始化存储基因突变位点的分区表;根据多个基因突变位点中每一个基因突变位点对应的数据区间将所述分区表分为多个子区域;获取待存储的目标基因突变位点的起点数值和终点数值;基于所述目标基因突变位点的起点数值和终点数据将所述目标基因突变位点匹配并存储到所述分区表的一个或多个子区域中。

可选地,在在预定数据仓库中初始化存储基因突变位点的分区表之前,该数据分区存储方法还包括:搭建基于hadoop的大数据平台,其中,所述基于hadoop的大数据平台至少包括:预定数据仓库,计算引擎,查询系统。

可选地,在在预定数据仓库中初始化存储基因突变位点的分区表之后,该数据分区存储方法还包括:获取多个历史基因突变位点的起点位置和终点数值;基于所述多个历史基因突变位点的起点位置和终点位置将所述多个历史基因突变位点存储至所述分区表。

可选地,在在预定数据仓库中初始化存储基因突变位点的分区表之后,该数据分区存储方法还包括:获取基因组中每条染色体的长度信息;基于所述每条染色体的长度信息将所述染色体的标号以及长度信息转换成预定格式的数据结构。

可选地,获取待存储的目标基因突变位点的起点数值和终点数值,包括:获取与所述目标基因突变位点对应的基因组版本的基因组注释文件;通过所述基因组注释文件提取出所述目标基因突变位点的位置信息;基于所述目标基因突变位点的位置信息确定所述目标基因突变位点的起点数值和终点数值。

可选地,在基于所述目标基因突变位点的起点数值和终点数据将所述目标基因突变位点匹配并存储到所述分区表的一个或多个子区域中之后,该数据分区存储方法还包括:将所述目标基因突变位点的变异信息以及分区信息存储到所述分区表的预定区域中。

根据本发明实施例的另外一个方面,还提供了一种数据分区存储装置,包括:初始化单元,用于在预定数据仓库中初始化存储基因突变位点的分区表;划分单元,用于根据多个基因突变位点中每一个基因突变位点对应的数据区间将所述分区表分为多个子区域;第一获取单元,用于获取待存储的目标基因突变位点的起点数值和终点数值;存储单元,用于基于所述目标基因突变位点的起点数值和终点数据将所述目标基因突变位点匹配并存储到所述分区表的一个或多个子区域中。

可选地,该数据分区存储装置还包括:搭建单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之前,搭建基于hadoop的大数据平台,其中,所述基于hadoop的大数据平台至少包括:预定数据仓库,计算引擎,查询系统。

可选地,该数据分区存储装置还包括:第二获取单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之后,获取多个历史基因突变位点的起点位置和终点数值;所述存储单元,用于基于所述多个历史基因突变位点的起点位置和终点位置将所述多个历史基因突变位点存储至所述分区表。

可选地,该数据分区存储装置还包括:第三获取单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之后,获取基因组中每条染色体的长度信息;转换单元,用于基于所述每条染色体的长度信息将所述染色体的标号以及长度信息转换成预定格式的数据结构。

可选地,所述第一获取单元,包括:获取模块,用于获取与所述目标基因突变位点对应的基因组版本的基因组注释文件;提取模块,用于通过所述基因组注释文件提取出所述目标基因突变位点的位置信息;确定模块,用于基于所述目标基因突变位点的位置信息确定所述目标基因突变位点的起点数值和终点数值。

可选地,该数据分区存储装置还包括:所述存储单元,用于在基于所述目标基因突变位点的起点数值和终点数据将所述目标基因突变位点匹配并存储到所述分区表的一个或多个子区域中之后,将所述目标基因突变位点的变异信息以及分区信息存储到所述分区表的预定区域中。

根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的数据分区存储方法。

根据本发明实施例的另外一个方面,还提供了一种处理器,其特征在于,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述中任意一项所述的数据分区存储方法。

在本发明实施例中,采用在预定数据仓库中初始化存储基因突变位点的分区表;根据多个基因突变位点中每一个基因突变位点对应的数据区间将分区表分为多个子区域;获取待存储的目标基因突变位点的起点数值和终点数值;基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中,通过本发明实施例提供的数据分区存储方法,实现了根据基因组长度和基因的位置,将基因合理划分成不同的分区,生成满足预定条件的基因的目的,达到了提高分区数据量均衡性的技术效果,也提高了基因搜索查询效率的技术效果,进而解决了相关技术中人类全基因组变异检测结果数据在hive数据仓库分区数目过多或过少,以及分区数据量不均衡的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的数据分区存储方法的流程图;

图2是根据本发明实施例的数据在分布式节点上的存储示意图;

图3是根据本发明实施例图2中每个节点中数据块的分区方式的示意图;

图4是根据本发明实施例的数据分区存储装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种数据分区存储方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的数据分区存储方法的流程图,如图1所示,该数据分区存储方法包括如下步骤:

步骤s102,在预定数据仓库中初始化存储基因突变位点的分区表。

在该实施例中,预定数据仓库可以是hive数据仓库。

在一种可选的实施例中,在在预定数据仓库中初始化存储基因突变位点的分区表之前,该数据分区存储方法还包括:搭建基于hadoop的大数据平台,其中,基于hadoop的大数据平台至少包括:预定数据仓库,计算引擎,查询系统。

在该实施例中,可以搭建基于hadoop的大数据平台,该大数据平台可以包括但不限于:预定数据仓库(例如hive)、计算引擎(例如spark)、查询分析(例如impala)。

步骤s104,根据多个基因突变位点中每一个基因突变位点对应的数据区间将分区表分为多个子区域。

步骤s106,获取待存储的目标基因突变位点的起点数值和终点数值。

步骤s108,基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中。

由上可知,在本发明实施例中,可以在预定数据仓库中初始化存储基因突变位点的分区表;根据多个基因突变位点中每一个基因突变位点对应的数据区间将分区表分为多个子区域;获取待存储的目标基因突变位点的起点数值和终点数值;基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中,实现了根据基因组长度和基因的位置,将基因合理划分成不同的分区,生成满足预定条件的基因的目的,达到了提高分区数据量均衡性的技术效果,也提高了基因搜索查询效率的技术效果。

因此,通过本发明实施例提供的数据分区存储方法,解决了相关技术中人类全基因组变异检测结果数据在hive数据仓库分区数目过多或过少,以及分区数据量不均衡的技术问题。

在一种可选的实施例中,在在预定数据仓库中初始化存储基因突变位点的分区表之后,该数据分区存储方法还可以包括:获取多个历史基因突变位点的起点位置和终点数值;基于多个历史基因突变位点的起点位置和终点位置将多个历史基因突变位点存储至分区表。

在一种可选的实施例中,在在预定数据仓库中初始化存储基因突变位点的分区表之后,该数据分区存储方法还可以包括:获取基因组中每条染色体的长度信息;基于每条染色体的长度信息将染色体的标号以及长度信息转换成预定格式的数据结构。

在该实施例中,可以获取基因组的每条染色体的长度信息,转换成键值对数据结构,可以如下形式:{‘1’,24956422,‘2’,242193529……}。

在一种可选的实施例中,获取待存储的目标基因突变位点的起点数值和终点数值,包括:获取与目标基因突变位点对应的基因组版本的基因组注释文件;通过基因组注释文件提取出目标基因突变位点的位置信息;基于目标基因突变位点的位置信息确定目标基因突变位点的起点数值和终点数值。

在该实施例中,可以找到对应基因组版本的基因组注释文件gff,提取基因的位置信息,并按照染色体和基于的起始位置排序。

需要说明的是,在本发明实施例中,可以根据染色体的长度和基因的位置,划分区域,生成不同的分区和分区里的基因,可以根据分区里面的基因长度,调整分区的数目。如果设置分区里基因长度为20000碱基,分区数目大概为18000个;1-147245485:147381393为其中一个分区,1和47245485:147381393以‘-’连接,1表示1号染色体,47245485:147381393表示基因组区域的起始和终止位置。

在检查核对每个分区里的基因是否完整的包含在分区里,遍历分区里基因里基因的起始和终止位置,判断其是否在分区。

在一种可选的实施例中,在基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中之后,该数据分区存储方法还可以包括:将目标基因突变位点的变异信息以及分区信息存储到分区表的预定区域中。

在该实施例中,可以读取分区的信息结合样本中变异位点的位置,判断每个位点对应的分区,之后将位点的变异信息及分区信息存入hive分区表中。

例如,在该hive分区表中可以存储包括突变的位置信息、分区的信息以及突变基因数目等信息;另外,也可以在分区表的预定区域设置存储样本基本信息的表,例如,性别、年龄、所属产品、疾病状态等,可以以分区信息为:region=“1-147245485:147381393,执行sql查询语句,其中查询时间在4s左右。具体代码如下:

图2是根据本发明实施例的数据在分布式节点上的存储示意图,如图2所示,可以将基因变异数据分布式存储在不同的节点上(例如,节点1、节点2、节点3……节点n),从而可以提高数据存储的可靠性。

图3是根据本发明实施例图2中每个节点中数据块的分区方式的示意图,如图3所示,多个或单个基于和其基因组间区组成一个分区,分区中的基因可以部分重叠。

通过本发明实施例提供的数据分区存储方法,可以根据基于组长度和基因的位置,将基因组合理划分成不同分区,生成的分区满足以下条件:1)包含一个或多个完整的基因;2)分区中的基因长度在20000bp左右,从而使每个分区的数据量相对均匀的分布,提高实时计算的效率。

由上可知,在本发明实施例中,可以建立hadoop平台,为hive分区表,满足了存储数量级的要求,设计了新的分区方式,产生了合理的区分数目,减少了分区数量的不均衡。

实施例2

根据本发明实施例的另外一个方面,还提供了一种数据分区存储装置,图4是根据本发明实施例的数据分区存储装置的示意图,如图4所示,该数据分区存储装置可以包括:初始化单元41,划分单元43,第一获取单元45以及存储单元47。下面对该数据分区存储装置进行说明。

初始化单元41,用于在预定数据仓库中初始化存储基因突变位点的分区表。

划分单元43,用于根据多个基因突变位点中每一个基因突变位点对应的数据区间将分区表分为多个子区域。

第一获取单元45,用于获取待存储的目标基因突变位点的起点数值和终点数值。

存储单元47,用于基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中。

此处需要说明的是,上述初始化单元41,划分单元43,第一获取单元45以及存储单元47对应于实施例1中的步骤s102至s108,上述单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述单元作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,可以利用初始化单元在预定数据仓库中初始化存储基因突变位点的分区表;然后利用划分单元根据多个基因突变位点中每一个基因突变位点对应的数据区间将分区表分为多个子区域;再利用第一获取单元获取待存储的目标基因突变位点的起点数值和终点数值;以及利用存储单元基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中。通过本发明实施例提供的数据分区存储装置,实现了根据基因组长度和基因的位置,将基因合理划分成不同的分区,生成满足预定条件的基因的目的,达到了提高分区数据量均衡性的技术效果,也提高了基因搜索查询效率的技术效果,进而解决了相关技术中人类全基因组变异检测结果数据在hive数据仓库分区数目过多或过少,以及分区数据量不均衡的技术问题。

在一种可选的实施例中,该数据分区存储装置还包括:搭建单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之前,搭建基于hadoop的大数据平台,其中,基于hadoop的大数据平台至少包括:预定数据仓库,计算引擎,查询系统。

在一种可选的实施例中,该数据分区存储装置还包括:第二获取单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之后,获取多个历史基因突变位点的起点位置和终点数值;存储单元,用于基于多个历史基因突变位点的起点位置和终点位置将多个历史基因突变位点存储至分区表。

在一种可选的实施例中,该数据分区存储装置还包括:第三获取单元,用于在在预定数据仓库中初始化存储基因突变位点的分区表之后,获取基因组中每条染色体的长度信息;转换单元,用于基于每条染色体的长度信息将染色体的标号以及长度信息转换成预定格式的数据结构。

在一种可选的实施例中,第一获取单元,包括:获取模块,用于获取与目标基因突变位点对应的基因组版本的基因组注释文件;提取模块,用于通过基因组注释文件提取出目标基因突变位点的位置信息;确定模块,用于基于目标基因突变位点的位置信息确定目标基因突变位点的起点数值和终点数值。

在一种可选的实施例中,该数据分区存储装置还包括:存储单元,用于在基于目标基因突变位点的起点数值和终点数据将目标基因突变位点匹配并存储到分区表的一个或多个子区域中之后,将目标基因突变位点的变异信息以及分区信息存储到分区表的预定区域中。

实施例3

根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时控制计算机存储介质所在设备执行上述中任意一项的数据分区存储方法。

实施例4

根据本发明实施例的另外一个方面,还提供了一种处理器,其特征在于,处理器用于运行计算机程序,其中,计算机程序运行时执行上述中任意一项的数据分区存储方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1