一种基于双向快速索引的多级临床基因组变异数据存储方法

文档序号:1557897 发布日期:2020-01-21 浏览:21次 >En<

阅读说明:本技术 一种基于双向快速索引的多级临床基因组变异数据存储方法 (Multistage clinical genome variation data storage method based on bidirectional rapid indexing ) 是由 李昊旻 段会龙 舒强 董聪 吴鼎文 于 2019-09-02 设计创作,主要内容包括:本发明公开了一种基于双向快速索引的多级临床基因组变异数据存储方法,包括:一级存储,建立文件索引数据表,依据所述文件索引数据表存储原始的VCF文件;二级存储,依据原始的VCF文件结构和所述文件索引数据表中的上下文信息,将原始的VCF文件转换并存储为数据库表;三级存储,建立患者-变异双向索引机制,其中第一索引以患者为主键,每个患者主键对应一个变异长二进制数用于索引所有已定义的变异,第二索引以变异为主键,每个变异主键对应一个患者长二进制数用于索引所有的患者,依据所述患者-变异双向索引机制进行数据存储。本发明可快速获取所需的患者信息和变异信息,显著提高信息检索效率。(The invention discloses a multistage clinical genome variation data storage method based on bidirectional rapid indexing, which comprises the following steps: the method comprises the steps of primary storage, establishing a file index data table, and storing an original VCF file according to the file index data table; secondary storage, converting and storing the original VCF file into a database table according to the original VCF file structure and the context information in the file index data table; and three-level storage, namely establishing a patient-variation bidirectional index mechanism, wherein the first index takes patients as primary keys, each primary key of the patients corresponds to one variation long binary number for indexing all defined variations, the second index takes variations as primary keys, each primary key of the variations corresponds to one patient long binary number for indexing all patients, and data storage is carried out according to the patient-variation bidirectional index mechanism. The invention can quickly acquire the required patient information and the variation information and obviously improve the information retrieval efficiency.)

一种基于双向快速索引的多级临床基因组变异数据存储方法

技术领域

本发明涉及数据存储技术领域,具体涉及一种基于双向快速索引的多级临床基因组变异数据存储方法。

背景技术

基因组测序是一种新型基因检测技术,能够从血液或唾液中分析测定基因全序列,预测罹患多种疾病的可能性、个体的行为特征及行为合理。基因测序技术能锁定个人病变基因,提前预防和治疗。

如今,基因组测序越来越快的速度和逐步降低的成本,促进了精准医学的发展,越来愈多的基因测序数据开始服务于临床的诊断、治疗方案的选择等服务,特别是在遗传疾病、肿瘤治疗等方面发挥着越来越重要的作用。

基因组测序技术产生了多种全新的临床数据类型。目前,基于新一代测序技术的基因检测会生成各种格式的文件,比如测序结果FASTQ、参考比对文件BAM以及变异文件VCF等,其中服务于临床的主要是VCF文件。

VCF是用于描述SNP(单个碱基上的变异),INDEL(***缺失标记)和SV(结构变异位点)结果的文本文件,大小通常在500~750M。目前,这些变异结果服务于临床遗传咨询师生成临床报告,但是这些数据通常以文件形式存储,缺乏采用合适的方式进行跨病人的检索、统计和再利用的能力。

为解决这些问题,通常需要将VCF文件导入到传统数据库中,但是如果按照VCF格式本身的结构存储到传统的关系型数据库结构中服务于数据检索和统计,面临的一个比较大的问题是:由于每一个VCF文件可能包含了数万到数十万的条目,伴随临床测序对象的增加,当系统中包含了数万患者的情况时,单个表的行数通常会很容易突破上亿条目,这样规模的表数据在查询效率上将会越来越差甚至不可用。

然而,在临床广泛开展测序之后,通常需要管理的患者数量每年都可能突破上述数量,因此传统VCF表结构化的直接数据表存储将会变得不可行。

为此需要提出另外一种长期可用的、高效的、能够实现快速的跨病人检索和统计能力的基因组变异数据的存储方案,并以此来构建能够服务临床的基因组归档系统。

