My metabolomics data were obtained in two batches. To correct this, I performed:

- data filtering: mSet<-FilterVariable(mSet, “iqr”, “F”, 30),
- normalization: mSet<-Normalization(mSet, “GroupPQN”, “LogNorm”, “MeanCenter”, “QC”, ratio=FALSE, ratioNum=20),
- and then batch correction with “Combat,” “EigenMS,” “ANCOVA,” and “QC_RLSC” methods.

Except for QC_RLSC, the other methods generate many values equal to zero. Is it correct to perform normalization before batch correction for all these methods? Does any of them perform normalization when running the function?

Thank you very much.