limma powers differential expression analyses for RNA-sequencing and microarray studies
Matthew E. RitchieiD, Belinda PhipsoniD, Di WuiD, Yifang HuiD, Charity W. LawiD, Wei ShiiD, Gordon K. SmythiD
Abstract
limma is an R/Bioconductor software package that provides an integrated solution for analysing data from gene expression experiments. It contains rich features for handling complex experimental designs and for information borrowing to overcome the problem of small sample sizes. Over the past decade, limma has been a popular choice for gene discovery through differential expression analyses of microarray and high-throughput PCR data. The package contains particularly strong facilities for reading, normalizing and exploring such data. Recently, the capabilities of limma have been significantly expanded in two important directions. First, the package can now perform both differential expression and differential splicing analyses of RNA sequencing (RNA-seq) data. All the downstream analysis tools previously restricted to microarray data are now available for RNA-seq as well. These capabilities allow users to analyse both RNA-seq and microarray data with very similar pipelines. Second, the package is now able to go past the traditional gene-wise expression analyses in a variety of ways, analysing expression profiles in terms of co-regulated sets of genes or in terms of higher-order expression signatures. This provides enhanced possibilities for biological interpretation of gene expression differences. This article reviews the philosophy and design of the limma package, summarizing both new and historical features, with an emphasis on recent enhancements and features that have not been previously described.
02 /Specification & Classification
Click any tag to browse matching papers- Citations
- 40,466
- FWCI
- 531.91
- Field percentile
- top 1%
- Organism
- Assay
- Research Focus
- Approach
In-depth summary
Claude Opus 5.5 · max effort · 8 Nov 2026 · from the full text (20 Jan 2015) · CC BY 4.0
limma couples gene-wise linear models with empirical Bayes variance moderation and weights; voom extends it to RNA-seq, and added functions test differential splicing and gene sets.
Expression studies often combine complex multi-factor designs, batch effects and covariates with only a few biological replicates, which makes gene-wise inference fragile. limma fits linear models to whole experiments rather than piecemeal pairwise comparisons, borrowing strength across genes, and via voom lets RNA-seq counts reuse the microarray toolset instead of dedicated negative binomial software.
Key results
ClaimedGene-wise linear models are linked by global parameters: residual variances are shrunk toward a common or mean-dependent trended prior (robustly, to spare hyper-variable genes), while quantitative weights and a consensus intrablock correlation handle unequal quality and repeated measures.
Described, not benchmarked: moderation reportedly raises the effective degrees of freedom of variance estimates and permits exact small-sample inference, feeding moderated t- and F-statistics; it cuts false positives for genes with tiny variances and lifts power for those with larger ones; combined probe and array weights are cited as raising power to detect differential expression (DE). · Empirical Bayes borrows information between…; Quality weights and heteroscedasticity; Blocking and random effects; Testing for DE
Claimedvoom converts RNA-seq read counts to log2 counts per million with precision weights derived from an empirically fitted mean-variance trend, letting RNA-seq share limma's linear models, tests and plots; diffSplice adds exon-level differential splicing tests.
No benchmark is reported here; the text asserts performance comparable to the best negative binomial-based packages with greater speed and reliability on large data sets, and diffSplice as considerably faster than alternatives. Figure 3A (Pickrell et al. RNA-seq) shows technical variability falling with count size as total variability nears biological variability. · RNA-seq and sequence data; Pre-processing RNA-seq and other sequencing data; Testing for differential splicing; Figure legends
SuggestedThreshold-free signature tests work on any linear-model contrast: camera adjusts for inter-gene correlation, roast/mroast and romer use rotation in residual space, roast can weight genes by prior direction and size of change, and genas estimates biological correlation between two contrasts.
Illustrated, not quantified: a barcodeplot of Pax5-restoration RNA-seq (GSE52870) shows strong positive concordance with a published large-to-small pre-B cell transition signature, with no P-value reported; genas reportedly helped reveal opposing PRC1 and PRC2 roles that analysing only significant genes would have missed. · MATERIALS AND METHODS; Genuine association of gene expression profiles; Gene set testing; Figure legends
ShownExploratory displays expose technical artefacts before testing: plotMDS revealed strong batch effects among biologically identical control microarrays, flagging structure to model in the design matrix, and plotMA highlights spike-in controls on a two-colour array.
Figure 3C: plotMDS on a subset of 30 print-tip loess-normalized control arrays from the Ritchie et al. quality-control set, with distances as leading log2-fold changes (root-mean-square of the most discriminating log-fold-changes); Figure 3B marks negative (NC), constant (DR) and DE (D03, D10, U03, U10) spike-ins. · MATERIALS AND METHODS; Graphical exploration of data quality; Exploration of sample relationships; Figure legends
Claimedlimma is built for scale and reuse: memory grows linearly with genes and samples, many other Bioconductor packages build on it, and it is the engine or building block behind interfaces such as GEO2R, the EBI expression atlas and Degust.
Stated without a timing benchmark: most estimation steps take a few seconds on an ordinary desktop and nearly all under a minute; more than 120 other Bioconductor packages used limma as of March 2014; the user's guide exceeds 120 pages with 10 worked case studies supplying data and code. · Computational efficiency; Availability; Documentation
Methods, data and reproducibility
Software review of limma: per-gene linear models with design and contrast matrices, linked by empirical Bayes variance moderation, weights and consensus correlations, fitted to normalized microarray log-ratios/log-intensities or to voom-weighted RNA-seq log2 counts per million. Features are illustrated with published examples, not formally benchmarked.
- RNA-seq data from Pickrell et al., analysed as in Law et al., used for the voom mean-variance plot (Figure 3A)
- Two-colour microarray quality-control arrays from Ritchie et al. carrying spike-in controls (Figure 3B mean-difference plot; Figure 3C multidimensional scaling plot) · n = subset of 30 control arrays (Figure 3C)
- Two-colour microarray series comparing over-expression of three genes, including RUNX1, against wild-type (volcano plot, Venn diagram; false discovery rate below 0.05) · GSE2593
- RNA-seq series on Pax5 restoration, analysed as in Liu et al., compared with a published large-to-small pre-B cell transition gene signature (barcode plot) · GSE52870
- Molecular Signatures Database (MSigDB) collections in R binary format, maintained by the limma authors for camera, mroast and romer · human and mouse versions
- Methods & tools
- limma (R/Bioconductor package; R with some C code), voom and voomWithQualityWeights (logCPM with precision and sample quality weights), lmFit, contrasts.fit, eBayes, treat (moderated t/F and fold-change-threshold tests), duplicateCorrelation, arrayWeights, intraspotCorrelation and lmscFit, diffSplice, topSplice, plotSplice (differential exon usage), camera, roast/mroast, romer, geneSetTest/wilcoxGST, goana (gene set tests), genas (contrast-to-contrast biological correlation) and propTrueNull, backgroundCorrect (normexp); nec and neqc for Illumina BeadChips, normalizeWithinArrays, normalizeBetweenArrays (loess, quantile, cyclic loess), plotMDS, plotMA, plotSA, volcanoplot, vennDiagram, barcodeplot, edgeR DGEList input and normalization factors (e.g., trimmed mean of M-values), Rsubread/featureCounts, HTSeq-counts or RSEM for upstream read counting
- Data & accessions
- http://bioinf.wehi.edu.au/software/MSigDB
- Software & environment
- R/Bioconductor package implemented mostly in R plus some C code; accepts edgeR DGEList, ExpressionSet, marray, affyPLM and vsn objects; analysis reports can be built with Sweave or knitr. No limma or R version numbers are given.
- Assay conditions & compute
- Memory use scales linearly with numbers of genes and samples; most estimation steps reportedly take a few seconds on an ordinary desktop computer and nearly all under a minute. No specific hardware or timing benchmark is reported.
- Reproducibility gaps
- No package version or session details are stated; example figures defer their processing to earlier papers (Law et al.; Liu et al.) or prior descriptions, and most per-dataset organisms and sample sizes are not reported.
Limitations (6)
- limma deliberately omits permutation and resampling inference and relies on parametric models that the authors concede can never be exactly correct, arguing that more realistic variance modelling outweighs this in small, complex experiments. · stated by the authors
- Rank-based geneSetTest and wilcoxGST assume genes are conditionally independent and so return optimistic P-values; camera corrects this with a variance inflation factor from inter-gene correlation, but at a cost in statistical power. · stated by the authors
- voom must receive raw read counts rather than reads-per-kilobase-per-million (RPKM) summaries so the mean-variance relationship can be estimated; any conversion to RPKM by subtracting log gene lengths has to happen after voom, not before. · stated by the authors
- Lists of DE genes chosen by a false discovery rate cut-off usually miss truly changed genes in underpowered studies; propTrueNull is offered to estimate how many such genes remain undetected. · stated by the authors
- As a review, the article adds no new benchmarks: voom's parity with negative binomial tools, power gains from weights and diffSplice's speed rest on cited prior work, and the figures serve only as illustrations. · noted in this summary
- duplicateCorrelation imposes one consensus intrablock correlation on every gene, so genes whose within-block dependence departs from that value may get miscalibrated tests; this trade-off is not evaluated in the text. · noted in this summary
Who should read:Read this if you analyse microarray or RNA-seq expression data with complex designs and few replicates and need a function-level map of limma, from voom and empirical Bayes testing to weights, splicing and gene set tests.
Reproducibility ledger
Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.
Sign in to file a reproducibility report.
Related papers
- pylimma: a faithful, AnnData-native Python port of R limma for differential expression analysis
John F. Mulvey·bioRxiv·Jul 10, 2026
- Differential gene expression analysis tools exhibit substandard performance for long non-coding RNA-sequencing data
Alemu Takele Assefa, Katrijn De Paepe, … Jo Vandesompele·Genome biologyPeer-reviewed·Jul 24, 2018
- GEOlimma: Differential Expression Analysis and Feature Selection Using Pre-Existing Microarray Data
Liangqun Lu, Kevin A. Townsend, Bernie J. Daigle·BMC BioinformaticsPeer-reviewed·Feb 3, 2021
- Controlling False Positive Rates in Methods for Differential Gene Expression Analysis using RNA-Seq Data
David M Rocke, Luyao Ruan, … Sharon Aviran·bioRxiv·Apr 30, 2015
- Glimma: interactive graphics for gene expression analysis
Shian Su, Charity W. Law, … Matthew E. Ritchie·BioinformaticsPeer-reviewed·Feb 15, 2017
- SARTools: a DESeq2- and edgeR-based R pipeline for comprehensive differential analysis of RNA-Seq data
Hugo Varet, Jean-Yves Coppée, Marie-Agnès Dillies·bioRxiv·Sep 26, 2015