RNA-seq
RNA-seq measures gene expression across the transcriptome. This section follows the same route as the analysis itself: background, processing, differential expression, and pathway analysis. The primary analysis, from FASTQ to a count matrix, is a pipeline job, and the nf-core/rnaseq guide covers it. These pages take the count matrix that comes out of that pipeline and carry it through the downstream analysis.
Every figure and every number on these pages comes from a real run of the code you can
read on the page, in one pinned container, on the Bioconductor airway dataset.
Background
Section titled “Background”What RNA-seq measures, how to design an experiment that can answer the question you ask of it, and the dataset the rest of the section computes on.
| Page | What it does |
|---|---|
| What is RNA-seq | how RNA sequencing measures gene expression across the transcriptome |
| Experimental design | replicates, depth, and library type, settled before sequencing |
| The workflow & the dataset | the RNA-seq workflow end to end, and the airway dataset loaded into R |
Processing
Section titled “Processing”From reads to a count matrix, and the first look at the matrix once it exists.
| Page | What it does |
|---|---|
| nf-core pipelines | what nf-core/rnaseq and nf-core/differentialabundance take as input and return |
| STAR & Salmon | genome alignment with STAR and transcript quantification with Salmon |
| QC & filtering | removing low-count genes and looking at sample structure with PCA |
| Normalization | size factors and the variance-stabilizing transformation in DESeq2 |
Differential expression
Section titled “Differential expression”From the count matrix to the table of changing genes, by three routes.
| Page | What it does |
|---|---|
| Differential expression | running DESeq2, extracting results, and shrinkage |
| DESeq2 & pyDESeq2 | the same analysis in R and in Python, with the numbers compared |
| edgeR & limma | the same comparison with two other packages, and when to use them |
| limma-voom | the voom transformation and limma, in more depth |
Pathway analysis
Section titled “Pathway analysis”Whether the changing genes share biological structure, and the two figures a results section expects.
| Page | What it does |
|---|---|
| Enrichment | over-representation and GSEA with clusterProfiler |
| Over-representation analysis | testing GO terms with clusterProfiler and gseapy |
| Gene set enrichment analysis | ranking every gene and testing the MSigDB Hallmark sets with fgsea and gseapy |
| Visualization | volcano plot and heatmap for the results |
The dataset
Section titled “The dataset”The airway dataset, from Himes et al. 2014, holds RNA-seq counts from human airway
smooth muscle cells treated with dexamethasone. It ships in the Bioconductor airway
package, so no file is downloaded by hand. Eight samples, four untreated and four
treated, paired by cell line. It is the standard teaching dataset for DESeq2, which
makes it the right place to see what each step does.
R first
Section titled “R first”The DESeq2, edgeR, and limma workflows are R and Bioconductor. There is a Python
implementation, PyDESeq2, but the package set that most published analyses use is R.
These pages are R only, and the runnable scripts live in the companion code repo under
guides/rnaseq/.