What are the differences between RPKM, FPKM and TPM? How do I calculate them?
RPKM: Reads Per Kilobase of transcript per Million mapped reads.
FPKM: Fragments Per Kilobase of transcript per Million mapped reads.
TPM: Transcripts Per Million. TPM is really just RPKM scaled by a constant to make sure the sum of all values is 1 million.
Here’s how you do it for RPKM:
- Count up the total reads in a sample and divide that number by 1,000,000 – this is our “per million” scaling factor.
- Divide the read counts by the “per million” scaling factor. This normalizes for sequencing depth, giving you reads per million (RPM)
- Divide the RPM values by the length of the gene, in kilobases. This gives you RPKM.
The only difference between RPKM and FPKM is that FPKM takes into account that two reads can map to one fragment (and so it doesn’t count this fragment twice).
Here’s how you calculate TPM:
- Divide the read counts by the length of each gene in kilobases. This gives you reads per kilobase (RPK).
- Count up all the RPK values in a sample and divide this number by 1,000,000. This is your “per million” scaling factor.
- Divide the RPK values by the “per million” scaling factor. This gives you TPM.