Normalization (RNA-seq) is the computational correction of raw sequencing read counts to eliminate systematic technical biases that obscure true biological signals. These biases arise from varying sequencing depth (total reads per sample), library composition (a few highly expressed genes dominating counts), and gene length (longer transcripts producing more fragments), making raw counts incomparable across samples.
Glossary
Normalization (RNA-seq)

What is Normalization (RNA-seq)?
Normalization in RNA-seq is the computational process of adjusting raw read counts to remove systematic technical biases, enabling accurate between-sample comparisons of gene expression.
Effective normalization transforms discrete count data to a common scale, enabling valid differential expression analysis. Widely used methods include Trimmed Mean of M-values (TMM) in edgeR, which estimates sample-specific scale factors by excluding extreme genes, and the median-of-ratios approach in DESeq2, which computes a pseudo-reference sample. The goal is to preserve biological variability while neutralizing technical artifacts, ensuring that observed differences reflect genuine transcriptional changes rather than experimental noise.
Core Normalization Methods
Computational techniques that adjust raw read counts to remove systematic technical biases, enabling accurate between-sample comparisons of gene expression.
RPKM / FPKM
Reads/Fragments Per Kilobase per Million mapped reads. This method normalizes for both sequencing depth and gene length in a single step.
- RPKM: Used for single-end reads
- FPKM: Used for paired-end reads (counts fragments, not reads)
- Limitation: The sum of normalized counts differs between samples, making cross-sample comparisons problematic
- Origin: Pioneered by Mortazavi et al. (2008) for RNA-seq quantification
TPM (Transcripts Per Million)
Transcripts Per Million normalizes for gene length first, then for sequencing depth, ensuring the sum of all TPMs in a sample equals one million.
- Order matters: Gene-length normalization precedes depth normalization
- Advantage over RPKM: TPM values represent the proportion of transcripts from a given gene, making them directly comparable across samples
- Interpretation: A TPM of 100 means 100 out of every 1 million RNA molecules originate from that gene
- Commonly used in expression atlases like GTEx and TCGA
TMM (Trimmed Mean of M-values)
A robust scaling normalization implemented in the edgeR package that estimates sample-specific scale factors rather than transforming raw counts.
- Mechanism: Computes a weighted trimmed mean of log expression ratios between each sample and a reference
- Trimming: Excludes the most highly expressed genes (30% by default) and those with extreme log-ratios (5% by default)
- Assumption: Most genes are not differentially expressed between conditions
- Output: Scale factors used as offsets in the negative binomial model, preserving raw integer counts
DESeq2 Median of Ratios
The default normalization method in DESeq2 that computes size factors using the median of gene-wise ratios relative to a pseudo-reference sample.
- Step 1: For each gene, compute the geometric mean across all samples to create a synthetic reference
- Step 2: For each sample, calculate the ratio of each gene's count to the reference
- Step 3: The sample's size factor is the median of all these ratios
- Robustness: The median is insensitive to outlier genes with extreme expression
- Integration: Size factors enter the generalized linear model as an offset term
Quantile Normalization
A distribution-matching technique that forces all samples to have identical empirical distributions of expression values.
- Process: Ranks genes within each sample, then replaces each value with the mean of values at the same rank across all samples
- Effect: Eliminates any global differences in distribution shape, making samples directly comparable
- Use case: Common in microarray analysis and sometimes applied to RNA-seq after log-transformation
- Caution: Can introduce artifacts if the underlying distributions truly differ between biological conditions
- Implementation: Available in the limma package for transformed count data
Upper Quartile Normalization
A simple scaling method that divides each gene's count by the 75th percentile of its sample's non-zero count distribution.
- Rationale: The upper quartile is less influenced by a few extremely highly expressed genes than the total count
- Calculation: Size factor = upper quartile of counts (excluding zeros) for a sample
- Comparison: More robust than total-count normalization (CPM) but less sophisticated than TMM or DESeq2
- Origin: Proposed by Bullard et al. (2010) as an improvement over global scaling
- Use: Available in edgeR as
method="upperquartile"
Frequently Asked Questions
Clear, technically precise answers to the most common questions about computational normalization of RNA-seq count data.
Normalization in RNA-seq is the computational process of adjusting raw read counts to remove systematic technical biases, enabling accurate between-sample comparisons of gene expression. Without normalization, comparisons are invalid because raw counts are confounded by sequencing depth (a sample with 50 million reads will have higher counts than one with 20 million reads, all else being equal), gene length (longer transcripts generate more fragments and thus more reads), and library composition (a few highly expressed genes can consume a disproportionate share of reads, skewing the relative representation of all other genes). Normalization transforms raw counts into a common scale, isolating true biological signal from these technical artifacts. The choice of normalization method directly impacts which genes are called as differentially expressed, making it one of the most critical steps in any RNA-seq analysis pipeline.
Normalization Methods Comparison
Comparison of computational methods for adjusting raw read counts to remove systematic technical biases from sequencing depth, library composition, and gene length.
| Feature | CPM | TPM | DESeq2 Median of Ratios | TMM (edgeR) |
|---|---|---|---|---|
Corrects for sequencing depth | ||||
Corrects for gene length | ||||
Corrects for library composition | ||||
Output unit | Counts per million | Transcripts per million | Normalized counts | Effective library size |
Handles extreme outliers | ||||
Suitable for within-sample comparison | ||||
Suitable for between-sample comparison | ||||
Underlying distribution assumption | None | None | Negative binomial | Negative binomial |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Mastering RNA-seq normalization requires understanding the technical biases it corrects and the statistical frameworks it enables. These core concepts define the landscape of accurate between-sample comparison.
Library Size & Sequencing Depth
The total number of mapped reads per sample varies between runs. Normalization adjusts for this disparity because a sample with 20 million reads will naturally have higher raw counts than one with 10 million, even if biological expression is identical. Without correction, sequencing depth becomes a confounding variable, making samples incomparable and skewing differential expression results toward false positives in deeper-sequenced libraries.
Gene Length Bias
Longer transcripts generate more RNA-seq fragments than shorter ones at the same expression level. This gene length bias is a technical artifact that must be corrected for within-sample comparisons (e.g., ranking genes by expression) using metrics like RPKM, FPKM, or TPM. However, for between-sample differential expression, methods like DESeq2 and edgeR use raw counts with offsets, as gene length cancels out when comparing the same gene across conditions.
RNA Composition & Effective Library Size
A few highly expressed genes can consume a disproportionate fraction of the library, artificially suppressing counts for all other genes. Trimmed Mean of M-values (TMM) normalization in edgeR and Relative Log Expression (RLE) in DESeq2 address this by computing robust scaling factors. These methods assume most genes are not differentially expressed and exclude extreme outliers, providing a more accurate effective library size than raw total counts.
Counts Per Million (CPM)
CPM is the simplest normalization: raw counts divided by total library size, multiplied by one million. While intuitive, it fails to correct for RNA composition bias and is sensitive to outliers. Its primary utility is as a filtering threshold—genes with very low CPM across all samples are removed before differential testing because they lack sufficient signal for statistical inference and only contribute noise to multiple testing correction.
Transcripts Per Million (TPM)
TPM is a two-step normalization: first divide read counts by gene length (in kilobases) to get Reads Per Kilobase (RPK), then scale all RPK values by their sum per million. This ensures the sum of all TPMs in a sample equals one million, making transcript proportions directly comparable across samples. TPM is the gold standard for within-sample comparisons and visualization, but raw counts remain essential for statistical modeling.
Variance Stabilizing Transformation (VST)
VST is a mathematical transformation applied to normalized counts that renders the variance approximately independent of the mean. This is critical for exploratory techniques like Principal Component Analysis (PCA) and hierarchical clustering, which assume homoskedasticity. DESeq2 implements a blind VST that ignores experimental design, preventing the introduction of artificial clustering while making count data suitable for distance-based visualization methods.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us