Direct comparison
DESeq2 vs edgeR: RNA-seq DE Compared
DESeq2 vs edgeR: how each normalizes counts, models dispersion, and tests significance for RNA-seq differential expression, and when results diverge.
Written and maintained by CASRAI Editorial Board
Last updated
Ask CASRAI · included with Regulatory Radar
Ask about DESeq2 vs edgeR: RNA-seq DE Compared
Ask CASRAI answers research-administration questions and cites the passages behind every claim — and says so when the corpus does not cover something, instead of guessing. It comes with a Regulatory Radar subscription at $29 a month, alongside the daily digest of regulatory changes and the dashboard of what changed.
150 questions a day, on this site, over the API, or inside your own tools through the CASRAI MCP server.
Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.
How do DESeq2, edgeR compare side by side?
The table below compares DESeq2, edgeR across 11 procurement-relevant dimensions, from default normalization method through original methodology paper.
Side-by-side comparison
| Dimension | DESeq2 | edgeR |
|---|---|---|
| Default normalization method | Median-of-ratios: a per-sample size factor computed as the median of that sample's gene-wise count ratios against a pseudo-reference sample (Anders & Huber, 2010). | TMM (trimmed mean of M-values): a weighted, trimmed average of log-fold-change ('M') values between each sample and a reference, after excluding genes with extreme log-ratios or intensities (Robinson & Oshlack, 2010). |
| What the normalization corrects for | Library-composition bias — a small number of highly or differentially expressed genes consuming a disproportionate share of one sample’s sequencing depth, which plain total-count scaling does not fix. | The same composition bias; TMM assumes most genes are not differentially expressed, then trims outliers before averaging the rest. |
| Underlying statistical model | Negative binomial generalized linear model (GLM) for count data — the same model family edgeR uses. | Negative binomial GLM; variance modeled as mean + dispersion × mean² to capture overdispersion beyond a Poisson model. |
| Dispersion estimation | Gene-wise dispersions are shrunk toward a fitted mean-dispersion trend curve using an empirical-Bayes, data-driven prior (Love, Huber & Anders, 2014). | A three-tier hierarchy — common, trended, and tagwise (gene-wise) dispersion — with tagwise estimates moderated toward the common/trended value via empirical Bayes (Robinson, McCarthy & Smyth, 2010). |
| Default significance test | Wald test on the fitted GLM coefficient (log2 fold change); a likelihood ratio test (LRT) is available for full-vs-reduced model comparisons. | Quasi-likelihood F-test (glmQLFit / glmQLFTest) is the current recommended pipeline; the older exact test and glmLRT likelihood-ratio test remain available but are not the current default recommendation. |
| Multiple-testing correction | Benjamini-Hochberg FDR by default, reported in the padj column. | Benjamini-Hochberg FDR by default via topTags()/decideTests() — same convention. |
| Required input | Raw, un-normalized integer counts — the model performs its own normalization internally. | Raw, un-normalized integer counts — same requirement; feeding in pre-normalized values such as TPM or FPKM is a documented misuse for either tool. |
| Companion / downstream tooling | lfcShrink() with apeglm or ashr for shrunken, more conservative fold-change estimates. | Pairs with limma's voom() for a combined voom-limma or QLF pipeline; camera()/fry() for gene-set testing. |
| Typical workflow shape | Largely a single wrapper call (DESeq()) that runs normalization, dispersion estimation, and testing in sequence. | More modular — normalization, dispersion estimation, and model fitting are usually called as separate explicit steps. |
| Behavior at low counts / small sample sizes | Dispersion shrinkage toward the fitted trend is designed to stabilize estimates when replicate numbers are small, at some cost in added conservatism. | Empirical-Bayes moderation serves the same purpose; benchmarking generally finds the two tools broadly concordant here, with divergence concentrated in low-count, low-replicate genes rather than well-powered ones. |
| Original methodology paper | Love, Huber & Anders (2014), Genome Biology — building on Anders & Huber (2010). | Robinson, McCarthy & Smyth (2010), Bioinformatics — the TMM method itself from Robinson & Oshlack (2010), Genome Biology. |
Common questions
Common questions about DESeq2 vs edgeR
Do DESeq2 and edgeR give the same results on the same RNA-seq dataset?
+
For well-powered designs — adequate replicates, moderate-to-high counts — the two tools are usually broadly concordant on which genes are called significant. Disagreement concentrates at the margins: genes with low counts, few replicates, or fold changes close to a significance threshold, because that is exactly where the two dispersion-shrinkage strategies diverge most.
Is one tool more conservative than the other?
+
Neither is uniformly more conservative — it depends on the dataset. DESeq2's trend-based dispersion shrinkage and edgeR's tagwise-to-common/trended moderation respond differently to a given mean-variance relationship, so which tool calls more genes significant varies by dataset rather than following a fixed rule.
Can I feed TPM or FPKM values into DESeq2 or edgeR instead of raw counts?
+
No. Both tools require raw, un-normalized integer counts because they perform their own internal normalization (median-of-ratios or TMM) as part of the model. Supplying pre-normalized values like TPM or FPKM is a documented misuse that breaks the count-based negative binomial model both packages rely on.
Which should I use for a small sample size (e.g., n=3 per group)?
+
Both were designed with exactly this scenario in mind — RNA-seq studies rarely have large replicate numbers, and both packages' dispersion-shrinkage strategies exist to stabilize estimates when replicates are few. Neither has a settled, universal edge at n=3; the practical approach is to run either with default settings, inspect the dispersion plot, and use the same tool consistently through the analysis rather than switching mid-study.
Do they use the same statistical test?
+
No. DESeq2's default is a Wald test on the fitted GLM coefficient (with a likelihood ratio test available as an alternative). edgeR's current recommended default is a quasi-likelihood F-test (glmQLFit/glmQLFTest); its older exact test and likelihood-ratio test (glmLRT) remain available but are not the current recommendation.
Going deeper








