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

PyDESeq2 vs R DESeq2: Validation and the scanpy Workflow

Does PyDESeq2 really match R DESeq2? A tutorial on validating results against R, running PCA with scanpy and AnnData, and exporting DEGs for enrichment.

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

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

Pathway enrichment end to end: GSEA and ORA in R with clusterProfiler and fgsea, plus the Python equivalent with gseapy, across MSigDB, 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

Publication-ready RNA-seq plots in R and Python: volcano with ggplot2/ggrepel, MA plots, and DEG heatmaps with pheatmap and seaborn, plus 300 dpi export.

Abdullah Shahid ·
Tutorial

Batch Effect Correction Tools: ComBat-Seq vs RUVSeq vs sva

How to choose a batch-effect correction tool: ComBat-Seq, RUVSeq, and sva compared, including unknown batch sources and reporting it in your methods.

Abdullah Shahid ·
Tutorial

From Salmon Output to DEGs in Python with PyDESeq2

A pipeline-focused PyDESeq2 tutorial: load Salmon quant.sf into a count matrix, fit a DeseqDataSet, run Wald tests, apply apeGLM shrinkage, export DEGs. No R.

Abdullah Shahid ·
Tutorial

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

DESeq2 in R from Salmon counts: import quant.sf 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 and MA Plots in R with ggplot2

Publication-quality volcano and MA plots from DESeq2 results in R: ggplot2 from scratch, ggrepel gene labels, EnhancedVolcano, and how to read them.

Abdullah Shahid ·
Tutorial

PyDESeq2 Tutorial: Differential Expression in Python

The complete PyDESeq2 reference in Python: DeseqDataSet, DeseqStats, apeglm shrinkage, multi-factor designs, multiple contrasts, and pandas result filtering.

Abdullah Shahid ·
Tutorial

How to Run DESeq2: From Count Matrix to Results

Step-by-step DESeq2 in R: build a DESeqDataSet, understand size factors and dispersion, run DESeq(), interpret the results columns, then shrink and filter DEGs.

Abdullah Shahid ·
Tutorial

Import Salmon Output into R with tximeta and tximport

Import Salmon quant.sf into R 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 drift, undetected mycoplasma, serum lot changes, and pseudoreplication silently corrupt cell line RNA-seq. What each looks like and how to prevent it.

Abdullah Shahid ·
Research Guide

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

How GSEA finds coordinated pathway signals a DEG list misses: how the algorithm works, what NES and the leading edge mean, and how to run it with fgsea in R.

Abdullah Shahid ·
Bioinformatics

When to Use edgeR vs DESeq2 vs limma-voom

DESeq2, edgeR, and limma-voom all test differential expression but use different models, normalization, and 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: DESeq2 explained for working researchers.

Abdullah Shahid ·
Research Guide

Detecting Batch Effects with PCA and Correcting Them in DESeq2

How to detect batch effects with a PCA plot and correct them in DESeq2 using a design covariate, ComBat-seq, and limma removeBatchEffect for visualization.

Abdullah Shahid ·
Research Guide

What Is a Count Matrix and Why Does It Matter

Raw counts, TPM, FPKM, and DESeq2-normalized values each represent expression differently. What each one is, why it matters, and which to use downstream.

Abdullah Shahid ·
Research Guide

Experimental Design Mistakes in Differential Expression

Replicates, confounders, paired designs, and pseudoreplication: the experimental design decisions that decide whether your DESeq2 results hold up.

Abdullah Shahid ·
Research Guide

Why Your Choice of Reference Genome Changes Your Results

GENCODE, Ensembl, UCSC, and RefSeq annotate the same genome differently. How that choice changes RNA-seq alignment, quantification, and your DEG list.

Abdullah Shahid ·
Research Guide

What Are Batch Effects in RNA-Seq (and Why They Ruin Results)

What batch effects are, why they happen in bulk RNA-seq, and how they quietly corrupt your differential expression results — the concepts to grasp first.

Abdullah Shahid ·