最近用來做功能注釋的方法非常多,走過多個坑之后,對功能注釋做一個總結。
我們常用的功能注釋也就是GO,KEGG,和Reactom,MSigDB數據庫都有提供其gmt文件,對于熟悉注釋富集的、需要一定專業度或者特定需求的,可以直接下載其.gmt文件對自己的基因集進行注釋。
MSigDB網址:https://www.gsea-msigdb.org/gsea/msigdb/index.jsp
最簡單的方法是使用網頁進行分析
一、網頁
(1)gprofiler
gprofiler是作者用過相對好用的一個網頁進行注釋的方法,它的用法很簡潔,最最主要的是,它輸出的圖的配色都是很好看的。所以這里主要介紹一下這個怎么用!
g:Profiler:https://biit.cs.ut.ee/gprofiler/gost
gprofiler也提供.gmt文件的下載,而且其數據格式更加規范。因為MsigDB給定的term name都是大寫,不方便看。(不過KEGG的gmt文件由于版權不可以下載,但是直接使用gprofiler可以進行KEGG通路的富集。)
輸入geneset后富集到的結果
而且,gprofiler是有其R包可用的,可以方便批量的處理數據。
library(gprofiler2)
gostres <- gost(query = gene.list,organism = "hsapiens",
user_threshold = 0.05,correction_method = "fdr",sources = NULL)
#source設置為NULL的情況下,會富集所有數據庫中的term,可選GO (GO:BP, GO:MF, GO:CC to select a particular GO branch), KEGG, REAC, TF, MIRNA, CORUM, HP, HPA, WP
enrichment_result<-gostres$result
#也可以再結果中選擇需要的數據庫的term
bp_result<-enrichment_result[which(enrichment_result$source=="GO:BP"),]#BP
kegg_result<-enrichment_result[which(enrichment_result$source=="KEGG"),]#KEGG
二、R包
使用R包進行功能注釋的話,另外一個比較推薦的R包是ClusterProfier
1.ClusterProfier用法介紹.R
#注釋
#'我們首先以MsigGB數據庫進行reactome注釋
#'自定義輸入gmt文件,至下載MsigGB數據庫
reactome.gmt<-readGMT(file = "reactom.gmt",num = 2)#自己寫的讀取gmt文件的函數
result <- enricher(gene,TERM2GENE=reactome.gmt[,c(1,3)],TERM2NAME = reactome.gmt[,c(1,2)],pvalueCutoff = 0.05,pAdjustMethod = "BH")
三、cytoscape
cytoscape是用來畫網絡圖的,但是它的一些包,對可視化通路富集的結果非常友好。
1.ClueGO
clueGO可以直接輸入需要富集的基因集合或者已經提前處理好的注釋term。它內部采取的ontologies或pathway都是比較新的,并且可以根據使用者自己更新。
關于ClueGO的使用方法,推薦bilibili上的視頻介紹
已經非常詳細:https://www.bilibili.com/video/BV1TK411W7TM?from=search&seid=15782532823298096980
2.enrichmentMap
另外一個比較經典且強大的包,肯定就是enrichmentMap了。使用方法可以查看enrichmentMap給的教程。