The ultimate goal of most transcriptional profiling experiments is to identify differentailly expressed genes or transcripts. Earlier in the course, we used Sleuth to get a quick view of differential transcript expression. In this class, we’ll dig into differential expression more deeply using the popular and venerable Limma package in R. This gives us a chance to compare and contrast these two methods for identifying genes/transcripts of interest. We’ll also have a chance to talk about special cases when your analyses should include a paired design or correct for batch effects.


  • Use the limma package to identify differentially expressed genes
  • Produce static and interactive volcano plots


Step 5 script


VOOM: precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biology, Feb, 2014 - Describes one of the approaches for adjusting RNAseq count data based on the mean-variance relationship.

RNA-Seq workflow: gene-level exploratory analysis and differential expression. F1000, Oct 2015

Harold Pimentel’s talk on differential expression with RNAseq

how to set-up a design matrix

Count-based differential expression analysis of RNA sequencing data using R and Bioconductor. Nature Protocols, Aug 22, 2013 - This is great overview of the edgeR and DESeq packages, their use, and explains how each one approaches differential gene expression.

Limma user’s guide

EdgeR user’s guide. See section 3.4 and 3.5 for details about how to modify your model.matrix function for a ‘blocking’ design.