Documentation • Quickstart • Benchmarks • Releases
RustQC is a suite of fast QC tools for sequencing data, compiled to a single static binary with no runtime dependencies.
Run time for a large paired-end RNA-seq BAM (~186M reads) on AWS.
It currently includes:
rustqc rna— single-command RNA-Seq QC, designed to slot into the nf-core/rnaseq pipeline, but works anywhere:rustqc atac— single-command ATAC-seq QC, designed to slot into the nf-core/atacseq pipeline, but works anywhere.
rustqc rna is a single-command RNA-Seq QC tool that runs all QC analyses in one pass:
| Tool | Reimplements | Description |
|---|---|---|
| dupRadar | dupRadar | PCR duplicate rate vs. expression analysis with density scatter plots |
| featureCounts | featureCounts | Gene-level read counting with biotype summaries |
| bam_stat | RSeQC bam_stat.py |
Basic alignment statistics |
| infer_experiment | RSeQC infer_experiment.py |
Library strandedness inference |
| read_duplication | RSeQC read_duplication.py |
Position- and sequence-based duplication histograms |
| read_distribution | RSeQC read_distribution.py |
Read distribution across genomic features |
| junction_annotation | RSeQC junction_annotation.py |
Splice junction classification |
| junction_saturation | RSeQC junction_saturation.py |
Splice junction saturation analysis |
| inner_distance | RSeQC inner_distance.py |
Paired-end inner distance distribution |
| TIN | RSeQC tin.py |
Transcript Integrity Number |
| preseq | preseq lc_extrap |
Library complexity extrapolation |
| Qualimap rnaseq | Qualimap rnaseq |
Gene body coverage, read origin, strand specificity |
| flagstat | samtools flagstat |
Alignment flag summary |
| idxstats | samtools idxstats |
Per-chromosome read counts |
| stats | samtools stats |
Full samtools stats output including all histogram sections |
All RNA outputs are format- and numerically identical to the upstream tools, and compatible with MultiQC for reporting.
rustqc atac is a single-command ATAC-seq QC tool that runs all QC analyses in one pass, replicating ATACseqQC 1.36.0:
| Module | Reimplements | Description |
|---|---|---|
| bamQC | ATACseqQC bamQC |
Mapping rates, NRF, PBC1/2, MAPQ histogram |
| fragSizeDist | ATACseqQC fragSizeDist |
Fragment-length distribution + plot |
| TSSEscore | ATACseqQC TSSEscore |
TSS enrichment score (sliding window + loess smoothing) |
| NFRscore | ATACseqQC NFRscore |
Nucleosome-free region score per TSS |
| PTscore | ATACseqQC PTscore |
Promoter / transcript-body score per TSS |
| estimateLibComplexity | ATACseqQC estimateLibComplexity |
Library complexity extrapolation (preseq) |
| Tn5 shift | ATACseqQC shiftGAlignmentsList |
+4/−5 Tn5 shift |
| Split (fixed) | ATACseqQC splitGAlignmentsByCut (fixed-interval) |
NFR/mono/di/tri length split |
# 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 rustqcSee the documentation for full usage details, configuration options, output file descriptions, and benchmark results.
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.
This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for details.