科研代码分享|GOSim:基因集富集分析R包
科研有捷径,输入代码,一键获取科研成果!就是这么省事,来具体看下有多方便!
搜索http://985.so/a9kb查看全部代码(目前共计50+持续新增中),也可以点击右侧【目录】,可以看到更多有趣的代码
真香提示:文末可以知道如何获取代码~
在生物信息学中,我们经常用到GO功能富集,GO分析通常可以分为分子功能(MF),生物过程(BP),细胞组分(CC)三个部分。
GO功能富集分析是判断某个具体的GO term是否富集,也就是在这个term上面映射到的基因数量是否得到一个标准,样本的GO功能分析是基于各自样本得到的差异基因来进行的,通过GO功能富集分析可以了解该样本行使的主要生物学功能。
现在有很多方法可以做GO功能富集分析,比如在线工具DAVID,R包GOstats以及接下来我们要介绍的R包GOSim
GOSim这个包应用几个函数来计算GO term和基于GO注释的基因之间的相似性,并且可以计算GO功能富集。
在R中通过Bioconductor就可以获得该包,安装该包可能需要一段时间,因为它涉及到很多其他的R包例如:annotate,topGO,graph,cluster等。用GOSim进行富集分析,其实是调用了topGO包。
source("http://bioconductor.org/biocLite.R")
biocLite("GOSim")
将包安装好后,我们来介绍一下怎样用GOSim做GO功能富集分析,代码如下:
library("GOSim")##安装一系列提醒的包
setOntology("BP")#选择什么组分,可以选择BP,CC或者MF
smgenes<-as.matrix(read.table("E:/geneid.txt",header=F,sep="\t"));#导入我的基因集合
smgenes<-as.character(smgenes[,1])##一列也得这么取,才能转换的是里面的元素
gomap <- get("gomap",env=GOSimEnv);
allgenes <- names(gomap);##背景集合--人类
intergene<-intersect(allgenes,smgenes)##背景基因和兴趣基因做交集
genenrichment<-GOenrichment(intergene,allgenes,cutoff=0.01,method="Elim");##做富集分析
gene_Function<-list(genenrichment[1]);##基因参与哪些生物学功能
write.table(gene_Function, "E:/geneid-BP.txt ", append = TRUE, quote = FALSE,row.names = FALSE,col.names = FALSE);##将富集结果导出,存入geneid-BP文件中
以上为做富集分析的程序,标黄部分为富集分析的函数,其中每个参数的意义如下:
intergene:Entrez gene IDs特征向量
allgenes:Entrez gene IDs特征向量
cutoff:GO富集分析显著性阈值,通常取0.01或者0.05
method="Elim":topGO方法使用
其中,导入的基因集合格式如下图:每一行是一个gene ID

富集结果如下图所示:

