Blog

Tagged: differential-expression

28 posts found

Research Guide

Why Most Published GO Analyses Are Statistically Wrong

A 2022 PLOS Computational Biology study found 43% of GO enrichment analyses skip multiple test correction. Here is what that means and how to do it right.

Abdullah Shahid ·
Research Guide

How To Submit RNA-Seq Results That Reviewers Cannot Reject

Reviewers reject RNA-seq papers for predictable reasons: missing FDR correction, version-less methods, inaccessible data. A checklist that prevents it.

Abdullah Shahid ·
Research Guide

How To Write an RNA-Seq Methods Section Reviewers Accept

A reviewer-proof RNA-seq methods section is shorter than you think but far more specific. Templates, required elements, and what reviewers always flag missing.

Abdullah Shahid ·
Tutorial

Differential Expression in Python with PyDESeq2: A Tutorial

PyDESeq2 brings DESeq2 statistics to Python. A complete tutorial covering model fitting, validation against R DESeq2, volcano plots, and enrichment export.

Abdullah Shahid ·
Bioinformatics

Bulk RNA-Seq for Bacteria: Operons and Why nf-core Breaks

Most bulk RNA-seq pipelines fail silently on bacterial data. Here is what changes for operons, GTF feature mismatches, and DE analysis in prokaryotes.

Abdullah Shahid ·
Tutorial

Publication-Ready RNA-Seq Plots in ggplot2: Volcano, Heatmap, PCA

Reviewer-ready RNA-seq plots in R: volcano with gene labels, z-score heatmap with annotation bars, PCA with variance explained, and journal export settings.

Abdullah Shahid ·
Tutorial

ORA vs GSEA: A Side-by-Side Tutorial in R with clusterProfiler

ORA and GSEA answer different questions. A working clusterProfiler tutorial with FDR correction, proper backgrounds, and side-by-side result interpretation.

Abdullah Shahid ·
Research Guide

Why Your DESeq2 Log2 Fold Change Cutoff Of Zero Is Wrong

Filtering DEGs at log2FC greater than zero returns half your genome. How to choose a defensible cutoff, apply lfcShrink, and avoid the GO-term explosion.

Abdullah Shahid ·
Tutorial

Pathway Enrichment Analysis: GSEA and ORA in R and Python

Tutorial for pathway enrichment analysis: GSEA with clusterProfiler and fgsea in R, ORA with enrichGO, and the Python equivalent using gseapy prerank and enrichr. Covers MSigDB Hallmark, KEGG, and GO sets.

Abdullah Shahid ·
Tutorial

From Count Matrix to Volcano Plot: A DESeq2 Walkthrough in R

A complete DESeq2 tutorial in R: loading counts, building the design formula, running DE, applying lfcShrink, generating a volcano plot, and exporting results.

Abdullah Shahid ·
Tutorial

DESeq2 Contrasts: Multiple Conditions and Multi-Factor Designs

Three conditions, paired designs, two-factor experiments, and time courses: how to build the design formula, specify contrasts, and avoid common mistakes.

Abdullah Shahid ·
Tutorial

RNA-Seq Plots: Volcano, MA, and Heatmap in R and Python

Tutorial for publication-ready RNA-seq visualization: volcano plots with ggplot2 and ggrepel, MA plots, and DEG heatmaps with pheatmap and seaborn. Includes 300 dpi export for journals.

Abdullah Shahid ·
Tutorial

Detecting and Correcting Batch Effects in Bulk RNA-Seq

A tutorial on spotting batch effects with PCA, modeling them in DESeq2, and when to reach for ComBat-Seq, RUVSeq, or sva instead. Real code, real plots.

Abdullah Shahid ·
Tutorial

How to Run Differential Expression in Python with PyDESeq2

Complete PyDESeq2 tutorial: build a count matrix from Salmon output, fit a DeseqDataSet, run Wald tests, apply apeGLM shrinkage, and export DEG results in Python. No R required.

Abdullah Shahid ·
Tutorial

