Skip to content

Tutorial R Seurat ↔ Shanuz side-by-side comparisons

Latest

Choose a tag to compare

@shanikawm shanikawm released this 06 Jul 03:30
aabaa7c

Documentation-only release. No library code changed — the installable shanuz package remains 0.2.0 on PyPI and is byte-identical to the 0.2.0 wheel. This tags a batch of tutorial improvements only.

What changed

Every tutorial now presents a genuine left-R (Seurat) / right-Python (Shanuz) side-by-side comparison. Two tutorials were previously pure ports whose "R (Seurat)" column held only code (no R figures), which read as an "R-only" page; others had one-sided or orphaned figures.

New R reproduction scripts

Each mirrors its Python tutorial's exact pipeline and writes r_* figures titled "R Seurat – …":

Script Tutorial
tutorials/pbmc8k_subclustering_verify.R Advanced PBMC 8k clustering + subclustering
tutorials/cbmc_citeseq_verify.R Multimodal CITE-seq (RNA + ADT)
tutorials/pbmc3k_verify.R PBMC 3k (the RidgePlot the vignette omits)
tutorials/pbmc3k_sctransform_verify.R SCTransform (cell-type UMAP + SCT-vs-standard)

Balance & cleanup

  • 23 new R Seurat figures across the advanced, multimodal, sctransform, and pbmc3k tutorials.
  • All 6 tutorials verified two-sided — R-side figure count equals Shanuz count everywhere.
  • Surfaced two orphaned xenium figures (QC violin, clusters-in-space) and removed redundant duplicate QC-scatter panels. Zero orphaned figures repo-wide.

Notable finding

Seurat's CLR normalization (margin=2) has a different absolute scale than Shanuz's, so the CITE-seq annotation thresholds are re-calibrated to Seurat's per-cluster CLR values (documented in cbmc_citeseq_verify.R); both resolve the same 9 lineages.

Full changelog: v0.2.0...tutorials-2026.07.06