多级存储模式可利用不同的存储形式和索引结构实现不同应用场景下的高效的检索和利用,可应用于临床基因组变异数据的存储中,提高数据服务的效率。

发明内容

针对本领域存在的不足之处,本发明提供了一种基于双向快速索引的多级临床基因组变异数据存储方法,可快速获取所需的患者信息和变异信息,显著提高信息检索效率。

一种基于双向快速索引的多级临床基因组变异数据存储方法,包括:

一级存储,建立文件索引数据表,依据所述文件索引数据表存储原始的VCF文件;

二级存储,依据原始的VCF文件结构和所述文件索引数据表中的上下文信息,将原始的VCF文件转换并存储为数据库表;

三级存储,建立患者-变异双向索引机制,其中第一索引以患者为主键,每个患者主键对应一个变异长二进制数用于索引所有已定义的变异,第二索引以变异为主键,每个变异主键对应一个患者长二进制数用于索引所有的患者,依据所述患者-变异双向索引机制进行数据存储。

作为优选,所述二级存储设定为有限时段或有限案例模式,超过设定时段长度或案例数量后,自动清除超期或超量的数据。

作为优选,所述患者-变异双向索引机制采用两个数据表,分别为以患者为主索引的患者数据表和以变异为主索引的变异数据表;

所述患者数据表包含患者的姓名、性别和出生日期,并对应一个长二进制数的变异索引字段;

所述变异数据表包含变异类型和基因组定位,并对应一个长二进制数的患者索引字段。

作为优选,所述患者主键和变异主键均采用整型数据,所述患者-变异双向索引机制采用二进制数的bit(位)为标识;

所述变异索引字段中的每一个bit代表一个已定义的变异;

所述患者索引字段中的每一个bit代表一个患者。

作为优选,在所述变异索引字段中的每一个bit上,0代表患者不具有该变异,1代表患者具有该变异;

在所述患者索引字段中的每一个bit上,0代表变异没有发生在该患者上,1代表变异发生在该患者上。

作为优选,将所述变异索引字段中的任意一个bit转换为整型数据,对应至与之相等的变异主键后,获取该变异的信息;

将所述患者索引字段中的任意一个bit转换为整型数据,对应至与之相等的患者主键后,获取该患者的信息。

作为优选,根据已定义的变异的数量确定变异索引字段的长度;

根据患者数量确定患者索引字段的长度。

作为优选,所述一级存储采用同步模式,所述二级存储和三级存储采用异步后台存储模式。

本发明与现有技术相比,主要优点包括:

(1)本发明可实现快速地跨病人检索、统计,数据表的规模相对于用原始VCF条目来说规模缩小数千倍到数万倍,可以基本适应广泛临床应用的需求。

(2)本发明的患者-变异双向索引模式返回的仅是一个长二进制数,可以显著地提高查询的效率以及查询结果的传输效率,从而提供更好的数据服务。

(3)本发明在接受存储服务时除一级采用同步模式之外,后续的存储都采用异步后台存储模式,不需要用户端停留响应,保障该系统的用户体验。

附图说明

图1为本发明的基于双向快速索引的多级临床基因组变异数据存储方法的流程示意图;

图2为测试例中二级储存方式和实施例的以患者为核心的变异索引方式查询效率对比图。

具体实施方式

下面结合附图及具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。下列实施例中未注明具体条件的操作方法,通常按照常规条件,或按照制造厂商所建议的条件。

实施例

本实施例的基于双向快速索引的多级临床基因组变异数据存储方法采用多级存储模式,利用不同的存储形式和索引结构实现不同应用场景下的高效的检索和利用,如图1所示,具体包括:

一级存储,保存原始的VCF文件并建立文件索引数据表,说明与该基因检测相关的上下文信息以及文件存储路径,主要服务于针对一次检查的整体文件数据分享服务。

二级存储,利用VCF文件本身结构和检查上下文信息,实现从文本文件到数据库表的转换,可以方便地检索其中的变异信息,主要是服务针对个体基因检测报告过程中各个变异位点的检索。

