Run RNA-Seq QC

May 7, 2026 · View on GitHub

RustQC

Fast genomics quality control tools for sequencing data, written in Rust.

CI License rewrites.bio - Follows best practice principles for rewriting bioinformatics tools with AI

DocumentationQuickstartBenchmarksReleases


RustQC is a suite of fast QC tools for sequencing data, compiled to a single static binary with no runtime dependencies.

Benchmark: RustQC ~14m 54s vs traditional tools ~15h 34m sequential (dupRadar + featureCounts + 8 RSeQC tools incl. TIN + preseq + samtools + Qualimap)

Run time for a large paired-end RNA-seq BAM (~186M reads) on AWS.

It currently includes:

  • rustqc rna is a single-command RNA-Seq QC tool that runs all QC analyses in one pass. Designed to slot into the nf-core/rnaseq pipeline, but works anywhere:
ToolReimplementsDescription
dupRadardupRadarPCR duplicate rate vs. expression analysis with density scatter plots
featureCountsfeatureCountsGene-level read counting with biotype summaries
bam_statRSeQC bam_stat.pyBasic alignment statistics
infer_experimentRSeQC infer_experiment.pyLibrary strandedness inference
read_duplicationRSeQC read_duplication.pyPosition- and sequence-based duplication histograms
read_distributionRSeQC read_distribution.pyRead distribution across genomic features
junction_annotationRSeQC junction_annotation.pySplice junction classification
junction_saturationRSeQC junction_saturation.pySplice junction saturation analysis
inner_distanceRSeQC inner_distance.pyPaired-end inner distance distribution
TINRSeQC tin.pyTranscript Integrity Number
preseqpreseq lc_extrapLibrary complexity extrapolation
Qualimap rnaseqQualimap rnaseqGene body coverage, read origin, strand specificity
flagstatsamtools flagstatAlignment flag summary
idxstatssamtools idxstatsPer-chromosome read counts
statssamtools statsFull samtools stats output including all histogram sections

All outputs are format- and numerically identical to the upstream tools, and compatible with MultiQC for reporting.

Quick start

# Install (Linux x86_64 example -- see docs for all platforms)
curl -fsSL https://github.com/seqeralabs/RustQC/releases/latest/download/rustqc-linux-x86_64.tar.gz | tar xz --strip-components=1
sudo mv ./rustqc /usr/local/bin/

# Run RNA-Seq QC
rustqc rna sample.markdup.bam --gtf genes.gtf --paired --outdir results/
# Or use Docker
docker run --rm -v "$PWD":/data ghcr.io/seqeralabs/rustqc:latest \
  rustqc rna /data/sample.markdup.bam --gtf /data/genes.gtf --outdir /data/results
# Or install from crates.io
cargo install rustqc

See the documentation for full usage details, configuration options, output file descriptions, and benchmark results.

Use as a Rust library

The crate is also published as a library, so the QC analysis modules (GTF parsing, dupRadar, featureCounts, RSeQC, Qualimap, preseq, samtools-style outputs) can be embedded into other Rust programs:

[dependencies]
rustqc = "0.2"

See the library guide and the full API reference on docs.rs/rustqc.

AI & Provenance

RustQC was developed with substantial assistance from AI coding agents (primarily Claude), using the upstream tool source code as reference. Correctness is validated by comparing output against the original tools on real sequencing data, not by manual code review alone. See the AI & Provenance documentation for full details, including known validation gaps.

License

This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for details.