Bench Tools Free browser-based calculators for the lab and for bioinformatics

ToolsStatistics

RNA-seq Expression Normalization Calculator: RPKM / FPKM / TPM Converter

Paste gene read counts and lengths to compute RPKM / FPKM and TPM at once — and see directly that TPM sums to 1,000,000 while RPKM does not.

Convert raw RNA-seq read counts to RPKM, FPKM, or TPM. Paste three columns — gene name, read count, length — and the tool computes all three. Because TPM requires all genes to normalize correctly, paste the full table when possible.

What each metric does

Raw read counts cannot be compared directly because they are simultaneously affected by two things: longer genes capture more reads; deeper sequencing inflates counts for every gene. All three normalizations remove these two factors in sequence; the only difference is the order.

RPK  = reads ÷ (gene length / 1000)           normalize for length first
RPKM = RPK ÷ (total reads / 1e6)              then normalize for depth
TPM  = RPK ÷ Σ(RPK across all genes) × 1e6   normalize for length, then scale by the length-normalized total

FPKM and RPKM use exactly the same formula; the only difference is that reads (single-end) are replaced by fragments (paired-end). In paired-end sequencing, a read pair comes from one fragment and should be counted once — that is the entire difference between the two names.

Why TPM is better for cross-sample comparison

TPM sums to exactly 1,000,000 within each sample; RPKM does not. This is not a coincidence — it follows from the definition: TPM first removes the length effect, then normalizes by the length-corrected total, so the denominator is the same number for every gene in the sample. RPKM’s denominator is total read count, which does not correspond to the same length-normalized total across samples.

The consequence: two samples with equal RPKM for a gene can have different true transcript fractions. Wagner, Kin, and Lynch demonstrated this inconsistency of RPKM across samples in Theory Biosci. (2012) and proposed TPM as an alternative.

The calculator shows both totals side by side so you can see the difference directly.

An important boundary

Being better for cross-sample comparison does not make TPM suitable for differential expression analysis. Both TPM and RPKM are compositional data (the within-sample sum is a constant), so a change in any highly expressed gene compresses the values of all other genes. Differential expression requires methods such as DESeq2 or edgeR that work from raw counts and estimate library size factors rather than simply dividing by the total. This point is made plainly in “Misuse of RPKM or TPM normalization when comparing across samples” (RNA, 2020).

The appropriate use of RPKM / TPM is: comparing expression levels across genes within the same sample, or producing heatmaps and cluster analyses that require a common scale.

FAQ

What is the difference between RPKM and FPKM?

The formula is identical; the difference is only in what is counted: RPKM counts reads (single-end), FPKM counts fragments (paired-end). In paired-end sequencing, a read pair originates from one fragment and should be counted once. Using paired-end data but counting reads rather than fragments will inflate the result by roughly a factor of two.

Why does TPM always sum to 1,000,000?

Because its denominator is the length-normalized total across all genes in the sample — the same value for every gene. When you sum all TPM values, the numerator equals the denominator, the ratio is 1, and multiplying by 1e6 gives 1,000,000. RPKM's denominator is total read count, which bears no fixed relationship to the length-normalized total, so the RPKM sum is not a constant.

I only pasted a few genes — are the results valid?

For TPM, it depends on your intent: the denominator is the set of genes you pasted, so a partial table gives relative fractions within that subset, not transcriptome-wide TPM. RPKM is more sensitive to this: its denominator should be the total mapped read count for the full library. Pasting only a subset without entering the total manually will systematically overestimate RPKM.

Can I use TPM directly for differential expression analysis?

No. Both TPM and RPKM are compositional data — the within-sample sum is a constant, so changes in highly expressed genes compress the values of all other genes. DESeq2 and edgeR start from raw counts, estimate library size factors, and model count-level dispersion; that is fundamentally different from simply dividing by the total.

Related tools

Online t-Test Calculator: Independent Samples / Paired Samples / One-Sample (with Welch Correction)

Paste two data sets to get the t-statistic, degrees of freedom, two-tailed p-value, mean-difference confidence interval, and Cohen's d — Welch correction on by default.

One-Way ANOVA Calculator Online (Post-Hoc Tests & Multiple Comparison Correction)

Compare means across three or more groups: F statistic, ANOVA table, p-value, η², and optional pairwise post-hoc tests with Bonferroni or BH correction.

Mann-Whitney U and Wilcoxon Signed-Rank Test Calculator

Two-group comparison for skewed or ordinal data: computes U/W statistics, exact or approximate p-values, effect size, and the minimum achievable p for your sample size.

No ads, no tracking, no sign-up — and every formula here is checked against a known answer. Keeping it that way takes ongoing work. If it saved you time, buy me a coffee.
Buy me a coffee