二级存储的缺点是这样的存储方式无法实现大规模人群存储。因此,二级存储设定为短期(比如1年)或者有限案例(比如小于1000人)的模式,超过时间或者案例之后二级存储自动清除超期的、超量的案例数据,以维护一个可用的查询效率。

三级存储,采用患者-变异双向索引机制,其中第一索引以患者为主键,每个患者主键对应一个变异长二进制数用于索引所有已定义的变异,第二索引以变异为主键,每个变异主键对应一个患者长二进制数用于索引所有的患者。

患者-变异双向索引机制中,两个索引表的条目分别对应患者数和变异数,这样对应的数据表的规模相对于用原始VCF条目来说规模分别缩小数千倍到数万倍,可以基本适应广泛临床应用的需求。

患者-变异双向索引机制采用两个数据表,分别为以患者为主索引的患者数据表和以变异为主索引的变异数据表;

患者数据表包含患者的姓名、性别和出生日期等信息,并对应一个长二进制数的变异索引字段;

变异数据表包含变异类型和基因组定位等信息,并对应一个长二进制数的患者索引字段。

患者主键和变异主键均采用整型数据,患者-变异双向索引机制采用二进制数的bit为标识;

变异索引字段中的每一个bit代表一个已定义的变异,其中0代表患者不具有该变异,1代表患者具有该变异;

患者索引字段中的每一个bit代表一个患者,其中0代表变异没有发生在该患者上,1代表变异发生在该患者上。

根据已定义的变异的数量确定变异索引字段的长度,根据患者数量确定患者索引字段的长度。人类目前SNP数量预估在300万左右,因此仅需要一个1MB(8388608bits)的索引数就可以满足目前的变异数量;同时以变异为核心的索引表中,1MB长度的二进制数可以索引的患者数量为8百万以上,满足大多数机构或者区域覆盖的人口规模。即使按全球人口75亿规模来看,1GB大小的索引字段也可以满足。目前多数的数据库系统中都允许长二进制数据块的大小通常为2或者4GB,因此可以预见采用这样的双向索引机制可以满足现有技术条件下对于人类基因组变异数据的存储、快速检索和统计。

将变异索引字段中的任意一个bit转换为整型数据,对应至与之相等的变异主键后,获取该变异的信息;

将患者索引字段中的任意一个bit转换为整型数据,对应至与之相等的患者主键后,获取该患者的信息。

利用上述患者-变异双向索引机制实现某些场景的快速检索。比如以变异为核心的患者检索,通过一次变异主键检索获得一个对应的患者长二进制数,如下面所示20bits的数:

1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0

其中每一位(bit)分别代表一个患者,通过位读取,可以快速的了解该变异在当前测试群体中的发生率为50%。而在传统存储模式下,需要获取20个患者的对应变异数据集再进行循环操作来计算该数值。

此外,如果需要定位这些患者,那么对应的位可以转变为一个整型数字(比如右边第一个为“1”的位,转为整型数字4),这个整型数字对应到患者主键,可以快速获取该患者的具体信息。

比如在以患者为核心的变异检索模式下,通过一个患者主键(比如上面提到的主键为4的患者),可以获得一个对应的变异长二进制数,如下面所示对应的30bits的数:

0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0

其中每一位代表了已定义的一个变异。因此,基于这个二进制数可以快速计算该患者发生的变异的数量,同时每一个位可以快速转变为整型数字(比如右边第1个为“1”的位可以转变为8),这个整型数字对应到一个变异主键,可以快速地获取对应的变异信息。

在一些联合查询场景下,本实施例的患者-变异双向索引机制也具有更好的效果。比如查询某个患者是否具有某个特定变异时,可以获取该患者主索引对应的变异长二进制数,然后通过一个快速的位运算来判断该患者是否具有该变异,运算机制为:在患者对应的变异长二进制数中,与该变异主键转变的二进制数相对应的位上等于0,代表患者没有该变异;与该变异主键转变的二进制数相对应的位上大于0,代表患者具有该变异。

