Every figure and number on our sample pages was produced by one of these scripts, from public data. They are here to download and re-run — that is what "reproducible" has to mean if it means anything. Your own project ships with its own script in exactly this form.
Downloads the public 10x PBMC 3k dataset, runs QC, filtering, normalisation, HVG selection, PCA, neighbours, UMAP, Leiden clustering, marker genes and marker-based annotation. Produces every figure and number on the single-cell sample page.
Repeats the manual annotation, then runs a public CellTypist reference model that never sees those labels, and compares the two cluster by cluster at lineage level.
Public 10x Visium human lymph node section: QC, filtering, clustering into spatial domains, spatial autocorrelation (Moran’s I) for spatially variable genes, and tissue overlays.
GEO GSE60450: reads the sample design from the GEO series matrix rather than assuming it, then DESeq2 via pydeseq2, volcano plot, sample clustering, and a milk-protein sanity check.
Public haematopoiesis data: PAGA topology, force-directed layout initialised from it, diffusion pseudotime from a defined root, and a quantitative branch check against erythroid and myeloid markers.
Builds synthetic bulk samples with known cell-type proportions from held-out donors, deconvolves them against a reference built from the other donors, and reports accuracy per cell type.
Ligand–receptor analysis on the 8-donor dataset, run separately for each condition and compared, with a check that known interferon-induced ligands are recovered.
Cell-type proportions per donor from the same 8-donor dataset, tested both by pooling all cells and by a donor-level paired test, with the two results compared.
GEO GSE96583, 8 donors with and without interferon-β: aggregates counts per donor and condition for a paired DESeq2 analysis, then runs a naive per-cell Wilcoxon on the same cells and compares the two gene lists.
python -m venv .venv && . .venv/bin/activate pip install scanpy leidenalg igraph matplotlib pydeseq2 celltypist python run_demo.py # single-cell sample python run_pseudobulk.py # needs the GEO files listed at the top of the script
Each script downloads its own public data, except the pseudobulk one, which expects four GEO files whose URLs are in the header comment. Comments in the source are in the analyst's working language (Chinese); the code and variable names are not.
Two reasons, both practical. It lets you check our work instead of trusting a claim — run it and see whether the numbers on the sample pages come out. And it shows the form your own delivery takes: a script you can hand to a student, not a folder of images whose provenance died with the project.