Transcriptomics
Learning Objectives
- Understand the dynamics of pre-mRNA splicing and distinguish the 5 canonical alternative splicing topologies.
- Compare RNA-seq library preparations: oligo(dT) poly-A selection vs ribosomal RNA depletion (Ribo-Zero).
- Implement spliced read alignment using STAR and quasi-mapping abundance quantification using Salmon.
- Perform differential gene expression testing using negative binomial generalized linear models in DESeq2.
1. The Dynamic Transcriptome & Alternative Splicing
While the genomic DNA sequence is largely static across all somatic cells of an individual organism, the transcriptome—the complete set of RNA transcripts produced in a specific cell at a given moment—is exceptionally dynamic. It reflects precise transcriptional responses to environmental stimuli, developmental cues, and disease states.
In human cells, over 95% of multi-exon genes undergo alternative pre-mRNA splicing, allowing a single gene to encode multiple functionally distinct protein isoforms. The spliceosome (a massive ribonucleoprotein machine consisting of U1, U2, U4, U5, and U6 snRNPs) recognizes conserved 5' splice donor (GU), 3' splice acceptor (AG), and branch point (adenosine) consensus motifs.
2. Library Preparation Chemistries: Poly-A vs Ribosomal Depletion
In typical mammalian total RNA, ribosomal RNA (rRNA: 28S, 18S, 5.8S, 5S) constitutes >80% to 90% of all molecules. To obtain meaningful sequencing coverage of informative protein-coding and regulatory transcripts, rRNA must be eliminated:
- Oligo(dT) Poly-A Selection: Employs magnetic beads coated with oligo-dT oligonucleotides that selectively hybridize to the 3' polyadenylated tails of mature eukaryotic mRNAs. Limitation: Misses non-polyadenylated RNAs, degrades on fragmented FFPE tissues.
- Ribosomal RNA Depletion (Ribo-Zero / RNase H): Employs antisense probe hybridization to 18S/28S rRNAs followed by enzymatic cleavage with RNase H or magnetic capture. Benefit: Preserves non-polyadenylated long non-coding RNAs (lncRNAs), circular RNAs (circRNAs), and degraded clinical FFPE samples.
3. Normalization Mathematics: TPM vs FPKM vs DESeq2 Size Factors
Raw read counts cannot be directly compared across genes or samples due to two technical biases: gene length bias (longer transcripts produce more fragments) and sequencing depth bias (libraries sequenced deeper produce more reads).
1. TPM (Transcripts Per Kilobase Million): Normalizes for gene length first, then sequencing depth. The sum of all TPMs in every sample equals exactly 1,000,000, making it valid for relative abundance comparisons across samples.
2. DESeq2 Median of Ratios: Calculates a pseudo-reference sample by taking the geometric mean across all samples for each gene. The median ratio of a sample's counts to this pseudo-reference defines the sample size factor, preventing highly expressed outliers from skewing normalization.
4. Hands-on Quantification & Differential Expression Analysis
# Step 1: Ultra-fast quasi-mapping quantification with Salmon
salmon quant -i GRCh38_salmon_index -l A \
-1 sample_R1.fastq.gz -2 sample_R2.fastq.gz \
--validateMappings --gcBias --seqBias -o salmon_quant/
# Step 2: DESeq2 Differential Expression Workflow in R
library(DESeq2)
library(tximport)
# Import Salmon transcript abundance
txi <- tximport(files, type = "salmon", tx2gene = tx2gene)
dds <- DESeqDataSetFromTximport(txi, colData = sampleTable, design = ~ batch + condition)
# Run DESeq2 pipeline
dds <- DESeq(dds)
res <- results(dds, contrast = c("condition", "treated", "untreated"), alpha = 0.05)
resLFC <- lfcShrink(dds, coef = "condition_treated_vs_untreated", type = "apeglm")
# Filter significant genes (FDR < 0.05 and |log2FC| > 1)
sig_genes <- subset(resLFC, padj < 0.05 & abs(log2FoldChange) > 1.0)