基因压缩多流数据并行写入及读取方法、系统及介质技术方案

技术编号:23932095 阅读:47 留言:0更新日期:2020-04-25 01:50
本发明专利技术公开了一种基因压缩多流数据并行写入方法,包括以下步骤:1)接收写入请求后,创建基因数据存储文件,所述基因数据存储文件包括文件头和文件体,所述文件头保存有文件类型标识符和文件版本号,在文件体创建根控制块和子控制块,分别在根控制块和/或子控制块下创建字节流,所述字节流与待接收的基因压缩多流数据的数据流一一对应;2)接收基因压缩多流数据,并将数据流写入对应字节流的写缓存,若任意一条字节流的写缓存达到预设阈值则生成写入任务并放入队列,且通过读写线程异步执行队列中的写入任务将写缓存数据写入基因数据存储文件。本发明专利技术在保证了对基因压缩多流数据读写高性能的同时,也支持多条顺序的数据流的随机读取。

Parallel writing and reading methods, systems and media of gene compression multi stream data

【技术实现步骤摘要】
基因压缩多流数据并行写入及读取方法、系统及介质
本专利技术涉及一种基因组数据的存储及处理方法,尤其涉及一种基因压缩多流数据并行写入及读取方法、系统及介质。
技术介绍
自2010年以来,随着新一代测序技术的发展,更大数量级的基因组数据产出日渐增加,从GB、TB级到PB、EB级。例如,Illumina公司最新的推出的HISEQX10测序仪3天内测序约1.8TB的测序数据。大规模的基因组数据的分析和管理正在成为推动生命科学创新的重要源泉。由于基因测序规模庞大,其传输与存储都需要消耗大量的时间与经济成本,制约了生物大数据发展。GTZ压缩器是Genetalks公司的GTXLab实验室开发的通用数据压缩打包软件,用于对任意基因测序数据的目录进行高压缩率的快速打包形成一个压缩数据文件,以方便存储档与远程传输、校验。对于X10测序仪的FASTQ文件数据,GTZ压缩器在压缩过程中会把根据索引行、序列行、质量行、+号行自身数据的特性分别采用压缩算法进行压缩会并行产生多条压缩后的数据流,形成基因压缩多流数据。但是通常对基因压缩多流数据的读写操作,只能按顺序串行的方式逐一进行,存在读写操作效率低下的问题。并且,传统的压缩文件格式(例如,gzip,zip格式等),并不支持对其存储内容的随机读取,这也是影响基因行业相关分析流程的性能瓶颈。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种基因压缩多流数据并行写入及读取方法、系统及介质。本专利技术在保证了对基因压缩多流数据读写高性能的同时,也针对基因压缩多流数据内容的处理,提供了足够的灵活性。为解决上述技术问题,本专利技术提出的技术方案为:一种基因压缩多流数据并行写入方法,包括以下步骤:1)接收写入请求后,创建基因数据存储文件,所述基因数据存储文件包括文件头和文件体,所述文件头保存有文件类型标识符和文件版本号,在文件体创建根控制块和子控制块,分别在根控制块和/或子控制块下创建字节流,所述字节流与待接收的基因压缩多流数据的数据流一一对应;2)接收基因压缩多流数据,并将数据流写入对应字节流的写缓存,若任意一条字节流的写缓存达到预设阈值则生成写入任务并放入队列,且通过读写线程异步执行队列中的写入任务将写缓存数据写入基因数据存储文件。进一步的,所述基因数据存储文件包括用于存储根控制块、子控制块以及字节流的数据的块文件、用于作为写缓存中预设阈值的最大块写入大小。进一步的,所述根控制块、子控制块分别包括用于保存结构信息的块流,所述字节流包括用于存储数据的数据块流、用于存储数据块流起始地址的原信息块流,所述结构信息包括所有子控制块块流的地址、子控制块的内容标识、所有字节流原信息块流的地址,所述根控制块、子控制块的块流、字节流的原信息块流和数据块流分别存储于块文件中,所述块文件还包括用于进行异步读写操作的读写线程池。进一步的,所述块流、原信息块流和数据块流分别包括二进制块和用于读取块文件中二进制块的块文件指针,所述二进制块包括用于保存数据的数据区、用于指示数据区长度的数据大小以及用于指示下一个二进制块的下一个二进制块地址。进一步的,步骤2)中生成写入任务并放入队列具体是指生成写入任务放入读写线程池的队列中,通过读写线程池中的读写线程以块文件为单位执行队列中的写入任务将写缓存数据写入基因数据存储文件。进一步的,所述执行队列中的写入任务将写缓存数据写入基因数据存储文件具体步骤包括:2a)选取读写线程池的队列前端的写入任务作为当前写入任务;2b)将当前写入任务中的数据组成当前二进制块,设置当前二进制块的下一个二进制块地址为0,当前二进制块的数据区为当前写入任务中的数据,当前二进制块的数据大小为当前二进制块的数据区长度;2c)在块文件中设置偏移指针,移动偏移指针到最后,将偏移值作为当前二进制块的起始地址;2d)查找当前写入任务对应的字节流的数据块流,将数据块流的尾部二进制块的下一个二进制块地址修改为当前数据块的起始地址;2e)将当前二进制块按照起始地址写入块文件中;2f)判断读写线程池中的写入任务是否读取完毕,是则结束并退出,否则返回步骤2a)。本专利技术还提供一种基因压缩多流数据并行读取方法,包括以下步骤:S1)获取基因数据存储文件,判断文件类型标识符和文件版本号是否正确,是则进入下一步,否则报错并退出;S2)根据基因数据存储文件中根控制块、子控制块和字节流的信息创建所有控制块和字节流;S3)根据控制块块流中的内容获取想要读取的字节流,根据字节流的原信息块流中的内容指定想要读取的数据,分别读取目标字节流的指定数据。进一步的,步骤S3)包括以下步骤:S3.1)查询所有控制块的块流中的结构信息,选择具有指定内容的控制块;S3.2)针对所选取的控制块,查询对应字节流的原信息块流的内容,选择具有指定数据的字节流;S3.3)调用读数据操作函数,分别读取所选取的字节流中的指定数据及数据长度。本专利技术还提供一种基因压缩多流数据并行写入系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行上述基因压缩多流数据并行写入方法的步骤,或被编程或配置以执行上述基因压缩多流数据并行读取方法的步骤,或被编程或配置以执行上述基因压缩多流数据并行写入方法及上述基因压缩多流数据并行读取方法的步骤。本专利技术还提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行上述基因压缩多流数据并行写入方法的计算机程序,或存储有被编程或配置以执行上述基因压缩多流数据并行写入方法的计算机程序。与现有技术相比,本专利技术的优点在于:本专利技术能够实现针对基因测序文件的多流数据的并行读/写,从而将压缩过程中,并行产生的,有序的多个数据流同时汇入一个压缩数据文件。它具有读写操作效率高的优点,而且解压过程支持多条顺序的数据流的随机读取。附图说明图1为本专利技术实施例中将多流数据写入文件的原理示意图。图2为本专利技术实施例中将多流数据写入文件的流程示意图。图3为本专利技术实施例中基因数据存储文件(多流文件)的结构示意图。图4为本专利技术实施例中块文件的结构示意图。图5为本专利技术实施例中单向二进制块链表的结构示意图。图6为本专利技术实施例中块流的结构示意图。图7为本专利技术实施例中控制块的结构示意图。图8为本专利技术实施例中字节流的结构示意图。图9为本专利技术实施例中基因数据存储文件的文件头结构示意图。图10为本专利技术实施例中根控制块的块流示意图。图11为本专利技术实施例中子控制块的块流示意图。图12为本专利技术实施例中从文件中读取多流数据的原理示意图。图13为本专利技术实施例中从文件中读取多流数据的流程示意图。图14为本专利技术实施例中读数据操作函数的执行步骤流程示意图。具体实施方式以下结合说明书附图和具体优选的实施例对本本文档来自技高网...

