Bioconductor


rawData <- ReadAffy()
eset <- mas5(rawData)
logEset <- log(exprs(eset))

group <- gl(4,5,20, labels=c("Ctrl", "Treat1", "Treat2", "Treat3"))
scores <- apply(logEset, 1, function(x){
a <- anova(lm(x ~ group))
b <- bartlett.test(x ~ group)
m <- exp(max(x))
c(median(x[1:5]), median(x[6:10]), median(x[11:15]), median(x[16:20]), m, a$Pr[1], b$p.value)
})

scores <- t(scores)
colnames(scores) <- c("Ctrl", "Treat1", "Treat2", "Treat3", "max", "p.value", "bartlett.p")

tNames <- names(sort(scores[scores[,6]<=0.01*1e-4 & scores[,5]>300 & scores[,7]>=0.05,6]))

tmpLL <- as.numeric(mget(tNames, env=rgu34aLOCUSID))  # 追加
myLL <- unique(tmpLL[is.na(tmpLL)==FALSE])  # 追加
xx <- GOHyperG(myLL, "rgu34a", "BP") # 追加
for(x in names(xx$pvalues[xx$pvalues<1e-4])){
cat(x, xx$pvalues[x], get(x, env=GOTERM), "\n")
}

なんてやったら、マイナスの p値がでる !! なぜだ?

GO:000nnnn -1.359037e-14 xxxxx metabolism
GO:0000mmm -6.789166e-15 zzzzz biosynthesis
GO:000pppp -4.786536e-15 yyyyy metabolism
GO:000qqqq 1.708106e-15 wwww biosynthesis
結果それ自体は気持ち悪い位妥当なんだけどね。