edgeR Tutorial


Go to ai.tinybio.cloud/chat to chat with a life sciences focused ChatGPT.

edgeR is a powerful tool in the field of bioinformatics, specifically designed for differential expression analysis of digital gene expression data. It is part of the Bioconductor project, which is a repository of software packages for the analysis of genomic data. edgeR stands out for its ability to handle count-based expression data from various high-throughput sequencing experiments, such as RNA-seq, SAGE (Serial Analysis of Gene Expression), and other technologies that produce digital expression data.

The main goal of edgeR is to identify significant differences in transcript or exon counts across different experimental conditions. It employs statistical methods to account for both biological and technical variability, ensuring that the results of the differential expression analysis are reliable and accurate. One of the key features of edgeR is its use of an overdispersed Poisson model, which is moderated by empirical Bayes methods to improve the stability of the inferences made from the data.

edgeR is particularly useful because it can be applied even with minimal levels of replication, such as experiments where only one phenotype or condition is replicated. This flexibility makes it a valuable resource for researchers working with limited sample sizes or those who are exploring new experimental designs.

The package is freely available under the LGPL license and can be downloaded from the Bioconductor website. It is maintained by a team of developers who are actively involved in updating and improving the software to meet the evolving needs of the bioinformatics community.


To install edgeR, you will need to have R installed on your computer. R is a free software environment for statistical computing and graphics. Once you have R set up, you can install edgeR directly from the Bioconductor project using the following commands in the R console:

if (!requireNamespace("BiocManager", quietly = TRUE))


This will download and install the latest version of edgeR along with any dependencies it requires. It is important to ensure that your R installation is up to date to avoid any compatibility issues with the package.

Quick Start

Once edgeR is installed, you can begin using it to analyze your count-based expression data. The typical workflow involves reading in the data, filtering out lowly expressed genes, normalizing the counts, estimating the dispersion, and finally, performing the differential expression analysis.

Here's a quick example of how you might start using edgeR:


# Read in the count data
counts <- read.delim("count_data.txt", row.names = 1)

# Create a DGEList object
group <- factor(c("Control", "Treatment"))
dge <- DGEList(counts=counts, group=group)

# Filter out lowly expressed genes
keep <- filterByExpr(dge)
dge <- dge[keep, , keep.lib.sizes=FALSE]

# Normalize the counts
dge <- calcNormFactors(dge)

# Estimate the dispersion
dge <- estimateDisp(dge)

# Perform the differential expression analysis
et <- exactTest(dge)

# Summarize the results

This is a very basic example, and edgeR offers a wide range of options and functions for more complex analyses.

Code Examples Of Popular Commands

Here are five popular commands used in edgeR, along with brief explanations and code examples:

  1. read.delim(): This function is used to read in count data from a text file.
counts <- read.delim("count_data.txt", row.names = 1)
  1. DGEList(): Creates a DGEList object from the count data, which is used for further analysis.
dge <- DGEList(counts=counts, group=group)
  1. filterByExpr(): Filters out genes that are not expressed at a certain level across the samples.
keep <- filterByExpr(dge)
dge <- dge[keep, , keep.lib.sizes=FALSE]
  1. calcNormFactors(): Normalizes the count data to account for differences in library sizes.
dge <- calcNormFactors(dge)
  1. exactTest(): Performs the differential expression analysis using an exact test based on the negative binomial distribution.
et <- exactTest(dge)

These commands form the backbone of the edgeR analysis pipeline and are essential for anyone looking to perform differential expression analysis using this package.

In conclusion, edgeR is a robust and versatile package for analyzing count-based expression data. Its ability to handle various types of sequencing data and its flexibility in terms of experimental design make it a go-to tool for many researchers in the field of bioinformatics. Whether you are a seasoned bioinformatician or just starting out, edgeR offers a comprehensive set of tools to help you uncover the biological significance behind your data.