【技术保护点】
1.一种基因压缩多流数据并行写入方法,其特征在于,包括以下步骤:/n1)接收写入请求后,创建基因数据存储文件,所述基因数据存储文件包括文件头和文件体,所述文件头保存有文件类型标识符和文件版本号,在文件体创建根控制块和子控制块,分别在根控制块和/或子控制块下创建字节流,所述字节流与待接收的基因压缩多流数据的数据流一一对应;/n2)接收基因压缩多流数据,并将数据流写入对应字节流的写缓存,若任意一条字节流的写缓存达到预设阈值则生成写入任务并放入队列,且通过读写线程异步执行队列中的写入任务将写缓存数据写入基因数据存储文件。/n

【技术特征摘要】
1.一种基因压缩多流数据并行写入方法,其特征在于,包括以下步骤:
1)接收写入请求后,创建基因数据存储文件,所述基因数据存储文件包括文件头和文件体,所述文件头保存有文件类型标识符和文件版本号,在文件体创建根控制块和子控制块,分别在根控制块和/或子控制块下创建字节流,所述字节流与待接收的基因压缩多流数据的数据流一一对应;
2)接收基因压缩多流数据,并将数据流写入对应字节流的写缓存,若任意一条字节流的写缓存达到预设阈值则生成写入任务并放入队列,且通过读写线程异步执行队列中的写入任务将写缓存数据写入基因数据存储文件。


2.根据权利要求1所述的基因压缩多流数据并行写入方法,其特征在于,所述基因数据存储文件包括用于存储根控制块、子控制块以及字节流的数据的块文件、用于作为写缓存中预设阈值的最大块写入大小。


3.根据权利要求2所述的基因压缩多流数据并行写入方法,其特征在于,所述根控制块、子控制块分别包括用于保存结构信息的块流,所述字节流包括用于存储数据的数据块流、用于存储数据块流起始地址的原信息块流,所述结构信息包括所有子控制块块流的地址、子控制块的内容标识、所有字节流原信息块流的地址,所述根控制块、子控制块的块流、字节流的原信息块流和数据块流分别存储于块文件中,所述块文件还包括用于进行异步读写操作的读写线程池。


4.根据权利要求3所述的基因压缩多流数据并行写入方法,其特征在于,所述块流、原信息块流和数据块流分别包括二进制块和用于读取块文件中二进制块的块文件指针,所述二进制块包括用于保存数据的数据区、用于指示数据区长度的数据大小以及用于指示下一个二进制块的下一个二进制块地址。


5.根据权利要求4所述的基因压缩多流数据并行写入方法,其特征在于,步骤2)中生成写入任务并放入队列具体是指生成写入任务放入读写线程池的队列中,通过读写线程池中的读写线程以块文件为单位执行队列中的写入任务将写缓存数据写入基因数据存储文件。


6.根据权利要求5所述的基因压缩多流数据并行写入方法,其特征在于,所述执行队列中的写入任务将写缓存数据写入基因数据存储文件具体步骤包括:
2a)选取读写线程池的队列前端的写入任务作为当前写入任务;
2b)将当前写入任务中的数据组成当前二...

【专利技术属性】
技术研发人员:李根冯博伦徐霞丽黄能超唐俊翔毛海波蒋艳凰马丑贤王振国
申请(专利权)人:人和未来生物科技长沙有限公司
类型:发明
国别省市:湖南;43

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

1