[BioC] remove microarray batch effects using Limma

Moshe Olshansky m_olshansky at yahoo.com
Tue Oct 26 05:49:43 CEST 2010


Hi Zhi,

Check whether replacing your Approach 2 by:

design<-model.matrix(~0+condition.factor)
exp.eset.rm.batch<-removeBatchEffect(exprs(eset),batch.factor,design)
fit<-lmFit(eset.rm.batch,design)

where eset.rm.batch is the expression dataset containing
expression values from exp.eset.rm.batch table

produces more consistent results (i.e. call removeBatchEffect with a third argument which is your design - normal versus disease).

Regards,
Moshe.

--- On Tue, 26/10/10, Xie, Zhi (NIH/NHLBI) [E] <zhi.xie at nih.gov> wrote:

> From: Xie, Zhi (NIH/NHLBI) [E] <zhi.xie at nih.gov>
> Subject: [BioC] remove microarray batch effects using Limma
> To: bioconductor at stat.math.ethz.ch
> Received: Tuesday, 26 October, 2010, 5:36 AM
> Hi everyone,
> 
> I have some microarray data files containing two sets of
> samples in
> normal and disease condition. I have tested that the data
> also contain
> significant batch effects with hybridization time. However,
> the
> positive hits I obtained using the following approaches are
> very
> different (using the same cutoff value in decideTests
> function). I
> think I am supposed to use the first approach but I am
> surprised to
> see a big difference between the two approaches. could
> anyone help
> figure out the reasons?
> 
> Thanks,
> 
> Zhi Xie
> 
> NIH/NHLBI
> 
> 
> Here eset is the expression dataset after RMA function.
> 
> ___________________
> Approach 1:
> # Consider batch effects in the model matrix
> design<-model.matrix(~0+condition.factor+batch.factor)
> 
> # fit the linear model
> fit<-lmFit(eset,design)
> 
> Then I create contrast matrix and compute coefficients and
> errors
> using contrast.fit function
> ___________________
> Approach 2:
> # remove batch effects first
> exp.eset.rm.batch<-removeBatchEffect(exprs(eset),batch.factor)
> 
> # only consider normal and disease conditions in the model
> matrix
> design<-model.matrix(~0+condition.factor)
> 
> # fit the linear model
> fit<-lmFit(eset.rm.batch,design)
> where eset.rm.batch is the expression dataset containing
> expression
> values from exp.eset.rm.batch table
> 
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>



More information about the Bioconductor mailing list