I have a problem with the log Fold changes calculated in Limma. I am
using protein abundance index of proteomic data
The log2 of this data is normally distributed and after log2, I use
This is then the data matrix I use as input to Limma
class(norm_ctw) 683 9
design <- model.matrix(~ 0+factor(c(1,1,1,2,2,2,3,3,3)))
colnames(design) <- c("cam", "tumour", "wound")
fit <- lmFit(norm_ctw, design)
contrast.matrix <- makeContrasts(tumour-wound, tumour-cam, levels=design)
fit2 <- contrasts.fit(fit, contrast.matrix)
fit2 <- eBayes(fit2)
topTable(fit2, coef=1, adjust="BH")
Taking one gene as an example. NAMPT in tumour versus wound and
calculating fold change by hand of normalized data;
norm_ctw["NAMPT",]cam1 cam2 cam3 tumour1 tumour2 tumour3 wound1
19.80164 19.46355 19.26075 22.75347 22.62651 22.39521 16.17398 16.60262 16.72368
In Excel, calculating log2 fold change using Average of Tumour/Average
of wound =
T1 22.75347 T2 22.62651 T3 22.39521 W1 16.17398 W2 16.60262 W3 16.72368
Tumour average = 22.59173
Wound average = 16.50009333
Log2 Fold change = 0.453320567
However, from TopTable....
topTable(fit2,coef=1)ID logFC AveExpr t P.Value adj.P.Val B
431 NAMPT 6.091632 19.53349 20.16810 2.688444e-09 1.750946e-06 11.409857
From toptable, NAMPT has an apparent log2 FC of 6 or 64 fold changebut that is impossible right??
Please can someone explain if I am using Limma wrong or how the fold
change can be massively different between "by hand" and with Limma.
Thank you very much for any advice.