This repository contains a differential expression analysis of oral squamous cell carcinoma (OSCC) using DESeq2, followed by pathway enrichment analysis using GSEA and Pathweigh. The project investigates transcriptomic changes across three sample classes: Normal, Dysplasia, and OSCC.
deseq2_all_paired.Rmd: R Markdown file with DESeq2 analysis for paired samples.results.pptx: Summary presentation of pathway enrichment results and class comparisons.
The complete transcriptomic analysis pipeline includes the following steps:
-
Combine Lanes
Merge raw sequencing reads from different lanes for each sample. -
FastQC
Perform quality control checks on raw reads. -
MultiQC
Aggregate FastQC reports into a single summary report. -
Fastp
Trim adapter sequences and remove PCR duplicates. -
FastQC (post-trimming)
Re-assess read quality after trimming. -
MultiQC (post-trimming)
Summarize updated FastQC results. -
Kallisto
Quantify transcript abundances using pseudoalignment. -
Differential Expression with DESeq2
- Pairwise comparisons across conditions:
- Dysplasia vs Normal
- OSCC vs Dysplasia
- OSCC vs Normal
- DESeq2 was run with a paired design (
~ subject + condition). - Log2 fold change shrinkage applied (
apeglm).
- Pairwise comparisons across conditions:
-
Pathway Enrichment
-
GSEA (MSigDB Hallmark & C4 gene sets):
- Hallmark: 50 gene sets – Dysplasia shows transient upregulation of specific pathways.
- C4: 858 gene sets – Persistent upregulation across Dysplasia and OSCC vs Normal.
-
Pathweigh Analysis:
- Input: TPM-normalized transcript abundance.
- Output: 581 pathways x sample proportions.
- Used Kolmogorov-Smirnov tests to detect distribution shifts across classes.
-
- Dynamic pathway regulation: Some pathways show increase in Dysplasia and decrease in OSCC.
- Persistent upregulation: Other pathways are continuously elevated from Normal to OSCC.
- Class separation: Significant pathways (via KS test) help distinguish all three sample types visually.
- R 4.2+
- DESeq2
- tidyverse
- EnhancedVolcano
- pheatmap
- RColorBrewer
To install the required packages:
install.packages("tidyverse")
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(c("DESeq2", "EnhancedVolcano", "pheatmap", "RColorBrewer"))