diff --git a/docs/src/content/docs/benchmarks/dupradar.md b/docs/src/content/docs/benchmarks/dupradar.mdx
similarity index 69%
rename from docs/src/content/docs/benchmarks/dupradar.md
rename to docs/src/content/docs/benchmarks/dupradar.mdx
index 570c445..dc5b900 100644
--- a/docs/src/content/docs/benchmarks/dupradar.md
+++ b/docs/src/content/docs/benchmarks/dupradar.mdx
@@ -3,6 +3,8 @@ title: dupRadar Benchmark
description: Performance comparison between RustQC and R dupRadar, with zero output mismatches across all values.
---
+export const base = import.meta.env.BASE_URL;
+
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.
## Small benchmark
@@ -69,39 +71,39 @@ The plots below compare the R dupRadar output (left) with RustQC output (right)
#### Density scatter plot
-
-
-
+
+
+ dupRadar (R)
-
-
+
+ RustQC
#### Duplication rate boxplot
-
-
-
+
+
+ dupRadar (R)
-
-
+
+ RustQC
#### Expression histogram
-
-
-
+
+
+ dupRadar (R)
-
-
+
+ RustQC
diff --git a/docs/src/content/docs/benchmarks/featurecounts.md b/docs/src/content/docs/benchmarks/featurecounts.mdx
similarity index 51%
rename from docs/src/content/docs/benchmarks/featurecounts.md
rename to docs/src/content/docs/benchmarks/featurecounts.mdx
index fcc1181..b36c84a 100644
--- a/docs/src/content/docs/benchmarks/featurecounts.md
+++ b/docs/src/content/docs/benchmarks/featurecounts.mdx
@@ -3,6 +3,8 @@ title: featureCounts Benchmark
description: Performance and accuracy comparison between RustQC's built-in read counting and Rsubread featureCounts.
---
+export const base = import.meta.env.BASE_URL;
+
RustQC includes built-in gene-level read counting that produces output
compatible with the Subread featureCounts format. This page compares the
counting performance and output accuracy against standalone Rsubread
@@ -48,6 +50,49 @@ exactly.
The output format is directly compatible with downstream tools such as DESeq2
and MultiQC.
+### Side-by-side plots
+
+Since dupRadar visualizations are derived from the same gene-level counts, identical plots confirm that the underlying feature counting is correct. The plots below compare R dupRadar output (left) with RustQC output (right) for the large benchmark.
+
+#### Density scatter plot
+
+
+
+
+ dupRadar (R)
+
+
+
+ RustQC
+
+
+
+#### Duplication rate boxplot
+
+
+
+
+ dupRadar (R)
+
+
+
+ RustQC
+
+
+
+#### Expression histogram
+
+
+
+
+ dupRadar (R)
+
+
+
+ RustQC
+
+
+
## Additional outputs
Beyond the standard featureCounts counts file and summary, RustQC also
diff --git a/docs/src/content/docs/outputs/dupradar.mdx b/docs/src/content/docs/outputs/dupradar.mdx
index a5057e5..dde1499 100644
--- a/docs/src/content/docs/outputs/dupradar.mdx
+++ b/docs/src/content/docs/outputs/dupradar.mdx
@@ -5,6 +5,8 @@ description: Comprehensive guide to RustQC's dupRadar output files, including th
import { Card, CardGrid, FileTree } from '@astrojs/starlight/components';
+export const base = import.meta.env.BASE_URL;
+
## What is dupRadar?
In DNA sequencing, PCR duplicates are straightforward to identify and remove: reads with identical alignment coordinates are likely amplification artifacts. In **RNA-seq**, the situation is more nuanced.
@@ -118,15 +120,15 @@ See the [Interpreting plots](#interpreting-plots) section below for how to read
`_duprateExpDens.{png,svg}`
- 
+
`_duprateExpBoxplot.{png,svg}`
- 
+
`_expressionHist.{png,svg}`
- 
+
diff --git a/docs/src/content/docs/outputs/rseqc.mdx b/docs/src/content/docs/outputs/rseqc.mdx
index f4bd3a2..19a6776 100644
--- a/docs/src/content/docs/outputs/rseqc.mdx
+++ b/docs/src/content/docs/outputs/rseqc.mdx
@@ -5,6 +5,8 @@ description: Output files produced by RustQC's RSeQC-compatible quality control
import { Card, CardGrid, FileTree } from '@astrojs/starlight/components';
+export const base = import.meta.env.BASE_URL;
+
RustQC reimplements seven tools from the [RSeQC](https://rseqc.sourceforge.net/)
package. Each tool produces output files that match the format and content of the
original Python implementation, plus **native PNG and SVG plots** generated
@@ -87,7 +89,7 @@ high duplication.
-
+
@@ -136,10 +138,10 @@ known (blue), partial novel (red), and complete novel (green) splicing.
-
+
-
+
@@ -169,7 +171,7 @@ detected (in thousands). A plateau in the curves indicates saturation.
-
+
@@ -210,7 +212,7 @@ approximately normal for a well-prepared library.
-
+