How to Run DESeq2 in R: From Salmon Counts to DEG Results

Complete DESeq2 tutorial in R: import Salmon quant.sf files with tximeta, build a DESeqDataSet, run the Wald test, apply apeglm shrinkage, and export a ranked DEG table.

Abdullah Shahid ·
Tutorial

How to Make Volcano Plots and MA Plots in R: ggplot2 and EnhancedVolcano

Step-by-step R tutorial for publication-quality volcano plots and MA plots from DESeq2 results. Covers ggplot2 from scratch, ggrepel gene labeling, EnhancedVolcano, and plot interpretation.

Abdullah Shahid ·
Tutorial

Differential Expression Analysis in Python with PyDESeq2: A Complete Tutorial

Run DESeq2 differential expression analysis entirely in Python using PyDESeq2. Learn DeseqDataSet, DeseqStats, apeglm shrinkage, multi-factor designs, and pandas result filtering.

Abdullah Shahid ·
Tutorial

How to Run DESeq2: A Complete Walkthrough from Count Matrix to Results

Step-by-step DESeq2 tutorial in R: build a DESeqDataSet, understand size factors and dispersion, run DESeq(), interpret results columns, apply lfcShrink with apeglm, and filter DEGs.

Abdullah Shahid ·
Tutorial

Importing Salmon Output into R: tximeta, tximport, and DESeq2 Setup

Complete R tutorial for importing Salmon quant.sf files with tximeta and tximport. Build a tx2gene table, fix ID mismatch errors, and set up a DESeqDataSet for multi-factor designs.

Abdullah Shahid ·
Research Guide

Why Cell Line RNA-Seq Experiments Fail: Passage, Mycoplasma, and Culture Batch Effects

Passage number drift, undetected mycoplasma, serum lot changes, and pseudoreplication silently corrupt cell line RNA-seq. Here is what each problem looks like and how to prevent it.

Abdullah Shahid ·
Research Guide

What Is GSEA and Why Does It Beat a Simple DEG List

Gene Set Enrichment Analysis finds coordinated pathway signals that gene-by-gene testing misses. Here is how the algorithm works, what the output means, and how to run it with fgsea and clusterProfiler in R.

Abdullah Shahid ·
Bioinformatics

When to Use edgeR vs DESeq2 vs limma-voom

DESeq2, edgeR, and limma-voom all test for differential expression but use different statistical models, different normalization, and different assumptions. Here is when each one wins.

Abdullah Shahid ·
Bioinformatics

How DESeq2 Actually Works (Without the Math Overload)

The negative binomial model, size factors, dispersion shrinkage, and what each output column really means — a clear explanation of DESeq2 for working researchers.

Abdullah Shahid ·
Research Guide

Batch Effects: The Silent Killer of RNA-Seq Studies

What batch effects are, how they arise, how to detect them with PCA, and when to use ComBat-seq vs limma removeBatchEffect vs a design covariate to correct them.

Abdullah Shahid ·
Research Guide

What Is a Count Matrix and Why Does It Matter

Raw counts, TPM, FPKM, and DESeq2 normalized values all represent gene expression differently. Here is what each one is, why the differences matter, and which to use for each downstream task.

Abdullah Shahid ·
Research Guide

Experimental Design Mistakes That Kill Your Differential Expression Analysis

Replicates, confounders, paired designs, and pseudoreplication: the experimental design decisions that determine whether your DESeq2 results are trustworthy before you touch the data.

Abdullah Shahid ·
Research Guide

Why Your Choice of Reference Genome Changes Your Results

GENCODE, Ensembl, UCSC, and RefSeq annotate the same genome differently. Here is how annotation choice affects RNA-seq alignment, quantification, and which genes appear significant.

Abdullah Shahid ·
Research Guide

Batch Effects Will Ruin Your RNA-Seq Results

Batch effects silently corrupt bulk RNA-seq data. Learn how to detect them, why they happen, and which correction methods actually work.

Abdullah Shahid ·