科研代碼分享|GOSim:基因集富集分析R包
科研有捷徑,輸入代碼,一鍵獲取科研成果!就是這么省事,來具體看下有多方便!
搜索http://985.so/a9kb查看全部代碼(目前共計50+持續(xù)新增中),也可以點擊右側【目錄】,可以看到更多有趣的代碼
真香提示:文末可以知道如何獲取代碼~?
在生物信息學中,我們經常用到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

富集結果如下圖所示:

