Hi
I'm hoping to use limma to analyze a metabolite dataset for differential 'expression' across replicate conditions (~200 metabolites).
I've normalized and log-transformed my data with MetaboAnalyst defaults (normalize metabolites to the sum for a sample -> log10 transform -> row-scale metabolites across samples).
I have a random-effects design and I like limma's ability to account for this... And I have seen some mass spec analyses advocating limma for similar analyses, although this helpful post seems to advocate against it, although I'm not as convinced given limma's widespread use on RNAseq (with voom).
Is there any reason I shouldn't do this? It seems to work well, but I'm a bit concerned that the default row-scaling masks mean-variance relationships (which maybe would be better accounted for with voom on the raw data)?
Thanks for any advice!
Thanks Kevin - it's reassuring to hear you think it's warranted!
Sure thing. The word 'Metabolomics' is also a biocView on the Bioconductor limma page: https://bioconductor.org/packages/release/bioc/html/limma.html
I'm late to the party, but I wanted to add a comment on scaling the data prior to limma analysis since I'm doing something similar right now. In my case, applying auto-scaling seems to lead to "p-values becoming a monotonic function of fold change" as indicated in a previous Bioconductor discussion. I wonder if OP is implying auto-scaling when he mentioned row-scaling and whether he ran into a similar phenomenon (I think he meant
rowNorm
from MetaboAnalyst, but wanted to double-check).Also, it seems like MetaboAnalystR skips scaling according to their documentation:
mSet<-Normalization(mSet, rowNorm="MedianNorm", transNorm="LogNorm", scaleNorm="NULL", ratio=FALSE, ratioNum=20)
Let me know what you guys think. Thanks!