Sample deliverable — differential expression, done two ways

The single most consequential decision in a multi-subject single-cell study is how differential expression is tested. This is that decision, run both ways on the same cells, on public data (GEO GSE96583 (Kang et al. 2018) — 8 donors, control vs IFN-β) — so you can see exactly how much the answer moves.

Do this on your own data: the size of the disagreement shown here belongs to this dataset — on yours it depends on how many donors you have, not how many cells. Upload your matrix and the free QC report tells you how many cells survive per sample, which is what a pseudobulk design actually rests on: omics.hstgenomics.com/qc-check. How many donors a single-cell differential-expression study needs: omics.hstgenomics.com/guides/how-many-donors-for-single-cell-de.

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.

8donors, each in both conditions
24,360singlet cells
5,317CD14+ Monocytes analysed
2,117genes — pseudobulk
1,126genes — per-cell test
68.3%of calls disagree

1 · The design

Eight donors, each sampled with and without interferon-β. The real sample size is eight per group, not 2,658 cells per group — and the two methods differ entirely in which of those numbers they believe.

DonorConditionCells aggregated
101ctrl202
101stim244
1015ctrl779
1015stim653
1016ctrl369
1016stim320
1039ctrl126
1039stim161
107ctrl209
107stim164
1244ctrl415
1244stim284
1256ctrl390
1256stim370
1488ctrl295
1488stim336

2 · Both methods, same cells

Left: counts aggregated per donor and condition, then DESeq2 with donor in the model (a paired design). Right: every cell treated as an independent observation, Wilcoxon, BH-corrected — the default in most tutorials.

Method comparison
ComparisonGenes
Called by both methods781
Only by the per-cell test345
Only by pseudobulk1,336
Disagreement68.3% of all calls

The usual warning about per-cell tests is that they inflate the gene list. Here — a very strong, very consistent treatment effect with a paired design — the honest result is more interesting than the cliché: the per-cell test returns fewer genes overall, uniquely calls 345 that the design-aware analysis does not support, and misses 1,336 that it does. Two thirds of the final list depends on a methodological choice that is rarely stated in a paper.

3 · Pseudobulk result

Pseudobulk volcano plot

4 · The correctness check

Interferon-β has a known signature. All ten canonical interferon-stimulated genes come out significantly up in the pseudobulk analysis — 10/10 — with fold changes in the range you would expect. A method that cannot recover a known biology should not be trusted with an unknown one, and this is the check we build into every project.

GenePseudobulk log2FCPseudobulk padjPer-cell log2FC
ISG157.742.1e-868.76
IFI64.986.8e-355.23
IFIT18.641.7e-458.8
IFIT37.855.2e-888.25
MX16.231.2e-536.27
OAS15.222.7e-525.26
IFI44L6.221.6e-185.34
RSAD28.387.2e-378.59
CXCL109.794.9e-4110.65
STAT12.322.7e-341.99

What this means for your project

→ Get a quote · single-cell sample · spatial sample · bulk RNA-seq sample