| Literature DB >> 31953467 |
Abstract
The amount of data produced by modern sequencing instruments that needs to be stored is huge. Therefore it is not surprising that a lot of work has been done in the field of specialized data compression of FASTQ files. The existing algorithms are, however, still imperfect and the best tools produce quite large archives. We present FQSqueezer, a novel compression algorithm for sequencing data able to process single- and paired-end reads of variable lengths. It is based on the ideas from the famous prediction by partial matching and dynamic Markov coder algorithms known from the general-purpose-compressors world. The compression ratios are often tens of percent better than offered by the state-of-the-art tools. The drawbacks of the proposed method are large memory and time requirements.Entities:
Year: 2020 PMID: 31953467 PMCID: PMC6969201 DOI: 10.1038/s41598-020-57452-6
Source DB: PubMed Journal: Sci Rep ISSN: 2045-2322 Impact factor: 4.379
Comparison of compression ratios and running times of selected general-purpose compressors and FASTQ-specialized compressors.
| Compressor | Comp. size [MB] | Comp. time [s] | RAM in comp. [MB] | Decomp. time [s] | RAM in decomp. [MB] |
|---|---|---|---|---|---|
| pigz | 3,392 | 128 | 54 | ||
| 7z | 2,710 | 2,438 | 5,592 | 220 | 71 |
| zstd | 3,335 | 828 | 48 | 35 | 4 |
| brotli | 3,186 | 6,214 | 100 | 78 | 4 |
| DSRC 2 | 2,273 | 3,997 | 56 | 2,739 | |
| FQZcomp | 1,990 | 287 | 283 | 385 | 581 |
| NAF[ | 2,173 | 12,885 | 4,620 | 60 | 3,799 |
| Spring | 1,650 | 159 | 1,735 | 975 | |
| FQSqueezer | 1,409 | 19,489 | 1,501 | 19,467 |
The dataset ERR532393_1 (complete FASTQ file) of size 9.64GB was used. The original ordering of reads were preserved.
Compression ratios for single-end reads.
| Dataset | Size [Gbp] | Original ordering | Reordered | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Spring | Minicom | FQSqueezer | Gain | FaStore | Spring | Minicom | FQSqueezer | Gain | ||
| ERR174310_1 | 20.97 | 0.696 | 0.857 | 7.4 | 0.593 | 0.408 | 0.589 | 3.1 | ||
| ERR532393_1 | 3.58 | 0.667 | 0.647 | 22.5 | 0.482 | 0.433 | 0.410 | 39.3 | ||
| SRR327342_1 | 0.95 | 0.524 | 0.538 | 7.4 | 0.267 | 0.158 | 0.166 | 11.3 | ||
| SRR554369_1 | 0.17 | 0.441 | 0.509 | 6.6 | 0.494 | 0.240 | 0.307 | 5.6 | ||
| SRR635193_1 | 1.47 | 0.697 | 0.702 | 10.0 | 0.333 | 0.267 | 0.289 | 23.9 | ||
| SRR689233_1 | 1.48 | 0.449 | 0.442 | 10.6 | 0.248 | 0.193 | 0.187 | 25.5 | ||
| SRR870667_1 | 7.48 | 1.460 | 1.364 | 89.3 | 0.722 | 1.292 | 1.212 | 42.6 | ||
| SRR1265495_1 | 1.70 | 0.632 | 0.506 | −11.4 | 0.368 | 0.500 | 0.319 | 29.7 | ||
| SRR1265496_1 | 1.48 | 0.646 | 0.517 | −6.4 | 0.391 | 0.507 | 0.352 | 33.4 | ||
Compression ratios are in output bits per base [bpb]. Best results are in bold. ‘Gain’ (expressed in %) is defined as: best competitor ratio divided by FQSqueezer ratio subtracted by 1. FaStore does not offer original ordering preserving.
Compression ratios for paired-end reads.
| Dataset | Size [Gbp] | Orginal ordering | Reordered | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Spring | FQSqueezer | Gain | FaStore | Spring | Minicom | FQSqueezer | Gain | ||
| ERR174310 | 41.93 | 0.474 | −2.3 | 0.844 | 0.481 | 0.346 | −8.3 | ||
| ERR532393 | 7.15 | 0.623 | 34.7 | 0.694 | 0.505 | 0.471 | 35.8 | ||
| SRR327342 | 2.08 | 0.490 | 38.0 | — | 0.307 | — | 55.7 | ||
| SRR554369 | 0.33 | 0.322 | 7.7 | 0.652 | 0.222 | 0.293 | 8.4 | ||
| SRR635193 | 2.94 | 0.562 | 12.2 | 0.500 | 0.339 | 0.419 | 16.0 | ||
| SRR689233 | 2.96 | 0.367 | 18.8 | 0.350 | 0.239 | 0.257 | 30.2 | ||
| SRR870667 | 12.60 | 1.070 | 93.3 | — | 0.928 | — | 119.0 | ||
| SRR1265495 | 3.40 | 0.484 | 29.7 | 0.437 | 0.436 | 0.316 | 38.2 | ||
| SRR1265496 | 2.96 | 0.500 | 28.4 | 0.479 | 0.449 | 0.344 | 39.0 | ||
Compression ratios are in output bits per base [bpb]. Best results are in bold. ‘Gain’ (expressed in %) is defined as: best competitor ratio divided by FQSqueezer ratio subtracted by 1. FaStore and Minicom do not support original ordering preserving. For two datasets (REO mode) we were unable to run FaStore and Minicom.
Time and memory requirements for compression of SE reads in the reordering mode.
| Dataset | Size [Gbp] | FaStore | Spring | Minicom | FQSqueezer | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| c-t | d-t | c-m | d-m | c-t | d-t | c-m | d-m | c-t | d-t | c-m | d-m | c-t | d-t | c-m | d-m | ||
| ERR174310_1 | 20.97 | 4,595 | 109 | 4.2 | 11.0 | 4.7 | 19,417 | 105 | 67.7 | 12,728 | 13,100 | 91.6 | 90.6 | ||||
| ERR532393_1 | 3.58 | 379 | 18 | 5.9 | 0.9 | 18 | 1.9 | 609 | 10.1 | 1,344 | 1,452 | 16.4 | 16.4 | ||||
| SRR327342_1 | 0.95 | 192 | 5 | 4.4 | 5 | 0.6 | 67 | 4.6 | 0.7 | 144 | 145 | 6.7 | 6.6 | ||||
| SRR554369_1 | 0.17 | 93 | 0.9 | 0.1 | 0.3 | 30 | 1.7 | 68 | 70 | 6.2 | 6.2 | ||||||
| SRR635193_1 | 1.47 | 291 | 12 | 5.9 | 0.9 | 11.2 | 0.8 | 347 | 11 | 456 | 462 | 12.1 | 12.1 | ||||
| SRR689233_1 | 1.48 | 196 | 7 | 5.5 | 0.7 | 9 | 0.8 | 127 | 4.5 | 406 | 413 | 11.7 | 11.6 | ||||
| SRR870667_1 | 7.48 | 2,185 | 81 | 7.3 | 3,030 | 70 | 27.1 | 3.9 | 4,127 | 4,432 | 36.4 | 36.1 | |||||
| SRR1265495_1 | 1.70 | 483 | 5.7 | 0.6 | 12 | 1.6 | 203 | 5.1 | 658 | 685 | 13.2 | 13.1 | |||||
| SRR1265496_1 | 1.48 | 170 | 5.1 | 0.6 | 11 | 1.6 | 194 | 7 | 4.6 | 609 | 652 | 13.0 | 13.0 | ||||
Column abbreviations: ‘c-t’ — compression time (in seconds), ‘c-m’ — RAM usage in compression (in GB), ‘d-t’ —decompression time (in seconds), ‘d-m’— RAM usage in decompression (in GB). Best results are in bold.
Multithreding scalability of FQSqueezer for SRR327342_1 dataset.
| No. threads | Original ordering | Reordered | ||
|---|---|---|---|---|
| Compression time [s] | Ratio [bpb] | Compression time [s] | Ratio [bpb] | |
| 1 | 1034.76 | 0.484 | 547.72 | 0.139 |
| 2 | 619.97 | 0.485 | 378.87 | 0.140 |
| 3 | 453.10 | 0.485 | 315.44 | 0.140 |
| 4 | 356.98 | 0.486 | 263.28 | 0.141 |
| 6 | 265.40 | 0.487 | 202.04 | 0.141 |
| 8 | 221.37 | 0.487 | 168.96 | 0.142 |
| 12 | 169.56 | 0.488 | 140.31 | 0.142 |
| 16 | 143.78 | 0.489 | 131.10 | 0.143 |
| 24 | 116.33 | 0.490 | 122.69 | 0.144 |
Impact of FQSqueezer declared genome size for SRR870667_1 dataset.
| Declared genome size | Original ordering | Reordered | ||||
|---|---|---|---|---|---|---|
| Time [s] | RAM [GB] | Ratio [bpb] | Time [s] | RAM [GB] | Ratio [bpb] | |
| 2 | 3,130 | 23.4 | 0.761 | 2,815 | 23.4 | 0,548 |
| 10 | 3,124 | 23.8 | 0.744 | 2,847 | 23.8 | 0.533 |
| 50 | 3,203 | 25.1 | 0.730 | 3,172 | 25.0 | 0.515 |
| 200 | 3,717 | 30.0 | 0.725 | 3,647 | 29.9 | 0.507 |
| 500 | 4,569 | 36.6 | 0.721 | 4,090 | 36.4 | 0.502 |
| 2000 | 4,867 | 68.0 | 0.722 | 4,958 | 67.8 | 0.500 |
Reference genome for this organism is of size 430 Mbp.
Compression of complete FASTQ files.
| Dataset | Input | Original ordering | Reordered | |||
|---|---|---|---|---|---|---|
| Spring | FQSqueezer | FaStore | Spring | FQSqueezer | ||
| ERR532393_1 | 9,642 | 1,649.6 | 1,840.4 | 1,738.9 | ||
| SRR327342_1 | 2,813 | 435.4 | 504.1 | 471.5 | ||
| SRR870667_1 | 18,555 | 3,913.6 | 3,683.6 | 4,067.2 | ||
| ERR532393 | 19,284 | 3,200.6 | 3,602.1 | 3,299.3 | ||
| SRR327342 | 5,986 | 954.6 | — | 987.2 | ||
| SRR870667 | 32,402 | 6,060.6 | — | 6,201.6 | ||
| ERR532393_1 | 9,642 | 917.5 | 978.4 | 814.4 | ||
| SRR327342_1 | 2,813 | 178.7 | 208.2 | 135.5 | ||
| SRR870667_1 | 18,555 | 2,583.7 | 2,151.7 | 2,444.0 | ||
| ERR532393 | 19,284 | 1,814.9 | 2,058.3 | 1,729.8 | ||
| SRR327342 | 5,986 | 413.4 | — | 366.6 | ||
| SRR870667 | 32,402 | 3,914.7 | — | 3,698.5 | ||
| ERR532393_1 | 9,642 | 298.0 | 215.5 | 193.3 | ||
| SRR327342_1 | 2,813 | 62.1 | 31.6 | 18.8 | ||
| SRR870667_1 | 18,555 | 1,364.2 | 674.8 | 1,207.5 | ||
| ERR532393 | 19,284 | 556.6 | 620.6 | 451.5 | ||
| SRR327342 | 5,986 | 127.1 | — | 79.7 | ||
| SRR870667 | 32,402 | 1,684.5 | — | 1,461.0 | ||
The dataset names suffixed “_1” denote SE data. The remaining are PE files. All numbers are sizes in MBs. The best results are in bold.
Figure 1Illustration of compression of a single read in a single-end, original ordering mode. The subfigures (a–c) show how the estimation of probabilities for entropy coding is performed for some symbols.
Figure 2Example of prediction of some b-mer of the paired read from the statistics of occurrences of pairs of minimizers in PE reads.