Tagged: differential-expression
28 posts found
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Experimental Design Mistakes in Differential Expression
Replicates, confounders, paired designs, and pseudoreplication: the experimental design decisions that decide whether your DESeq2 results hold up.
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.
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.