Question: Voom: estimation of mean-variance relationship with gene expression data normalized with methods other than cpm
0
3.1 years ago by
Finland
krishna3120 wrote:

Hi,

I understand that voom normalizes the raw count data to log2 cpm data and then estimates the mean-variance relationship from the normalized data.

I want to know if there is strong bonding between log2 cpm data and estimation of mean-variance relationship? In other words, will I get sensible results if I modify the voom code such that it accepts normalized data such as TMM normalized data and then it estimates the mean-variance relationship from TMM normalized data?

I am developing a pipeline and want to implement voom. But, I want to give users option to input normalized data (with their choise of normalization method) if they wish. However, I am not sure if mean-variance relationship will still be as good as that calculated from log2 cpm data.

I will appreciate for any information in this regard!

limma voom • 632 views
modified 3.1 years ago by Gordon Smyth37k • written 3.1 years ago by krishna3120
Answer: Voom: estimation of mean-variance relationship with gene expression data normali
3
3.1 years ago by
United States
James W. MacDonald50k wrote:

If you pass a DGEList to voom that has library size information that has been modified by TMM (note that TMM doesn't normalize the count data - it modifies the library sizes), then voom will use those data to calculate the cpm, before taking logs. This is the default for voom, so by definition the authors think this is a sensible thing to do, and you don't have to modify anything for this to occur.

You can also use any of the methods available to normalizeBetweenArrays for single color arrays. So you don't have to 'implement' voom to give your users the option of normalization methods, as it is already implemented in such a way to allow that to happen.

As an aside, have you read the help page for voom? It seems to me that this is clearly explained on the help page, but perhaps something is confusing?

1

To add to James' answer; the voom authors probably didn't want to support arbitrary normalization schemes, because there's no guarantee that the users will normalize in a sensible manner that preserves the mean-variance relationship. See A: Differential expression of RNA-seq data using limma and voom() for a discussion of what happens when, say, FPKMs are used for normalization. Sometimes, having more flexible code just gives your users more rope.