[发明专利]一种DNA读序数据FASTQ文件并行压缩和解压缩方法有效
申请号: | 201310551802.7 | 申请日: | 2013-11-07 |
公开(公告)号: | CN103559020A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 郑晶晶;王婷;张常有;詹科 | 申请(专利权)人: | 中国科学院软件研究所;广州中国科学院软件应用技术研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F17/30;H03M7/30 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;孟卜娟 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dna 序数 fastq 文件 并行 压缩 和解 方法 | ||
1.一种DNA读序数据FASTQ文件并行压缩方法,其特征在于包括并行压缩进程任务分割部分和压缩进程处理部分,具体如下:
(一)并行压缩进程任务分割部分
根据FASTQ文件大小、并行压缩进程数目、FASTQ文件中每个读序片段——每个记录的数据特点,确定每个压缩进程待处理数据的起始和结束位置;每个进程将待压缩的原始数据近似均匀地分配到各个进程上,以实现数据并行,这样每个进程在处理时相互之间没有通信时间的消耗,提升了数据并行的处理效率;每个进程得到单独的压缩文件,压缩数据的顺序与进程号一致;
(二)压缩进程处理部分负责进程内多线程流水并行压缩
每个压缩进程处理部分包含一个原始数据读取线程、一个压缩数据写入线程和多个压缩工作线程;工作线程的具体数目可以根据硬件CPU的核数以及进程设置来设定;
每个进程所处理的待压缩数据被原始数据读取线程分成多个块,每个块包含特定的固定数目的记录,最末端块少于所述固定数目;
每个工作线程均有两个循环双缓冲队列,一个是原始数据循环双缓冲队列,另一个是压缩数据循环双缓冲队列;每个原始数据循环双缓冲队列包含两个队列:一个是空块缓冲区队列,一个是原始数据块队列;每个压缩数据循环双缓冲队列也包含两个队列:一个是空块缓冲区队列,另一个是压缩数据块队列;
在每个进程内,进行以原始数据块为单位的数据的并行压缩流水线处理,具体流水并行处理流程如下:
(1)原始数据读取线程不断地根据记录数据特点解析读取原始数据块,循环依次查找每个压缩工作线程的原始数据循环双缓冲队列中的空块缓冲区,找到后将原始数据块放入,然后释放此块缓冲区到此循环双缓冲队列中的原始数据块队列的末端;
原始数据读取线程采用了内存映射结合数据分块技术;
(2)每个压缩工作线程不断地从本线程的原始数据循环双缓冲队列中的原始数据块队列头获取原始数据块,然后进行压缩处理;
(3)每个压缩工作线程不断地将压缩后的块数据填充到获取的本线程的压缩数据循环双缓冲队列中的空块缓冲区中,并释放此缓冲区到此循环双缓冲队列的压缩数据块队列的尾部;
(4)压缩数据写入线程不断地按照块号从小到大的顺序依次查找已经压缩处理完毕的块数据所在的线程号,获取此线程内的压缩数据循环双缓冲队列中的压缩数据块队列头中的此块压缩数据,写入最终的压缩文件。
2.根据权利要求1所述的DNA读序数据FASTQ文件并行压缩方法,其特征在于:所述原始数据循环双缓冲队列处理方式如下:
(1)原始数据循环双缓冲队列初始化处理:将空块缓冲区队列实例化,具有特定数目的空块缓冲区,原始数据块队列为空;
(2)原始数据读取线程读取一个原始数据块;
(3)在空块缓冲区队列头获取一个空块缓冲区;
(4)用原始数据块填充获取的这个空块缓冲区;
(5)将这个填充的原始数据块放入原始数据块队列的末端;
(6)压缩工作线程在原始数据块队列头中获取一个原始数据块缓冲区中的块数据进行压缩处理;
(7)将此原始数据块缓冲区清空,并放入空块缓冲区队列。
3.根据权利要求1所述的DNA读序数据FASTQ文件并行压缩方法,其特征在于:所述原始数据读取线程采用的内存映射结合数据分块技术,用来提高大文件的读取速度,结合数据分块,其主要是根据内存页面大小以及映射的空间大小,计算每个块的数据在内存映射空间的位置,以及何时进行内存映射空间的释放和重新映射。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所;广州中国科学院软件应用技术研究所,未经中国科学院软件研究所;广州中国科学院软件应用技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310551802.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种隐形电源线手机
- 下一篇:IP地址匹配系统及方法