CN107565975A - Fastq格式文件无损压缩的方法 - Google Patents
Fastq格式文件无损压缩的方法 Download PDFInfo
- Publication number
- CN107565975A CN107565975A CN201710761520.8A CN201710761520A CN107565975A CN 107565975 A CN107565975 A CN 107565975A CN 201710761520 A CN201710761520 A CN 201710761520A CN 107565975 A CN107565975 A CN 107565975A
- Authority
- CN
- China
- Prior art keywords
- file
- compressed
- attribute set
- sequence
- compression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于生物信息领域,涉及一种DNA测序数据的标准存储方式FASTQ格式文件无损压缩的方法。首先,将原FASTQ文件按序列进行提取,第三行丢弃。然后,将提取的序列按照行重新生成新的文件,分别为保存第一行的序列标志文件、保存第二行的序列数据文件和保存第四行的质量评分文件。其次,对第二步生成的三个文件分别利用进行压缩处理:对序列数据文件进行压缩、对质量评分文件进行压缩、将序列标志文件进行处理之后再进行压缩。最后,对第三步生成的压缩文件,用tar将其压缩为一个文件,并且删除中间过程文件。通过本发明方法可以对下一代测序技术产生的海量DNA测序数据进行经济性存储和快速传输。
Description
技术领域
本发明属于生物信息领域,涉及一种DNA测序数据的标准存储方式FASTQ格式文件无损压缩的方法。
背景技术
由于DNA数据与一般的文本、图像、视频等格式不同,它只包含四种碱基符号{A,G,C,T}。若将其看成随机字符串,则每个碱基符号需要2bits(log2 4)。故对DNA数据进行压缩,每个碱基需少于2bits存储才能达到有效的压缩结果。传统的压缩算法如gzip、bzip2、7-Zip等虽然可以用来压缩测序数据,但是其每个碱基的存储空间大于2bits。因此,研究人员致力于专用于DNA数据的压缩算法的研究。
2010年Tembe等人提出的基因组序列和质量数据的紧凑编码G-SQZ(GenomicSQueeZ),是一种基于霍夫曼编码的排序读取特定表示方案,可以在不改变相对顺序的情况下压缩数据。它在组合碱基和各自的质量上使用零级霍夫曼编码,无法处理具有可变长度读数的数据集。
2011年Deorowicz等人提出的算法,其C++实现为DSRC(DNA Sequence ReadsCompressor),兼容分别由Sange和加利福尼亚大学综合基因组生物学研究所提供的两种标准化格式的FASTQ格式。该算法处理DNA读数而不是基因组序列,它将FASTQ格式识别为有序的记录集合,并对记录进行数据流(分别为标题、DNA序列和质量评分)独立处理。其压缩效率和性能明显优于处理相同数据格式的G-SQZ算法。
2012年,Jones等人提出了Quip算法,基于统计模型,使用算术编码,可以对FASTQ和SAM/BAM格式的下一代测序数据进行无损压缩。对于FASTQ的不同行,使用不同的统计模型,这样就能取得更高的压缩比。尽管有这些优点,但是实际应用中却由于算术编码的专利权的限制,没有霍夫曼算法使用广泛。
Roguski于2014年提出面向工业的解决方案DSRC2,其压缩率远高于gzip/bzip2,虽然比此前的最佳程序低,但是压缩(解压)速度要比所有的竞争对手快几倍,支持任何FASTQ格式的变体,并且可以进行管道集成。
2015年,詹科等人基于Pthreads对DSRC算法进行了并行实现,将DSRC分为数据读入和数据压缩两个独立的任务。当使用4线程时,加速比达到3.5,能够显著提高压缩FASTQ格式的DNA数据的效率,但当线程数继续增加时,其性能下降,压缩时间增加。
2015年,Dutta等人提出了一种压缩算法FQC,除了在gzip上提供显着更高的压缩增益外,还包含数据存储库/最终用户普遍采用所必需的功能,该研究还提出了一种新颖的归档策略,允许序列存储库同时存储和传播fastq文件的无损和多重有损变体,而不需要额外的存储要求。
已经出现的实验性压缩工具共同存在的一些缺点:压缩(解压)缓慢、不能被其他软件直接使用、不支持某些类型的FASTQ文件(如在颜色空间或可变读数长度上)和不稳定容易崩溃。并且目前对FASTQ格式文件的传输大多利用TCP协议,传输速度很慢,很少有人针对传输协议进行优化。
发明内容
本发明所要解决的技术问题是提供一种FASTQ格式文件无损压缩的方法。
针对FASTQ格式文件的压缩,解决方案如下:
首先,将原FASTQ文件按序列进行提取,由于第三行没有太多实际意义,将其丢弃。然后,将提取的序列按照行重新生成新的文件,分别为保存第一行的序列标志文件、保存第二行的序列数据文件和保存第四行的质量评分文件。其次,对第二步生成的三个文件分别利用进行压缩处理:对序列数据文件进行压缩、对质量评分文件进行压缩、将序列标志文件进行处理之后再进行压缩。最后,对第三步生成的压缩文件,用tar将其压缩为一个文件,并且删除中间过程文件。
具体的解决方案如下:
一、原文件分割重组
读取原文件,将其按每四行作为一个记录,丢弃第三行没有意义的数据,并将第一行、第二行和第四行单独生成文件,分别为序列标志文件、序列数据文件和质量评分文件;
二、分割文件处理
对序列数据文件和质量评分文件分别直接使用压缩工具进行压缩,序列标志文件再次进行分割处理,分割后的文件再进行压缩,对序列标志文件的处理过程如下:
1)构建标志集:根据关键符号对标识符进行分割将其标记化,标记化算法是将标识符内两个关键符号之间的数字和字母从T1开始按序号利用Ti进行标记,得到由占位符组成的正则表达式,其中关键符号包括:点(.),空格(),下划线(_),连字符(-),斜杠(/),等号(=)和冒号(:);假设每个标识符中存在的标记的数量为t,每个Ti叫做一个标志集,1≤i≤t;
2)对标志集进行压缩处理:使用游程编码压缩带有字母数字值的标志集,如果游程编码不能将标志集的大小减小到原始值的90%以下,则标志集保持未压缩状态;通过存储连续标记之间的差异来压缩具有整数值的标志集,如果该方法不能将标志集的大小减小到原始值的90%以下,则标志集保持未压缩状态;如果标志集没有被上述任何方法转换,则取每个标志集并将其反转;
3)对变换后的标志集应用混合压缩:使用上下文混合算法zpaq,对变换后的标志集进行压缩,参数为-method 5-threads 8或-method 5-threads 12。
三、文件打包及二次压缩
在对分割文件处理之后,使用gzip的tar命令进行打包处理,修改tar命令的参数为zcf,并对算法执行过程中生成的中间文件进行清理操作。
通过本发明方法可以对下一代测序技术产生的海量DNA测序数据进行经济性存储和快速传输。
附图说明
图1,FASTQ格式文件压缩和传输流程示意图。
具体实施方式
针对FASTQ格式文件的压缩,首先,将原FASTQ文件按序列进行提取,由于第三行没有太多实际意义,将其丢弃。然后,将提取的序列按照行重新生成新的文件,分别为保存第一行的序列标志文件、保存第二行的序列数据文件和保存第四行的质量评分文件。其次,对第二步生成的三个文件分别利用进行压缩处理:对序列数据文件进行压缩、对质量评分文件进行压缩、将序列标志文件进行处理之后再进行压缩。最后,对第三步生成的压缩文件,用tar将其压缩为一个文件,并且删除中间过程文件。
具体的解决方案如下:
一、原文件分割重组
读取原文件,将其按每四行作为一个记录,丢弃第三行没有意义的数据,并将第一行、第二行和第四行单独生成文件,分别为序列标志文件、序列数据文件和质量评分文件;
二、分割文件处理
该部分将对分割后的文件进行处理,其中序列数据文件和质量评分文件分别直接使用压缩工具进行压缩。序列标志文件再次进行分割处理,分割后的文件再进行压缩。其中,对序列标志文件的处理方式如下:
1)构建标志集:根据关键符号对标识符进行分割将其标记化(标记化算法是将标识符内两个关键符号之间的数字和字母从1开始按序号利用Ti进行标记。),并得到由占位符组成的正则表达式,其中关键符号包括:点(.),空格(),下划线(_),连字符(-),斜杠(/),等号(=)和冒号(:)。如:针对标识符@SRR007215.1135HWUSI-EAS 687_61DAJ:8:1:1055:3384/1,将其标记化得到的正则表达式为:T1.T2T3-T4_T5:T6:T7∶T8:T9/T10,其中T1到T10分别为@SRR007215、1135、HWUSI、EAS687、61DAJ、8、1、1055、3384、1。假设每个标识符中存在的标记的数量为t,每个Ti叫做一个标志集(1≤i≤t),该步骤构造了这些标志集。
2)对标志集进行压缩处理(标志集压缩算法是使用标记化算法构建的T1T2…标志集用适当的编码进行压缩,将得到τ1τ2…附加到正则表达式RegEx中,然后将Ti的关键符号集加到RegEx中。具体思路为:使用游程编码压缩带有字母数字值的标记集。如果游程编码不能将标记集的大小减小到原始值的90%以下,则标记集保持未压缩状态。通过存储连续标记之间的差异来压缩具有整数值的标记集。如果该方法不能将标记集的大小减小到原始值的90%以下,则标记集保持未压缩状态。如果标记集没有被上述任何方法转换,则取每个标记集并将其反转(从右到左读取)。我们已经观察到这能够提高下游应用的上下文混合算法的压缩率。
3)对变换后的标志集应用混合压缩:使用上下文混合算法zpaq,对变换后的标志集进行压缩,参数为“-method 5-threads 8”或“-method 5-threads 12”。三、文件打包及二次压缩
在对分割文件处理之后,使用gzip的tar命令进行打包处理,修改tar命令的参数为zcf,并对算法执行过程中生成的中间文件进行清理操作。
目前,FASTQ格式文件大多利用TCP/IP协议传输,这种传输协议是应答式传输,优点是传输安全可靠。由于程序应答方式要在两台服务器之间建立连接,造成了网络负担,速度势必大减。改用UDP协议这一面向无连接的传输协议,可以显著提升数据的传输速度。
本发明分别针对文件压缩和文件传输两个部分进行了压缩算法以及传输协议上的优化。
结果对比
进行压缩传输测试时的网速平均为4M/s,可以发现加速后传输时间明显减少。
加速前:
数据集 | 原始大小 | 压缩后大小 | 压缩率 | 传输速率 | 传输时间 |
SRR554369 | 788017922 | 170393600 | 4.625 | 4.23M/s | 596s |
SRR1284073 | 1308957142 | 407777280 | 3.210 | 4.31M/s | 1016s |
MH0001.081026 | 1880433138 | 278999040 | 6.740 | 4.27M/s | 1009s |
SRR327342 | 6166561880 | 1247692800 | 4.942 | 4.34M/s | 3285s |
SRR870667 | 33232737208 | 6766366720 | 4.911 | 4.22M/s | 19416s |
加速后:
数据集 | 原始大小 | 压缩后大小 | 压缩率 | 传输速率 | 传输时间 |
SRR554369 | 788017922 | 107770500 | 7.312 | 4.13M/s | 495s |
SRR1284073 | 1308957142 | 185509790 | 7.056 | 4.35M/s | 835s |
MH0001.081026 | 1880433138 | 224932190 | 8.360 | 4.30M/s | 831s |
SRR327342 | 6166561880 | 818,932,520 | 7.531 | 4.28M/s | 2830s |
SRR870667 | 33232737208 | 4466765750 | 7.440 | 4.26M/s | 12610s |
Claims (2)
1.一种FASTQ格式文件的压缩方法,其特征在于,包括如下步骤:
一、原文件分割重组
读取原文件,将其按每四行作为一个记录,丢弃第三行没有意义的数据,并将第一行、第二行和第四行单独生成文件,分别为序列标志文件、序列数据文件和质量评分文件;
二、分割文件处理
对序列数据文件和质量评分文件分别直接使用压缩工具进行压缩,序列标志文件再次进行分割处理,分割后的文件再进行压缩,对序列标志文件的处理过程如下:
1)构建标志集:根据关键符号对标识符进行分割将其标记化,标记化算法是将标识符内两个关键符号之间的数字和字母从T1开始按序号利用Ti进行标记,得到由占位符组成的正则表达式,其中关键符号包括:点(.),空格(),下划线(_),连字符(-),斜杠(/),等号(=)和冒号(:);假设每个标识符中存在的标记的数量为t,每个Ti叫做一个标志集,1≤i≤t;
2)对标志集进行压缩处理:使用游程编码压缩带有字母数字值的标志集,如果游程编码不能将标志集的大小减小到原始值的90%以下,则标志集保持未压缩状态;通过存储连续标记之间的差异来压缩具有整数值的标志集,如果该方法不能将标志集的大小减小到原始值的90%以下,则标志集保持未压缩状态;如果标志集没有被上述任何方法转换,则取每个标志集并将其反转;
3)对变换后的标志集应用混合压缩:使用上下文混合算法zpaq,对变换后的标志集进行压缩,参数为-method 5-threads 8或-method 5-threads 12;
三、文件打包及二次压缩
在对分割文件处理之后,使用gzip的tar命令进行打包处理,修改tar命令的参数为zcf,并对算法执行过程中生成的中间文件进行清理操作。
2.根据权利要求1所述的压缩方法,其特征在于,压缩后的文件采用UDP协议传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710761520.8A CN107565975A (zh) | 2017-08-30 | 2017-08-30 | Fastq格式文件无损压缩的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710761520.8A CN107565975A (zh) | 2017-08-30 | 2017-08-30 | Fastq格式文件无损压缩的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107565975A true CN107565975A (zh) | 2018-01-09 |
Family
ID=60977762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710761520.8A Pending CN107565975A (zh) | 2017-08-30 | 2017-08-30 | Fastq格式文件无损压缩的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107565975A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450452A (zh) * | 2018-11-27 | 2019-03-08 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN110797082A (zh) * | 2019-10-24 | 2020-02-14 | 福建和瑞基因科技有限公司 | 基因测序数据的存储读取方法及系统 |
CN111370070A (zh) * | 2020-02-27 | 2020-07-03 | 中国科学院计算技术研究所 | 一种针对大数据基因测序文件的压缩处理方法 |
WO2023226036A1 (zh) * | 2022-05-27 | 2023-11-30 | 深圳华大基因科技服务有限公司 | Fastq数据的处理方法及装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6057790A (en) * | 1997-02-28 | 2000-05-02 | Fujitsu Limited | Apparatus and method for data compression/expansion using block-based coding with top flag |
CN103546160A (zh) * | 2013-09-22 | 2014-01-29 | 上海交通大学 | 基于多参考序列的基因序列分级压缩方法 |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
CN103995988A (zh) * | 2014-05-30 | 2014-08-20 | 周家锐 | 一种高通量dna测序质量分数无损压缩系统及压缩方法 |
CN106100641A (zh) * | 2016-06-12 | 2016-11-09 | 深圳大学 | 针对fastq数据的多线程快速存储无损压缩方法及其系统 |
WO2016185459A1 (en) * | 2015-05-21 | 2016-11-24 | Geneformics Data Systems Ltd. | Storage, transfer and compression of next generation sequencing data |
-
2017
- 2017-08-30 CN CN201710761520.8A patent/CN107565975A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6057790A (en) * | 1997-02-28 | 2000-05-02 | Fujitsu Limited | Apparatus and method for data compression/expansion using block-based coding with top flag |
CN103546160A (zh) * | 2013-09-22 | 2014-01-29 | 上海交通大学 | 基于多参考序列的基因序列分级压缩方法 |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
CN103995988A (zh) * | 2014-05-30 | 2014-08-20 | 周家锐 | 一种高通量dna测序质量分数无损压缩系统及压缩方法 |
WO2016185459A1 (en) * | 2015-05-21 | 2016-11-24 | Geneformics Data Systems Ltd. | Storage, transfer and compression of next generation sequencing data |
CN106100641A (zh) * | 2016-06-12 | 2016-11-09 | 深圳大学 | 针对fastq数据的多线程快速存储无损压缩方法及其系统 |
Non-Patent Citations (1)
Title |
---|
MARIUS NICOLAE等: "LFQC: a lossless compression algorithm for FASTQ files", 《BIOINFORMATICS》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450452A (zh) * | 2018-11-27 | 2019-03-08 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN109450452B (zh) * | 2018-11-27 | 2020-07-10 | 中国科学院计算技术研究所 | 一种针对基因数据的取样字典树索引的压缩方法和系统 |
CN110797082A (zh) * | 2019-10-24 | 2020-02-14 | 福建和瑞基因科技有限公司 | 基因测序数据的存储读取方法及系统 |
CN111370070A (zh) * | 2020-02-27 | 2020-07-03 | 中国科学院计算技术研究所 | 一种针对大数据基因测序文件的压缩处理方法 |
CN111370070B (zh) * | 2020-02-27 | 2023-10-27 | 中国科学院计算技术研究所 | 一种针对大数据基因测序文件的压缩处理方法 |
WO2023226036A1 (zh) * | 2022-05-27 | 2023-11-30 | 深圳华大基因科技服务有限公司 | Fastq数据的处理方法及装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603595B (zh) | 用于从压缩的基因组序列读段重建基因组参考序列的方法和系统 | |
CN107565975A (zh) | Fastq格式文件无损压缩的方法 | |
EP2608096B1 (en) | Compression of genomic data file | |
US10547324B2 (en) | Data compression coding method, apparatus therefor, and program therefor | |
CN110299187B (zh) | 一种基于Hadoop的并行化基因数据压缩方法 | |
CN103995988B (zh) | 一种高通量dna测序质量分数无损压缩系统及压缩方法 | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
US11551785B2 (en) | Gene sequencing data compression preprocessing, compression and decompression method, system, and computer-readable medium | |
CN109979537B (zh) | 一种面向多条序列的基因序列数据压缩方法 | |
Bhola et al. | No-reference compression of genomic data stored in fastq format | |
CN105391454A (zh) | 一种dna测序质量分数无损压缩方法 | |
Al-Okaily et al. | Toward a better compression for DNA sequences using Huffman encoding | |
EP3583249B1 (en) | Method and systems for the reconstruction of genomic reference sequences from compressed genomic sequence reads | |
CN116055008A (zh) | 一种用于云端服务器连接的路由器数据处理方法 | |
CN107277109B (zh) | 针对压缩流量的多字符串匹配方法 | |
CN108287985A (zh) | 一种gpu加速的dna序列压缩方法及系统 | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
CN110120247A (zh) | 一种分布式基因大数据存储平台 | |
CN110111852A (zh) | 一种海量dna测序数据无损快速压缩平台 | |
CN102932001B (zh) | 运动捕获数据压缩、解压缩方法 | |
CN109698702B (zh) | 基因测序数据压缩预处理方法、系统及计算机可读介质 | |
CN110111851B (zh) | 基因测序数据压缩方法、系统及计算机可读介质 | |
CN109409460A (zh) | 一种利用二维码传输表格数据的方法 | |
CN109698704B (zh) | 比对型基因测序数据解压方法、系统及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180109 |