Skip to content

Quick Start

Compress

fqxv compress reads.fastq -o reads.fqxv

Gzipped input is detected automatically, and -o is optional — it defaults to the input's name with the FASTQ/gzip extension replaced by .fqxv:

fqxv compress reads.fastq.gz            # writes reads.fqxv

Tune effort with --level (1–9; higher raises the sequence context order up to level 5, then the block size) and threads with --threads (default 16, capped at available cores; 0 = all cores):

fqxv compress reads.fastq.gz -o reads.fqxv --level 7 --threads 16

Not sure how well your data will compress? Add --estimate to predict the archive size and ratio from a sample of the input, writing nothing:

fqxv compress reads.fastq.gz --estimate
# reads.fastq.gz (436.93 MB)  →  estimated fqxv ~216.87 MB  (50% smaller, ~2.01x)

See compress --estimate for details and accuracy.

Inspect

fqxv info reads.fqxv
reads.fqxv
  layout         single-end (group size 1)
  reads          1000000
  blocks         4
  sequence order 11
  quality        lossless
  plus line      normalized
  names   6189536 bytes (13.4%)
  seq    17980884 bytes (38.9%)
  qual   22083418 bytes (47.7%)

Decompress

Pick a destination — a file (-o), split mate files (--split), or a stdout stream (-Z). A bare decompress with none of these errors rather than flooding the terminal.

fqxv decompress reads.fqxv -o reads.fastq        # plain FASTQ
fqxv decompress reads.fqxv -o reads.fastq.gz     # block-gzip (BGZF)

Paired-end and single-cell

Give multiple inputs to interleave per-spot files into one archive:

fqxv compress sample_R1.fq.gz sample_R2.fq.gz -o sample.fqxv   # paired
fqxv compress R1.fq R2.fq I1.fq I2.fq -o sample.fqxv           # 10x single-cell

Restore the separate files, or stream interleaved straight to an aligner:

fqxv decompress sample.fqxv --split out                  # out_R1.fastq.gz, out_R2.fastq.gz, ...
fqxv decompress sample.fqxv -Z | bwa mem -p ref.fa -     # interleaved, raw, on stdout

--split writes block-gzip .fastq.gz with _R1/_R2 labels by default; add --no-gzip for plain FASTQ or --mate-style num for _1/_2 labels.

Lossy quality (optional)

Quality is lossless by default. Opt into binning for smaller archives when you don't need exact quality:

fqxv compress reads.fastq -o reads.fqxv --quality-bin bin8   # or bin4 / bin2

The bin8/bin4/bin2 tables are Illumina-calibrated. Long reads have their own, and the tables are not interchangeable — pick the one matching your platform:

fqxv compress ont_reads.fastq -o ont_reads.fqxv --quality-bin ont    # Nanopore
fqxv compress hifi_reads.fastq -o hifi_reads.fqxv --quality-bin hifi # PacBio HiFi

See Lossy quality binning for what each table costs.