Transcripts Per Million (TPM) is a gene expression normalization unit that first divides raw read counts by gene length to produce reads per kilobase (RPK), then scales these values so that the sum of all TPMs in a sample equals one million. This two-step process corrects for both gene length bias and library size, ensuring that a transcript's TPM value represents its proportional abundance relative to the total RNA population.
Glossary
Transcripts Per Million (TPM)

What is Transcripts Per Million (TPM)?
A robust normalization method for RNA-seq data that corrects for both gene length and sequencing depth biases, enabling direct comparison of transcript proportions across samples.
Unlike Counts Per Million (CPM) or Reads Per Kilobase Million (RPKM), TPM produces values that are directly comparable between samples because the total sum is constrained to a constant. This property makes TPM the preferred unit for cross-sample comparisons in differential expression analysis, where a TPM of 50 in one sample represents the same relative transcript proportion as a TPM of 50 in another, regardless of sequencing depth differences.
TPM vs. RPKM vs. CPM: Key Differences
A technical comparison of the three primary RNA-seq expression units, highlighting their mathematical foundations, correction factors, and suitability for cross-sample analysis.
| Feature | TPM | RPKM/FPKM | CPM |
|---|---|---|---|
Full Name | Transcripts Per Million | Reads/Fragments Per Kilobase per Million | Counts Per Million |
Normalization Order | Length first, then depth | Depth first, then length | Depth only |
Corrects for Gene Length | |||
Corrects for Sequencing Depth | |||
Sum of Units per Sample | 1,000,000 (constant) | Variable (inconsistent) | Variable (inconsistent) |
Cross-Sample Comparability | Directly comparable | Not directly comparable | Not directly comparable |
Primary Use Case | Transcript proportion comparison | Legacy; within-sample comparison | Low-expression filtering |
Mathematical Invariance | Proportional to molar concentration | Proportional to molar concentration | Proportional to library size |
Key Properties of TPM Normalization
Transcripts Per Million (TPM) is a normalization unit that corrects for both gene length and sequencing depth biases, producing a proportional metric where the sum of all TPMs in a sample equals exactly one million.
Length-First Normalization Order
TPM's defining characteristic is its order of operations: it normalizes for gene length before sequencing depth. Raw counts are first divided by gene length in kilobases to produce reads per kilobase (RPK). This RPK value is then scaled by a per-sample factor so that the sum of all TPMs equals one million. This contrasts with FPKM/RPKM, which divide by length last, making TPM the preferred metric for cross-sample comparisons because the proportion of reads mapped to a gene is directly comparable.
Constant Sum Property
In any given sample, the sum of all TPM values across all genes is always 1,000,000. This invariant property means TPM represents the relative molar concentration of transcripts. A gene with a TPM of 500 in sample A and 500 in sample B constitutes exactly 0.05% of the total transcript pool in both samples, regardless of differences in total sequencing depth. This makes TPM ideal for comparing transcript proportions across heterogeneous samples.
Proportional Interpretation
TPM values are directly interpretable as molecular fractions. If Gene X has a TPM of 100,000, it represents 10% of the total mRNA molecules in that sample. This proportional nature is critical for analyses where the compositional nature of RNA-seq data matters, such as when comparing samples with vastly different total RNA output or when a few highly expressed genes dominate the library. TPM avoids the compositional artifacts that plague raw counts and RPKM.
Comparison with RPKM/FPKM
While RPKM and FPKM also normalize for length and depth, their inconsistent sum across samples prevents direct proportional comparison. A gene with an RPKM of 50 in two samples does not necessarily represent the same fraction of the transcriptome. TPM was explicitly designed to resolve this flaw. The conversion from RPKM to TPM is straightforward: divide each gene's RPKM by the sum of all RPKMs in the sample and multiply by 10^6. Most modern bioinformatics pipelines, including Salmon and kallisto, output TPM natively.
Effective Length Calculation
TPM normalization relies on the concept of effective length, not just the genomic length of a gene. Effective length accounts for the fact that RNA-seq fragments cannot be unambiguously assigned to a transcript if they are shorter than the read length. Tools like RSEM and Salmon compute an effective length by subtracting the mean fragment length from the transcript length, ensuring that the normalization factor accurately reflects the number of mappable positions. This is especially important for short transcripts and isoforms.
Limitations and Cautions
TPM is not a panacea. It is a within-sample normalization and does not correct for batch effects or compositional bias between samples. In experiments where a few genes are massively differentially expressed, the constant-sum constraint can induce spurious differential expression in unchanged genes. For such cases, tools like DESeq2 and edgeR use more sophisticated normalization (e.g., median-of-ratios, TMM) that are robust to compositional outliers. TPM is best used for visualization, clustering, and as input to exploratory analyses, not as the final normalization for statistical testing.
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.
Frequently Asked Questions
Clear answers to common questions about Transcripts Per Million normalization, its calculation, and how it compares to other RNA-seq expression units.
Transcripts Per Million (TPM) is a gene expression normalization unit that first corrects for gene length and then for sequencing depth, producing a metric where the sum of all TPM values in a sample equals exactly one million. This property makes TPM directly interpretable as the proportion of transcripts originating from each gene.
The calculation proceeds in three sequential steps:
- Step 1 — Reads Per Kilobase (RPK): Divide the raw read count for each gene by its length in kilobases. This normalizes for the fact that longer genes generate more fragments and thus more reads.
- Step 2 — Per-Million Scaling Factor: Sum all RPK values across the entire sample, then divide that sum by one million to obtain a scaling factor.
- Step 3 — TPM Calculation: Divide each gene's RPK value by the scaling factor from Step 2. The resulting values sum to one million.
This order of operations—length normalization before depth normalization—is what distinguishes TPM from RPKM and FPKM, which perform depth normalization first. The TPM approach ensures that the proportion of reads mapped to a gene is comparable across samples with different library compositions.
Related Terms
Mastering TPM requires understanding the normalization landscape and the statistical frameworks that rely on it. These core concepts contextualize why TPM is the preferred unit for comparing transcript proportions across samples.
Counts Per Million (CPM)
The simpler precursor to TPM that normalizes solely for sequencing depth, ignoring gene length. CPM is calculated as (raw counts / total mapped reads) × 10⁶. While useful for filtering lowly expressed genes and comparing the same gene across samples, CPM fails to correct for gene length bias, making it unsuitable for comparing expression levels between different genes within a single sample. TPM addresses this limitation by adding a gene-length normalization step first.
Reads Per Kilobase Million (RPKM)
A legacy normalization unit that normalizes for gene length first, then sequencing depth—the reverse order of TPM. RPKM divides read counts by gene length in kilobases, then by total mapped reads in millions. The critical difference: RPKM sums are inconsistent across samples, making cross-sample comparisons of transcript proportions unreliable. TPM was explicitly designed to fix this by ensuring every sample sums to exactly one million, enabling direct proportion comparisons.
Fragments Per Kilobase Million (FPKM)
The paired-end sequencing analog of RPKM. FPKM counts fragments rather than reads, where a fragment is the physical DNA piece sequenced from both ends. For single-end data, FPKM equals RPKM. Like RPKM, FPKM suffers from non-uniform sum totals across samples, making it inferior to TPM for proportion-based analyses. Many legacy datasets use FPKM, but modern pipelines increasingly prefer TPM for its mathematical consistency.
Differential Expression Analysis
The statistical framework that identifies genes with significant expression changes between conditions. Tools like DESeq2 and edgeR operate on raw integer counts, not TPM, because they require the discrete nature of count data to model variance correctly. However, TPM is the preferred unit for visualization, clustering, and exploratory analysis after differential expression testing. Understanding when to use counts versus TPM is critical for valid biological conclusions.
Transcript Length Bias
A fundamental technical artifact in RNA-seq where longer transcripts produce more sequencing reads than shorter transcripts at the same expression level. This bias inflates counts for long genes, creating false positives in comparative analyses. TPM corrects for this by dividing raw counts by gene length in kilobases as the first normalization step, ensuring that expression values reflect true transcript abundance rather than transcript length.
Normalization (RNA-seq)
The computational process of removing systematic technical biases from raw read counts. Effective normalization must address three sources of variation: sequencing depth (total reads per sample), gene length (longer genes generate more reads), and library composition (highly expressed genes consume disproportionate reads). TPM addresses the first two biases explicitly, while tools like TMM and DESeq2's median-of-ratios handle composition effects for differential testing.

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