Credits & Citation
RustQC stands on the shoulders of giants. It is a reimplementation of established bioinformatics tools, and would not exist without their foundational work.
If you use RustQC, please cite the original tools.
dupRadar
Section titled “dupRadar”RustQC reimplements the dupRadar Bioconductor package, created by Sergi Sayols, Dominik Scherzinger, and Holger Klein. dupRadar provides the statistical framework for assessing PCR artifacts in RNA-seq data by modeling duplication rates as a function of gene expression level.
Sayols S, Scherzinger D, Klein H. dupRadar: a Bioconductor package for the assessment of PCR artifacts in RNA-Seq data. BMC Bioinformatics. 2016;17(1):428.
- Bioconductor: https://bioconductor.org/packages/dupRadar/
- Publication: https://doi.org/10.1186/s12859-016-1276-2
Subread / featureCounts
Section titled “Subread / featureCounts”RustQC produces featureCounts-compatible output using the same counting approach as Subread featureCounts, created by Yang Liao, Gordon K. Smyth, and Wei Shi. featureCounts is the standard tool for assigning sequence reads to genomic features.
Liao Y, Smyth GK, Shi W. featureCounts: an efficient general purpose program for assigning sequence reads to genomic features. Bioinformatics. 2014;30(7):923-930.
- Website: http://subread.sourceforge.net/
- Publication: https://doi.org/10.1093/bioinformatics/btt656
RustQC reimplements seven quality control tools from the RSeQC package, created by Liguo Wang, Shengqin Wang, and Wei Li. RSeQC is a widely used toolkit for evaluating RNA-seq data quality, covering alignment statistics, strandedness, read distribution, splice junctions, and fragment size.
Wang L, Wang S, Li W. RSeQC: quality control of RNA-seq experiments. Bioinformatics. 2012;28(16):2184-2185.
- Website: https://rseqc.sourceforge.net/
- Publication: https://doi.org/10.1093/bioinformatics/bts356
preseq
Section titled “preseq”RustQC reimplements library complexity estimation from the preseq package, created by Timothy Daley, Andrew Smith, and colleagues. preseq predicts library complexity and estimates the expected number of distinct molecules at increasing sequencing depths.
Daley T, Smith AD. Predicting the molecular complexity of sequencing libraries. Nature Methods. 2013;10(4):325-327.
- GitHub: https://github.com/smithlabcode/preseq
- Publication: https://doi.org/10.1038/nmeth.2375
samtools
Section titled “samtools”RustQC produces output compatible with samtools flagstat, idxstats, and stats (SN section), created by Heng Li and the HTSlib project. These formats are widely used by downstream QC tools including MultiQC.
Danecek P, Bonfield JK, Liddle J, et al. Twelve years of SAMtools and BCFtools. GigaScience. 2021;10(2):giab008.
- Website: http://www.htslib.org/
- Publication: https://doi.org/10.1093/gigascience/giab008
Qualimap
Section titled “Qualimap”RustQC produces gene body coverage output compatible with Qualimap rnaseq, created by Fernando Garcia-Alcalde and colleagues. The output is parseable by MultiQC as a Qualimap rnaseq report.
Garcia-Alcalde F, Okonechnikov K, Carbonell J, et al. Qualimap: evaluating next-generation sequencing alignment data. Bioinformatics. 2012;28(20):2678-2679.
- Website: http://qualimap.conesalab.org/
- Publication: https://doi.org/10.1093/bioinformatics/bts503
Key dependencies
Section titled “Key dependencies”RustQC is built with the following open-source Rust libraries:
| Library | Purpose |
|---|---|
| rust-htslib | SAM/BAM/CRAM file I/O via htslib bindings |
| plotters | Plot generation (PNG and SVG) |
| clap | Command-line argument parsing |
| anyhow | Error handling |
| rayon | Data parallelism |
| coitrees | Cache-oblivious interval trees |
| rand / rand_chacha | Reproducible random number generation |
| flate2 | Gzip decompression for annotation files |
| serde | YAML configuration deserialization |
| indexmap | Insertion-order-preserving maps |
| env_logger | Logging output |
RustQC
Section titled “RustQC”RustQC is created by Phil Ewels.
- Repository: https://github.com/ewels/RustQC