I noticed that many scRNA-seq papers normalize TPMs to 10k or 100k as opposed to 1M (as the abbreviation defines them). It doesn't really matter since you are just moving the decimal point, so why mess with an established convention?

Additionally, the values might be log-transformed. In that case, log(x+1) would affect the data less if the total is 1M.

  • $\begingroup$ Could you provide some links, so that we can check if there is some explanation in the methods section? $\endgroup$
    – llrs
    Dec 15, 2018 at 10:06
  • $\begingroup$ @GWW Isn't "massive" subjective? With standard TPM, the highest possible value is 1M. It doesn't seem that big. Arguably, by switching to 10k, your small values become too small (extra 0s at the beginning). $\endgroup$
    – burger
    Dec 17, 2018 at 17:06

2 Answers 2


When studying demographics, you often need to account for the population size of a city or region (GDP per capita, is a good example). Normalizing by $10^6$ people is a nice round number, but lots of cities and regions don't have that many people. So if we want to keep numbers in the range [1, 100], 1M is too big a denominator. That's why a lot of studies use $10^5$ people as a scaling factor.

The same goes for RNA-seq and other sequencing measurements. Your readout will typically contain $10^7 - 10^8$ reads for a bulk sequencing run. If your sample has thousands of cells, this means very few cells will have > $10^6$ reads assigned to it.

But the TPM unit was designed for bulk measurements and that's what most people are used to. So we can keep the same idea of scaling by number of reads, but just use a different convenient scaling factor. This way we get both scaling by sequencing depth and nice numbers to work with.

As for your $\log(1+x)$ comment, yes, if $x$ is in TP10K, the low read counts will be biased more than if $x$ was in units of TPM. But consistently lowly-expressed genes often aren't of interest. So this won't be too much of a problem. The bigger issue is the zero count over-inflation that is common in scRNA-seq measurements.


Collecting all the question comments as a community answer (feel free to edit this to make it more readable):

There tend to be far fewer counts in single cell experiments. By reducing the scaling factor you are avoiding having massive expression values for your samples.

It isn't uncommon to scale single cell experiments by the median cell library size. That way small values typically won't be too small and large values won't be too large. People also choose 10,000 because that's roughly around the library size for a single cell.

I haven't seen an explanation yet. Here is an example paper from last week (reputable journal and lab): doi.org/10.1016/j.celrep.2018.11.056 . "... We also excluded outlier cells from the MPPs group which were likely caused by cell contamination. To correct for batch issues, the two experimental batches were centered to have the same mean log(TP100K+1) (hereafter referred to as log(TPM), where TPM stands for ‘transcripts per million’) per gene. PCA was done in R with scaled..."


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.