Before DESeq2, there was DESeq
The problem. RNA-seq gives you counts of reads per gene, and counts don’t behave like the continuous, normally-distributed data of the microarray era. They’re discrete, and their variance grows with the mean — worse, biological replicates are overdispersed relative to a simple Poisson. Testing differential expression naively gives wildly anti-conservative results, especially for the low-count genes that dominate the table.
The idea. Anders and Huber model counts with the negative binomial distribution, which separates shot noise from biological variability. Their key move is estimating the mean-variance relationship by pooling information across genes — borrowing strength so that a gene with few replicates gets a sensible variance estimate instead of a noisy one. Normalization handles differing library sizes, and the NB model then gives calibrated tests.
Why it matters. This is the direct ancestor of DESeq2, the engine of my aml_rnaseq_nf pipeline. Reading the original clarifies why the method works — the negative binomial, the shared-information variance estimation — which is exactly the empirical-Bayes instinct that also shows up in scVI and cell2location. Same statistical idea, recurring across the whole reading list.
Verdict. Foundational, and worth reading even though DESeq2 (better shrinkage, the Wald test, apeglm LFC estimation) is what I actually run. The lineage matters: understanding the first version is understanding what the current one improved. Pairs naturally with the FDR paper from this morning — count model plus multiple-testing control is the whole DE story.