Skip to content

References

github-actions[bot] edited this page Nov 1, 2026 · 2 revisions

References

z-fastq is written from scratch in Zig, but it does not invent its own rules where people already rely on established ones. This page lists the tools it follows, the tools it is compared with, and the public data it is checked on, with versions, sources, and citations. If you use z-fastq's trimming or QC in published work, please cite the tools whose rules it follows as well.

Tools z-fastq follows

z-fastq follows these tools' rules and file formats for the parts listed. It does not run them, and it is not a replacement for any of them: each does much more than the part z-fastq follows.

  • fastp 1.1.0 [1, 2]: the trimming and filtering rules of process, insert sizes, the pair duplication rate, and the layout of the QC summary. Results are also checked against fastp 1.4.0.
  • FastQC 0.13.0 [3]: the definitions of the QC modules, their statuses at the default limits, and the layout of the QC tables.
  • FastQC-Rust 1.1.0: the QC tables are checked byte for byte against its output.
  • MultiQC 1.33 [4]: reads the QC tables with its FastQC module and the QC summary with its fastp module.

z-fastq itself is built with Zig 0.16.0 and zipir 0.3.0 for gzip.

Tools z-fastq is compared with

These tools are run beside z-fastq to check that results agree and to measure speed and memory on the same inputs. The comparisons are development evidence, not a ranking: every tool here was built for its own set of jobs. The pinned versions live in tools/versions.sh.

Tool Version Compared on Cite
BBTools 40.05 sampling, pairs, layout
Fasten 0.9.0 interleaved sampling [5]
fastp 1.4.0 processing [1, 2]
FastQC 0.13.0 QC modules [3]
FastQC-Rust 1.1.0 QC modules and tables
FastQValidator 0.1.1a validation
fq 0.12.0 validation, paired sampling
fqkit 0.4.14 stats, sampling, layout
fqtools 2.3 counting, validation [6]
Helicase 0.2.0 counting, stats
IRMA Core 0.11.0 sampling, layout
Needletail 0.7.3 counting, stats
Rasusa 5.1.0 sampling [7]
SeqFu 1.29.0 counting, stats, validation, layout [8]
SeqKit 2.14.0 stats, sampling, pairs [9, 10]
seqtk 1.5-r133 counting, sampling, layout
  • "Layout" means interleaving and deinterleaving.
  • Helicase and Needletail are Rust parsing libraries; a small wrapper around each counts records and bases so they can be compared as commands.
  • A blank citation means the tool has no paper to cite; cite its repository and version.

Data z-fastq is checked on

Public sequencing runs

Eleven public runs from the European Nucleotide Archive cover short and long reads, single and paired layouts, fixed and variable lengths, and several instruments.

Accession Platform Instrument Sample Layout Read length
DRR018439 Illumina MiSeq E. coli paired 35 to 151
DRR018447 Illumina MiSeq E. coli paired 151
DRR1001190 Illumina NovaSeq 6000 feces metagenome paired 150
DRR147610 Illumina HiSeq 3000 quail miRNA single 36
ERR4686103 Illumina NovaSeq 6000 human paired variable
SRR19571648 Illumina NovaSeq 6000 mouse single-cell paired 28 and 150
ERR10448913 MGI BGISEQ-500 mouse paired 100
ERR10496769 ONT GridION E. coli single 110 to 92,287
ERR14758576 ONT PromethION human single 30,000 to 291,910
ERR10472470 PacBio Sequel II CCS K. oxytoca single 403 to 31,646
SRR29396856 PacBio Revio HiFi human single about 16 kb

Each run is cut into nested prefixes of whole records, sized by plain bytes with both mates counted: tiny (1 MiB), xsmall (10 MiB), and small (100 MiB) for every run, medium (1 GiB) for seven of them, and large (10 GiB) for five. Each original download's size and MD5 checksum are pinned in bench/lib/corpus/real-data.json, and bench/lib/corpus/make.sh downloads and cuts them.

Generated files

  • bench/lib/shapes/ generates synthetic reads in six shapes (dense, variable, endings, paired, long, and long-read) for timing across sizes.
  • tests/data/synthetic/ holds small hand-made files, valid and malformed, that the tests check record by record.

Citations

  1. Chen S, Zhou Y, Chen Y, Gu J. fastp: an ultra-fast all-in-one FASTQ preprocessor. Bioinformatics. 2018;34(17):i884–i890. doi:10.1093/bioinformatics/bty560
  2. Chen S. Ultrafast one-pass FASTQ data preprocessing, quality control, and deduplication using fastp. iMeta. 2023;2(2):e107. doi:10.1002/imt2.107
  3. Andrews S. FastQC: a quality control tool for high throughput sequence data. 2010. bioinformatics.babraham.ac.uk/projects/fastqc
  4. Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016;32(19):3047–3048. doi:10.1093/bioinformatics/btw354
  5. Katz LS, Phan J, den Bakker HC. Fasten: a toolkit for streaming operations on fastq files. Journal of Open Source Software. 2024;9(94):6030. doi:10.21105/joss.06030
  6. Droop AP. fqtools: an efficient software suite for modern FASTQ file manipulation. Bioinformatics. 2016;32(12):1883–1884. doi:10.1093/bioinformatics/btw088
  7. Hall M. Rasusa: Randomly subsample sequencing reads to a specified coverage. Journal of Open Source Software. 2022;7(69):3941. doi:10.21105/joss.03941
  8. Telatin A, Fariselli P, Birolo G. SeqFu: a suite of utilities for the robust and reproducible manipulation of sequence files. Bioengineering. 2021;8(5):59. doi:10.3390/bioengineering8050059
  9. Shen W, Le S, Li Y, Hu F. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. 2016;11(10):e0163962. doi:10.1371/journal.pone.0163962
  10. Shen W, Sipos B, Zhao L. SeqKit2: a Swiss army knife for sequence and alignment processing. iMeta. 2024;3(3):e191. doi:10.1002/imt2.191

Related pages

Clone this wiki locally