clusterProfiler是一個功能強大的R包,同時支持GO和KEGG的富集分析,而且可視化功能非常的優(yōu)秀,本章主要介紹利用這個R包來進行Gene Ontology的富集分析。 進行GO分析時,需要考慮的一個基礎(chǔ)因素就是基因的GO注釋信息從何處獲取。Bioconductor上提供了以下19個物種的Org類型的包,包含了這些物種的GO注釋信息
clusterProfiler在做GO分析時,會讀取這些包中的GO信息,從這里也可以看出,Bioconductor的生態(tài)體系,不同R包的數(shù)據(jù)傳遞和依賴組成了其生態(tài)環(huán)境。 對于以上19個物種,只需要安裝對應(yīng)的org包,clusterProfile就會自動從中獲取GO注釋信息,我們只需要差異基因的列表就可以了,使用起來非常方便。 在進行富集分析時,支持以下兩種算法 1. Over-Representation Analysis過表達分析其實就是費舍爾精確檢驗,對于以上19個物種,分析的代碼如下 ego <- enrichGO(
gene = gene,
keyType = "ENTREZID",
OrgDb = org.Hs.eg.db,
ont = "CC",
pAdjustMethod = "BH",
pvalueCutoff = 0.01,
qvalueCutoff = 0.05,
readable = TRUE)
2. Gene Set Enrichment Analysisego <- gseGO(
geneList = geneList,
OrgDb = org.Hs.eg.db,
ont = "CC",
nPerm = 1000,
minGSSize = 100,
maxGSSize = 500,
pvalueCutoff = 0.05,
verbose = FALSE) GSEA分析通過置換檢驗來計算p值, 對于這19個物種之外的其他物種,也支持讀取基因的GO注釋文件,然后進行分析,注釋文件的格式如下
只需要3列信息即可,第一列為geneID, 第二列為基因?qū)?yīng)的GO編號,第三列為GO的描述信息。這3列的順序是無所謂的, 只要包含這3種信息就可以了。 data <- read.table(
"go_annotation.txt",
header = T,
sep = "\t")
go2gene <- data[, c(2, 1)]
go2name <- data[, c(2, 3)]
# 費舍爾精確檢驗
x <- enricher(
gene,
TERM2GENE = go2gene,
TERM2NAME = go2name)
# GSEA富集分析
x <- GSEA(
gene,
TERM2GENE = go2gene,
TERM2NAME = go2name) 對于GO富集分析的結(jié)果,clusterProfiler提供了以下幾種可視化策略 1. barplot用散點圖展示富集到的GO terms,用法如下 barplot(ego, showCategory = 10) 生成的圖片如下 橫軸為該GO term下的差異基因個數(shù),縱軸為富集到的GO Terms的描述信息, 2. dotplot用散點圖展示富集到的GO terms,用法如下 dotplot(ego, showCategory = 10) 生成的圖片如下 橫軸為 圖中點的顏色對應(yīng)p.adjust的值,從小到大,對應(yīng)藍色到紅色,大小對應(yīng)該GO terms下的差異基因個數(shù),個數(shù)越多,點越大。 3. GO有向無環(huán)圖調(diào)用topGO來實現(xiàn)GO有向無環(huán)圖的繪制,代碼如下 plotGOgraph(ego) 生成的圖片如下 4. goplot和 goplot(ego) 生成的圖片如下 5. emapplot對于富集到的GO terms之間的基因重疊關(guān)系進行展示,如果兩個GO terms系的差異基因存在重疊,說明這兩個節(jié)點存在overlap關(guān)系,在圖中用線條連接起來,用法如下 emapplot(ego, showCategory = 30) 生成的圖片如下 每個節(jié)點是一個富集到的GO term, 默認畫top30個富集到的GO terms, 節(jié)點大小對應(yīng)該GO terms下富集到的差異基因個數(shù),節(jié)點的顏色對應(yīng)p.adjust的值,從小到大,對應(yīng)藍色到紅色。 6. cnetplot對于基因和富集的GO terms之間的對應(yīng)關(guān)系進行展示,如果一個基因位于一個GO Terms下,則將該基因與GO連線,用法如下 cnetplot(ego, showCategory = 5) 生成的圖片如下 圖中灰色的點代表基因,黃色的點代表富集到的GO terms, 默認畫top5富集到的GO terms, GO 節(jié)點的大小對應(yīng)富集到的基因個數(shù)。 更多用法和細節(jié)請參考官方文檔。 ·end· |
|