[BioC] Why NONE of any contrast is significant when overall F-test is significant? using "global" method in decideTests() from limma package
Guiyuan Lei
guiyuanlei at gmail.com
Wed Feb 27 17:36:29 CET 2008
Dear all,
I am using limma package to identify differential expression. I have 5
contrasts, I used F-statistic to measure significant differential
expression, the F-test p-value is adjusted by "fdr" method . I used
the command
p.adjust(eb$F.p.value, method="fdr") < 0.05
where eb is the object from eBayes(). I got 397 significant
differential expression.
Then for those 397 significantly differential expressed genes, I want
to look at each contrast to check which contrast is significant. I
used
decideTests(eb, method="global")
to classify each t-statistics as up, down or not significant.
I found that among genes which are significantly expressed by F-test
p-value, that is, the above 397 genes, some have got five '0's from
decideTests, which means those genes are not significant for any of
its contrast while its F-test is significant. As I understand, if
F-test is significant, should at least one of its contrast (t-test) is
significant. I doubt that the "global" method used in decideTests() is
not properly used for this case? But why? Can any one explain this to
me? Many thanks! I attach the code and results as following.
library(limma)
levels= c('h','h','h','hh','hh','mh','mh','s','s','s','y','y','y','y')
dimnames(eset.matrix)[[2]]= levels
TS <- factor(levels, levels= c('h','hh','mh','s','y'))
design <- model.matrix(~0+TS)
colnames(design) <- levels(TS)
fit <- lmFit(eset.gcrma, design)
#Construct the contrasts
mc <- makeContrasts('s-y','h-y','mh-y','hh-h','mh-hh',levels=design)
fit2 <- contrasts.fit(fit, mc)
eb <- eBayes(fit2)
#The adjustment methods using "fdr"
modFpvalue <- eb$F.p.value
selectedgenesindx <- p.adjust(eb$F.p.value, method="fdr") < 0.05
Sig<-modFpvalue[selectedgenesindx]
nsiggenes<-length(Sig) #number of significantly differential expression
#decideTests using "global" method
results1 <- decideTests(eb, method="global")
#Order the F-statistic
modF <- eb$F
modFordered<-order(modF, decreasing = TRUE)
#Get the up or down or not significant for nsiggenes significant
(according adjusted p-value of F-test) differential expression
updown<-results1[modFordered[1:nsiggenes],]
Examples for genes which are significant expression by F-test
F-test results from decideTests()
eb$F.p.value contrast1 contrast2 contrast3 contrast4 contrast4
5.6E-05 0 0 0 0 0
(this one is not significant for any of its contrast, why five '0's?)
0.00036 0 -1 0 0 0
Best regards,
Guiyuan
More information about the Bioconductor
mailing list