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 · free to try
Ask about DESeq2 vs edgeR: RNA-seq DE Compared
Ask your first 2 questions free below. Subscribers get 150 a day for $29 a month.
An AI assistant specialized in research administration. It cites the sources behind every answer, labels web answers and says when it can't answer.
Answers draw on CASRAI's guides and dictionary plus the federal and funder documents we index: Federal Register, Grants.gov, Regulations.gov and UKRI.
Works on this site and inside Claude, Cursor and the AI tools you already use.
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








