Sample deliverables

Every one of these was run end to end on public data, and the script that produced it is downloadable. Nothing here is illustrative: if a number appears, it came out of the pipeline — including the ones that are inconvenient for us.

Do this on your own data: these were all run on public data; the numbers that decide your own project come from your own files. Upload a count matrix and the free QC report returns your per-sample cut-offs, how many cells each one removes and the expected doublet count — no sign-up, the file is deleted once the report is built: omics.hstgenomics.com/qc-check. Price your own project by sample count and modules: omics.hstgenomics.com/cost-calculator.

Want it done rather than shown? We do analysis only — send a count matrix, an h5ad or a Seurat object, Cell Ranger output or a public accession and get the analysis back with the code that produced it, at a fixed price agreed before any work starts: omics.hstgenomics.com/quote. The same numbers are available to software as JSON, no key and no sign-up: omics.hstgenomics.com/api/quote.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Single-cell RNA-seq — the standard analysis

2,638 cells, 6 clusters, 0% unassigned — and the annotation cross-checked blind against a reference classifier (6/6 agreement).

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Spatial transcriptomics — 10x Visium

4,025 spots, 10 spatial domains; the top spatially variable genes recover known lymph-node architecture without being told what to look for.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Bulk RNA-seq — differential expression

DESeq2 on public GEO data with the design read from the source metadata; milk-protein genes top the result, which is the biological check that the pipeline behaved.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Pseudobulk vs per-cell — the statistics decide the answer

On 8-donor data the two approaches disagree on 68.3% of differential-expression calls; all 10 canonical interferon genes are recovered by the design-aware analysis.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Batch integration — with the over-correction check

Donor clustering reduced 20.2% while the treatment signal moved -0.1%. Most integration reports show only the first number.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Answering reviewer comments — with computation

QC thresholds re-run at three settings (ARI 0.894/0.872); the permissive setting recovers a platelet population the strict one deletes. Plus real doublet detection.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

Differential abundance — without inventing findings

"Cell type X increased after treatment" is the claim most often made wrongly. This one is tested at subject level.

Every claim, with the number behind it

Each row is computed at page load from the metrics file that the analysis itself produced — so this table cannot drift away from the results. The right-hand column is the check that would have failed if the pipeline were wrong.

AnalysisScaleThe check that had to pass
Single-cell, end to end 2,638 cells, 6 clusters A reference classifier run blind agreed on 6/6 clusters
Spatial (Visium) 4,025 spots, 10 regions Top spatially variable genes are IGKC / FDCSP / CCL21 — lymph-node architecture, recovered unprompted
Bulk RNA-seq 2,414 up / 2,340 down Milk-protein genes top the lactating-vs-virgin comparison
Pseudobulk vs per-cell 8 donors, 5,317 cells All 10 canonical interferon genes recovered; the two methods disagree on 68.3% of calls
Differential abundance 24,673 cells, 8 donors Pooling calls 4 cell types changed; per donor calls 0 — and 0 is the correct answer here
Trajectory (PAGA) 2,730 cells, 10 clusters Erythroid and myeloid markers anti-correlate (r = -0.561) — the branches are real
Cell–cell communication 24,360 cells, 8 cell types Interferon-induced ligands (CXCL10, HLA-A, HLA-B) appear only after stimulation
Deconvolution 30 synthetic mixtures Accuracy stated as a number: r = 0.769, RMSE 7.48 pp — including the two cell types it gets wrong
CITE-seq 4,057 cells, 32 antibodies Isotype background 0.25%; 5/5 protein–RNA pairs agree
Imaging-based spatial (Xenium) 10x Xenium breast cancer FFPE (public) 313-gene panel, 0.095% negative-control background, and segmentation diagnostics — the checks Visium analysis does not need
Multiome (RNA + ATAC) 10x PBMC 3k Multiome (public) Same cells clustered on each modality separately agree at ARI 0.553; gene activity is only reliable where several peaks sit near the gene
Single-cell ATAC-seq 10x 5k PBMC scATAC (public) FRiP and fragment QC, TF-IDF + LSI, and how much the routine depth-component removal changes the clusters (ARI 0.689)
RNA velocity 3,696 cells, 16.3% unspliced Confidence 0.729; the inferred order reproduces known endocrine development

The deliverable itself

A self-contained report as it actually arrives: figures embedded, QC table, annotation cross-check, a manuscript-ready methods paragraph, and a stated limitations section.

Want the same on your data?

Start with the free QC report (no sign-up, file deleted after the report is built), or build a plan to see which modules your design actually needs.

→ Get a fixed quote

Trajectory and pseudotime

PAGA topology before ordering, diffusion pseudotime from a defined root, and a quantitative branch check against known erythroid and myeloid markers.

Cell–cell communication

Ligand–receptor analysis compared between conditions rather than read as absolute scores, with the known interferon response recovered as a check.

Deconvolution, benchmarked

Synthetic bulk samples with known proportions built from held-out donors, so the accuracy of the deconvolution can be stated as a number — including where it is poor.

CITE-seq (protein + RNA)

Isotype-control background, CLR normalisation of antibody counts, and protein-versus-RNA agreement measured cluster by cluster.

Imaging-based spatial (Xenium)

Single-cell resolution in tissue, but only 313 genes — and a failure mode Visium does not have. Background measured from negative controls, segmentation measured rather than assumed.

Multiome (RNA + ATAC)

Both measurements from the same cells, so agreement can be measured rather than assumed. Clustering each half separately agrees at ARI 0.553.

Single-cell ATAC-seq

Chromatin accessibility has its own quality metrics and its own normalisation. We also measured what the standard depth-component removal does to the cluster boundaries — the two defensible choices agree at ARI 0.689.

RNA velocity

Unspliced fraction, per-cell velocity confidence, and whether the inferred direction reproduces known pancreatic endocrine development — the three numbers that decide whether the arrows mean anything.