Blog

Tagged: rna-seq

60 posts found

Research Guide

From Wet Lab to Dry Lab: A Realistic Map of What to Learn First

A practical skill sequence for wet-lab biologists learning RNA-seq analysis: what to prioritise, what to safely skip, and what to outsource while you build.

Abdullah Shahid ·
Bioinformatics

What FastQC Reports Actually Tell You (And What Beginners Miss)

A senior bioinformatician walks through the FastQC sections that real beginners miss, with screenshots and decisions to make at each step.

Abdullah Shahid ·
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 ·
Bioinformatics

Self-Service RNA-Seq For Labs Without A Bioinformatician

If your lab sequences more than it analyzes, here is what self-service RNA-seq looks like, what is safe to automate, and where you still need a human.

Abdullah Shahid ·
Tutorial

STAR vs Salmon vs HISAT2: A Hands-On Benchmark

A hands-on RNA-seq aligner benchmark: working STAR, Salmon, and HISAT2 commands, real runtime and memory numbers, and how much the DEG list actually changes.

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 ·
Tutorial

Salmon From FASTQ to Counts: A Complete Tutorial

A complete Salmon tutorial with decoy-aware indexing, quantification flags explained, tximport into R, DESeq2 integration, and QC checks at every step.

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 ·
Research Guide

The Reproducibility Crisis in Bulk RNA-Seq

Half of published RNA-seq pipelines fail when someone else tries to run them. A practitioner view of what breaks and how to build for reproducibility.

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

Why Reproducibility Should Not Be Optional in RNA-Seq Pipelines

Run snapshots, version pinning, and locked parameters should be the default, not a feature. A practitioner case for reproducibility-first RNA-seq platforms.

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 ·
Research Guide

The One-Bioinformatician Problem: Stop Being The Bottleneck

If you are the only bioinformatician serving multiple PIs, you are the bottleneck. Here is how to scale with templates, self-service, and clear handoffs.

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 ·
Bioinformatics

Nextflow vs No-Code Platforms: The Right Tool For Your Lab

Nextflow is powerful and steep. No-code platforms are fast and constrained. A clear decision framework for which fits your lab today, and when to use both.

Abdullah Shahid ·
Bioinformatics

GTF and GFF Files: Why They Hurt and How To Tame Them

GTF and GFF files from the same database often disagree, prokaryotic files lack exon features, AGAT fixes some and breaks others. A practical field guide.

Abdullah Shahid ·
Bioinformatics

Industrial Bioinformatics Is Still In Its Infancy

Most commercial bioinformatics runs on academic instincts. A senior practitioner view on what industry needs and the engineering practices that close the gap.

Abdullah Shahid ·
Tutorial

Reducing GO Term Redundancy: simplify, rrvgo, and What Works

After enrichment you get hundreds of overlapping GO terms. A tutorial on clusterProfiler simplify, rrvgo, REVIGO, and a custom uniqueness-score fallback.

Abdullah Shahid ·
Tutorial

Your First Nextflow Pipeline for RNA-Seq

A minimal Nextflow DSL2 RNA-seq pipeline in under 80 lines: three processes, channel wiring, Docker config, and how to read the execution report and DAG output.

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 ·
Bioinformatics

Why Deterministic Pipelines Beat AI-Generated Ones for RNA-Seq

AI bioinformatics pipelines feel fast until you check the outputs. Here is when to trust AI, when to verify it, and when to use a deterministic platform.

Abdullah Shahid ·
Tutorial

fastp vs Trimmomatic vs BBDuk: A Benchmark on RNA-Seq Reads

A side-by-side benchmark of fastp, Trimmomatic, and BBDuk on paired-end RNA-seq data: speed, post-trim quality, mapping rate, and downstream DEG impact.

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

Bulk RNA-Seq Deconvolution: CIBERSORTx and MuSiC Tutorial

Estimate cell type proportions from bulk RNA-seq using CIBERSORTx and MuSiC. Reference selection, batch correction, validation, and result interpretation.

