topGO是一个专门用于做GO富集分析的R包,它默认从GO.db
中读取GO的分类和结构信息,结合富集分析的结果,它可以画出如下所示的GO有向无环图
除了GO富集结果可视化这一特点,topGO还提供了多种富集分析的统计方法,示意如下
甚至支持自定义统计算法和模型,当然,常规情况下我们使用经典的费舍尔精确检验就可以了。
topGO的核心是构建一个topGOdata
类型的对象,需要以下3种元素
- 基因组所有的基因
- 基因组所有基因对应的GO注释
- GO之间的分类和结构信息
基因的列表在R中用向量存储,topGO会根据names
属性来读取基因的标识符,而这个向量的内容是一个只包括0
和1
的因子,0
表示这个基因为非差异基因,1
表示这个基因为差异基因。示例如下
> head(geneList)
1 2 3 9 10
1 0 1 0 1
第一行为names属性,这里为entrez id, 第二行为向量的内容。
基因的GO注释,可以从Bioconductor提供的注释包中获得,比如human就可以从org.Hs.eg.db