Inferensys

Glossary

Transcripts Per Million (TPM)

Transcripts Per Million (TPM) is a gene expression normalization unit that first normalizes for gene length and then for sequencing depth, resulting in a metric where the sum of all TPMs in a sample equals one million, facilitating direct transcript proportion comparisons.
Finance professional using AI FP&A copilot on laptop, board presentation visible on screen, home office work session.
GENE EXPRESSION NORMALIZATION

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.

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.

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.

NORMALIZATION UNIT COMPARISON

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.

FeatureTPMRPKM/FPKMCPM

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

TRANSCRIPT QUANTIFICATION

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

TPM EXPLAINED

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.

Prasad Kumkar

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.