Abdullah Shahid ·
Bioinformatics

Bulk RNA-Seq Is Not Dead: When To Use It Over scRNA-Seq

Single-cell RNA-seq dominates conferences but bulk RNA-seq remains the right tool for most experiments. A decision framework for choosing your modality.

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 ·
Bioinformatics

What the 2025-2026 Bioinformatics Hiring Shift Means

Entry-level pipeline jobs are vanishing and AI-skilled senior roles are rising. What the 2025-2026 hiring shift signals about structuring RNA-seq work.

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

Build a Counts Matrix from featureCounts and Salmon

Python tutorial: parse featureCounts output, aggregate Salmon quant.sf, build a tx2gene map, and save a DESeq2-ready integer count matrix with pandas.

Abdullah Shahid ·
Tutorial

How to Run STAR Alignment for Bulk RNA-Seq (Step-by-Step)

Complete STAR tutorial: download genome and GTF, build an index with the right sjdbOverhang, run paired-end alignment, and load GeneCounts into R for DESeq2.

Abdullah Shahid ·
Tutorial

How to Build a Salmon Index and Quantify Bulk RNA-Seq Reads

Step-by-step Salmon tutorial: download GENCODE references, build a decoy-aware index, run salmon quant with gcBias and seqBias, and verify mapping rates.

Abdullah Shahid ·
Tutorial

FASTQ Quality Control with FastQC, fastp, and MultiQC

Bulk RNA-seq QC end to end: run FastQC on raw reads, trim adapters with fastp, rerun QC, and aggregate everything into one MultiQC report, with parallel runs.

Abdullah Shahid ·
Tutorial

Download RNA-Seq Data from GEO and SRA with sra-tools

Download bulk RNA-seq FASTQ files from GEO and SRA: prefetch, fasterq-dump, pysradb metadata, batch downloads, and fixes for the most common errors.

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

PCA and Clustering for RNA-Seq QC in Python

Python tutorial: normalize RNA-seq counts, run PCA with scikit-learn, build a sample distance heatmap, and spot outliers before differential expression.

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

Set Up a Bulk RNA-Seq Environment on Ubuntu and macOS

Install Miniforge, conda, bioconda, R 4.4, and DESeq2 for bulk RNA-seq: reproducible environments, version pinning, and fixes for common install errors.

Abdullah Shahid ·
Tutorial

How to Quantify RNA-Seq Reads with Salmon

Step-by-step Salmon tutorial: build a decoy-aware index, run salmon quant on paired-end reads, read the quant.sf output, and import into DESeq2 with tximport.

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

STAR vs HISAT2 vs Salmon: Which Aligner Should You Use?

STAR aligns to the genome, HISAT2 uses less memory, Salmon skips alignment. What each approach means for your RNA-seq results and when each is the right call.

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 ·
Research Guide

What Actually Happens to Your RNA Sample Before It Becomes Data

From tissue extraction to FASTQ file: a clear breakdown of RNA-seq library prep, sequencing chemistry, and what goes wrong at each step.

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 ·
Research Guide

Understanding Your QC Report: FastQC and MultiQC

A module-by-module guide to reading FastQC and MultiQC output for RNA-seq data — what each plot means, which failures matter, and which you can safely ignore.

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 ·
Tutorial

Trimming Adapters with Trimmomatic and fastp

When adapter trimming helps, when it hurts, and how to run Trimmomatic and fastp on RNA-seq data with the parameter choices that actually matter.

Abdullah Shahid ·
Tutorial

How to Run FastQC and MultiQC on Raw RNA-Seq Reads

A hands-on guide to automating RNA-seq QC across dozens of samples using FastQC and MultiQC, with bash and Python scripts for parsing and flagging failures.

Abdullah Shahid ·
Research Guide

Raw Reads to Counts: The Bulk RNA-Seq Pipeline Explained

Every computational step in bulk RNA-seq, explained: from FASTQ quality control through trimming, alignment, and quantification to your final count matrix.

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 ·