This is a test version of Biostars. For the public version, visit https://www.biostars.org.
What is the best way to quantile normalize expression matrix ?

I have an expression matrix, its rows belong to different genes and columns belong to samples.

I want to do quantile normalization. But for me seems two ways to normalize it. First: row wise; normalize the expression of every gene in all samples. Second: normalize columnwise: normalized expression of all genes in one sample and then go to other sample and ....

Which one makes more sense?

rna-seq r software-error

2 answers

The point of quantile normalization is to make the signal distribution of the samples as close as possible, so you normalize the columns. Trying to normalize the rows would introduce a whole host of issues that could seriously muck with the results (e.g., since you look for differential expression across rows, how might normalizing each row affect that...).

Good point Devon. I'm using normalize.quantiles(x,copy=TRUE) to do quantile normalization, but they didn't explain that, it's normalize by row or column. do you know useful function for quantile normalization?

The only other one that I know of off-hand (aside from tweaked versions, like cqn) is normalizeBetweenArrays() from the limma package. I wouldn't be surprised if there are others.

Thank you very much for answering this question Devon, I have a follow-up question: Under what circumstances is it appropriate to do both log transformation and quantile normalization? Thank you in advance.

Log in to answer this question.