[BioC] Limma topTable; fold changes look completely different to the normalized data and Limma fold change

john herbert arraystruggles at gmail.com
Fri Jul 6 21:12:12 CEST 2012


Dear all,
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
quantile normalization

This is then the data matrix I use as input to Limma

> class(norm_ctw)
[1] "matrix"

> dim(norm_ctw)
[1] 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
wound2   wound3
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 change
but 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.

John.



More information about the Bioconductor mailing list