看教程不够直观,那就看视频吧! >>点击加载视频
闲暇时突然想写一个GO富集分析的小工具,说到富集分析的话不得不提Y叔的clusterProfiler了,简单的使用clusterProfiler提供的GO富集分析的例子:
## Not run:
data(geneList)
de <- names(geneList)[1:100]
yy <- enrichGO(de, 'org.Hs.eg.db', ont="BP", pvalueCutoff=0.01)
head(yy)
## End(Not run)

得到了富集分析的结果,写工具嘛首先需要的是结果可靠,所以根据富集分析的算法我们可以自己实现一个富集分析的功能,主要在于前期数据处理这块,从上述例子可以得到这六个GO term的ID,我们去GO数据库下载了go-basic.obo文件,通过自己的脚本进行解析出来(见教程:GO的obo文件解析Python代码)。
完成了GO Term的解析之后,我们要看一下我们解析的对不对,基于clusterProfiler的例子数据,我们可以进行模拟一下,首先这个例子是人的,所以我们先得到ENTREZID与GO的关系,怎么获得呢
通过这么一句R代码:
select(org.Hs.eg.db,keys(org.Hs.eg.db),columns = c('GO'))



然后关于背景BP中的基因共有16992个,这个和程序解析出来的也是有出入的,在org.Hs.eg.db包中能注释上GO的ENTREZID有18907个,然而根据NCBI提供的ENTREZID转GeneSymbol中只有18892个ENTREZID对应有geneSymbol,故此背景数目有一些出入,但是这些出入并不会影响结果。如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
