仅供参考。 GO enrichment检验方法一般是超几何分布检验,虽然原理简单但是经常发现不同软件的结果差别很大。这次对常用的三个软件,clusterProfiler,DAVID和BINGO,简单测试了一下GO enrichment在Cellular Component类别上的结果差别。

随机生成240的human gene entrez ID, 文件 geneList.txt。

P值多重检验校正方法,FDR(BH)adjustment。

1 clusterProfiler, R bioconductor package。

library("clusterProfiler")
entrez_ID<-read.table("GeneList.txt",header=T,stringsAsFactors=F)[,1]
enrich_GOs<-enrichGO(gene=entrez_ID,organism="human",ont="CC",pvalueCutoff=0.05,readable=TRUE) 
clusterProfiler_output=enrich_GOs@result

结果得到5个显著富集的GO term,具体信息省略。

GOTERM geneCount
GO:0097381	5
GO:0001750	6
GO:0045121	11
GO:0098857	11

2 使用David GOTERM_CC_ALL (adjustment method FDR)

FDR校正后,只有两个显著Term,放宽条件为Benjamini adjustment,多了两个term。

GOTERM geneCount
GO:0043226 169
GO:0043227 159
GO:0097381 5 (Benjamini)
GO:0001750 7 (Benjamini)

3 使用cytoscape 的plugin, BINGO

7个显著Term,但是GO term内注释到的基因数目比以上两个软件得到的较少,估计是GO database的问题。

GOTERM geneCount
GO:0044424 148   
GO:0005622 149
GO:0022627 4
GO:0070013 33  
GO:0005654 22 
GO:0031974 34 
GO:0044451 16 

比较三个软件得到的 overrepresented Terms之间的关系

红色,clusterProfiler显著Terms。浅蓝,David显著Terms。绿色,BINGO显著Terms。

library("RamiGO")
goIDs <- c("GO:0097381","GO:0001750","GO:0045121","GO:0098857",
           "GO:0043226","GO:0043227","GO:0044424","GO:0005622","GO:0022627",
           "GO:0070013","GO:0005654","GO:0031974","GO:0044451")
color <- c(rep("red",4),rep("blue",2),rep("green",7))
pngRes <- getAmigoTree(goIDs=goIDs, color=color, filename="example", picType="png", saveResult=TRUE)

结果大图 output

clusterProfiler富集的是direct terms。background用的是org.Hs.eg.db, 一年两次更新。

David的结果,选的GOTERM_CC_ALL的结果且用FDR adjustment,因为direct terms中没有显著的富集GOTERMs。用DAVID做GO enrichment时候还是适合选Benjamini的adjustment,Benjamini adjustment显著的GO terms有两个与clusterProfiler一致,GO:0097381和GO:0001750。