text: user926: What the difference between TPM and CPM when dealing with RNA seq data?
  What metrics would you use if you have to perform some down stream analysis other than Differential expression for eg. 
  Clustering analysis using Hclust function and then plotting heat map to find differences in terms of expression levels, correlation and pca
  Is it wrong to use TPM for such analysis, if yes then when does one use TPM versus CPM. 
  
  user29: Neither CPM nor TPM are well suited here, because neither performs robust cross-sample normalisation (see the blog post Devon linked to).
  DESeq2 provides two robust log-space normalisation methods for downstream analysis, the regularised log (rlog), and the variance stabilising transformation (vst). The DESeq2 vignette explains how to use these for things like hclust.
  
  On a more general note, CPM does not account for transcript length differences, while TPM does. If the choice is between TPM and CPM I would therefore use TPM. However, if you are only comparing the same transcripts across experiments, the transcript length is actually invariant so it doesn’t matter (but CPM is still not a good cross-experiment normalisation).
  
  user77: You can find the various equations in this oft-cited blog post from Harold Pimentel. CPM is basically depth-normalized counts, whereas TPM is length-normalized (and then normalized by the length-normalized values of the other genes).
  If one has to choose between those two choices one typically chooses TPM for most things, since generally the length normalization is handy. Realistically, you probably want log(TPM) since otherwise noise in your most highly expressed genes dominates over small expression signals.
  
original_text: 926: <p>What the difference between TPM and CPM when dealing with RNA seq data?</p>
  
  <p>What metrics would you use if you have to perform some down stream analysis other than Differential expression for eg. </p>
  
  <p>Clustering analysis using Hclust function and then plotting heat map to find differences in terms of expression levels, correlation and pca</p>
  
  <p>Is it wrong to use TPM for such analysis, if yes then when does one use TPM versus CPM. </p>
   29: <p>Neither CPM nor TPM are well suited here, because neither performs robust cross-sample normalisation (see the blog post Devon linked to).</p>
  
  <p>DESeq2 provides two robust log-space normalisation methods for downstream analysis, the <em>regularised log</em> (<code>rlog</code>), and the <em>variance stabilising transformation</em> (<code>vst</code>). The <a href="http://bioconductor.org/packages/devel/bioc/vignettes/DESeq2/inst/doc/DESeq2.html#data-transformations-and-visualization" rel="nofollow noreferrer">DESeq2 vignette explains how to use these</a> for things like hclust.</p>
  
  <hr>
  
  <p>On a more general note, CPM does not account for transcript length differences, while TPM does. If the choice is between TPM and CPM I would therefore use TPM. However, if you are only comparing the same transcripts across experiments, the transcript length is actually invariant so it doesn’t matter (but CPM is still not a good cross-experiment normalisation).</p>
   77: <p>You can find the various equations in <a href="https://haroldpimentel.wordpress.com/2014/05/08/what-the-fpkm-a-review-rna-seq-expression-units/" rel="nofollow noreferrer">this oft-cited blog post from Harold Pimentel</a>. CPM is basically depth-normalized counts, whereas TPM is length-normalized (and then normalized by the length-normalized values of the other genes).</p>
  <p>If one has to choose between those two choices one typically chooses TPM for most things, since generally the length normalization is handy. Realistically, you probably want <code>log(TPM)</code> since otherwise noise in your most highly expressed genes dominates over small expression signals.</p>
  