This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Applications of TPM normalisation

I use raw counts for DGE in DESeq2, edgeR etc. And I use VST for PCA and clustering.

Now, I am curious about TPM. What are the applications of a TPM normalised count table? What can it be used for? What are the drawbacks of TPM normalised counts?

enter image description here enter image description here enter image description here

I hope my TPM calculation is correct. Here is what I use.

#' @title Compute TPM from a read count matrix
#' @param counts A numeric data.frame of read counts with samples (columns) and genes (rows).
#' @param len A vector of gene cds length equal to number of rows of dfr.
#'
#' https://support.bioconductor.org/p/91218/
#'
tpm <- function(counts,len) {
  x <- counts/len
  return(t(t(x)*1e6/colSums(x)))
}
rna-seq deseq2 normalisation dge

1 answer

You can use TPM to compare gene count in the same sample, but it is not the best way to go to compare genes across sample, prefer RLE or TMM method for example.

This is one way to convert to TPM : https://support.bioconductor.org/p/91218/

Your function seems ok

See also : https://youtu.be/TTUrtCY2k-w

Log in to answer this question.