Hi everybody,
I read a lot of threads but probably I miss the right one...anyway here is my question:
I have an expression matrix (expressionData) with 2 different conditions: HLT and TUM These two conditions derives from aggregating data from 3 different experiments (which use different platforms also). I want to compare HLT vs TUM minimizing the batch effect, thus I implemented in the design matrix both the condition and the experiment info:
g = c(rep('HLT',9),rep('TUM',9))
conditions = factor(g, levels = c('HLT','TUM'))
b = rep(c(rep('EXP1',3),rep('EXP2',3),rep('EXP3',3)),2)
batch = factor(b, levels = c('EXP1','EXP2','EXP3'))
designMatrix = model.matrix(~0+conditions+batch)
At this point I have some doubts about comparing HLT vs TUM (commands below). By default it seems that Limma using this designMatrix compares everything (conditions + batch) vs gene expressions in EXP1.
fitBatch = lmFit(expressionData, designMatrix)
fitBatch = eBayes(fitBatch)
Thus, I created a contrast matrix to specify the comparison to perform
contrast.matrix = makeContrasts(TUM-HLT, levels=designMatrix)
fitBatch = contrasts.fit(fitBatch, contrast.matrix)
ttBatch = topTable(fitBatch, num=Inf)
Result shows very low adj.P.vals (all genes pass the 0.05 filter) and that sounds strange since I'm comparing different experiments using different platforms and also different tissues.
Where is the error? What I did wrongly?