Skip to content

dupRadar Benchmark

RustQC produces output identical to the R dupRadar package. Every value in the duplication matrix, every count, and the fitted model parameters match exactly. The benchmarks below quantify the performance difference on real RNA-seq data.

Input: A test BAM file with a chr6-only GTF annotation (2,905 genes).

MetricdupRadar (R)RustQC
Runtime2.50s0.25s
Speedup10x
MetricdupRadar (R)RustQCExact match
Intercept0.031860.03186Yes
Slope1.601891.60189Yes
Genes total2,9052,905Yes
Genes with reads636636Yes
Genes with duplicates201201Yes
allCounts (unique)20,44920,449100%
filteredCounts (unique)17,87917,879100%
allCountsMulti22,81222,812100%
filteredCountsMulti20,03420,034100%
Total values compared37,76537,765
Value mismatches0

Input: GM12878 REP1 — a full-size RNA-seq BAM (~10 GB) from the nf-core/rnaseq pipeline, duplicate-marked with Picard. Paired-end, unstranded, aligned to GRCh38 (63,086 genes).

ToolRuntimeMax RSS
R dupRadar27m 21sN/A (Docker)
RustQC (10 threads)3m 56s6.1 GB

Note: RustQC now runs dupRadar, featureCounts, and all 7 RSeQC tools in a single pass, so its runtime reflects the full combined workload. R dupRadar timings are from Docker with x86 emulation on ARM Mac.

MetricdupRadar (R)RustQCExact match
Intercept0.82450.8245Yes
Slope1.67741.6774Yes
Genes total63,08663,086Yes
Genes with reads (unique)23,59723,597Yes
Genes with reads (multi)24,71924,719Yes
allCounts (unique)14,654,57914,654,579100%
filteredCounts (unique)3,599,8323,599,832100%
allCountsMulti16,089,48816,089,488100%
filteredCountsMulti4,503,9204,503,920100%
Total values compared820,118820,118
Value mismatches0

All four count columns match exactly across all 63,086 genes for both unique and multi-mapper counts. A cell-by-cell comparison of the full duplication matrix (820,118 values) shows zero mismatches at a relative tolerance of 1e-6. Model fit parameters (intercept and slope) match to at least 10 significant digits.

The plots below compare the R dupRadar output (left) with RustQC output (right) for the large benchmark.

dupRadar (R) density scatter plot
dupRadar (R)
RustQC density scatter plot
RustQC
dupRadar (R) duplication rate boxplot
dupRadar (R)
RustQC duplication rate boxplot
RustQC
dupRadar (R) expression histogram
dupRadar (R)
RustQC expression histogram
RustQC