另外,也可通过获取变异主索引对应的患者长二进制数,然后通过相似的快速位运算判断这个变异是否发生在该患者身上,运算机制为:在变异对应的患者长二进制数中,与该患者主键转变的二进制数相对应的位上等于0,代表变异没有发生在该患者上;与该患者主键转变的二进制数相对应的位上大于0,代表变异发生在该患者上。

三级存储的患者-变异双向索引机制具有更高的扩展能力,由于可以定义的变异数量是有限的,预计大概300万,通常在一个群体中这个数量会小于上述值,因此实际实施过程中变异主索引表的量级不会超过300万;另外患者的数量通常在一个机构中不超过百万级别,特别是开展基因测序的患者通常不会达到这样的级别,因此两个数据表的规模都控制在百万级别以下,所以这两个表都具有很好的检索效果。传统模式下同样的数据如果按原始VCF一个患者一个患者的累积,对应的数据条目通常会超过亿级,带来数据检索性能的下降,同时带来检索结果内容也会很大,比如检索一个患者的所有变异通常会返回数十万条结果,而采用患者-变异双索引模式返回的仅是一个长二进制数。因此查询的效率以及查询之后传输结果的效率都会提高很多,能够提供更好的数据服务。

本实施例的多级存储采用异步存储来解决存储效率问题。相比直接一级存储的文件存储,二级存储采用数据表存储时需要解析VCF文件然后逐条***到数据库中,因此二级存储需要花费较长的时间(通常在完成文件上传之后还需要几十秒来解析和***数据);而三级存储过程需要更多的时间(通常需要几分钟),更新过程如下面的伪代码:

Figure BDA0002188276680000071

从上面的过程来看,一级存储的效率最高、二级存储次之,三级存储最慢,因此在接受存储服务时除一级采用同步模式之外,后续的存储都采用异步后台存储模式,不需要用户端停留响应。因此服务对于用户来说就是上传数据文件的过程,上传成功之后无需等待后续的二级和三级存储,因此可以保障改系统的用户体验,后台会根据一级存储的信息来启动其他的后台线程来分别完成二级和三级存储部分的数据处理。

测试例

本实验以300余份VCF文件为测试案例,包含变异位点总计2000多万条,分别采用二级存储方式和实施例的以患者为核心的变异索引的三级存储方式进行存储。在存储过程中分别以二级存储方式变异位点数量级达4万、10万、50万、100万、250万、500万、1000万、2000万为测试点,利用MySQL自带的压力测试工具MySQLSlap分别对两种存储方式进行查询效率测试,在保证不存在数据库缓存和相同测试环境的前提下,查询多个病人的变异情况并重复10次取平均值得到数据库不同数据量下两种方式检索效率对比图。

MySQLSlap是MySQL5.1.4版本开始官方提供的压力测试工具,可通过模拟客户端访问MySQL进行测试,同时提供较详细的SQL执行数据性能报告,语法简单,使用方便,参数配置灵活。本测试实验自定义检索语句进行测试,其基本测试参数配置如下:

mysqlslap--delimiter=";"--concurrency=1--iterations=10

-create-schema="clinical_gene_test"--query=**.sql-uroot-p***。

测试结果如图2所示,可以看出,二级存储方式随着变异位点数量级的递增,检索时间急剧递增,相对而言,实施例的三级存储方式检索时间曲线较为平缓,因为三级存储方式一条记录包含几万至几十万的变异位点信息,最终总记录也不过300余条,检索效率曲线比较平缓。当数据库中变异位点数量级在100万之前,两种存储方式的检索执行时间相差不大并且三级存储方式效率略高;当变异位点数量级达到500万时,二级存储方式检索时间明显高于三级存储方式;当变异位点数据量到达2000万条时,二级存储方式检索时间已经是三级存储方式检索时间的22.8倍,并且按照曲线增长趋势二级存储方式检索效率越来越低甚至不可用。

此外应理解,在阅读了本发明的上述描述内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用以实现智慧医疗的高端电子病历系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!