一、概述
ClusterProfiler是一個R包,主要用於功能富集分析的結果的可視化和解釋。它基於R語言的GOstats和ggplot2包,支持多種物種和GO分支的注釋和富集分析,同時提供了多個圖表來直觀展示結果。
二、基本功能
ClusterProfiler包提供了豐富的功能來支持富集分析,下面列舉一些常用的基本功能:
1. 富集分析
利用clusterProfiler包,可以快速地進行富集分析,根據用戶提供的基因列表,對其進行生物學上的意義分析,並判斷某個生物學過程是否在該基因集中高度富集。下面是一個簡單示例:
library(clusterProfiler)
geneList <- c("ENSG00000149127", "ENSG00000136884", "ENSG00000143322", "ENSG00000000003", "ENSG00000141160")
data(geneList, package="DOSE")
ego <- enrichGO(geneList = geneList,
OrgDb = org.Hs.eg.db,
ont = "BP",
pvalueCutoff = 0.05,
qvalueCutoff = 0.05)
barplot(ego, showCategory=10, title="GO enrichment")
這段代碼會對一個基因集進行生物學意義分析,並得出這些基因集中與特定生物過程相關的通路。富集分析結果可以使用barplot、dotplot等進行可視化展示。
2. 數據聚類
利用ClusterProfiler包內置函數clusterProfiler()可以方便地實現數據聚類分析,該函數提供了多達13種不同生物注釋資料庫,包括 GO, KEGG, Reactome, BioCarta 等。下面是一個簡單的數據聚類的示例:
library(clusterProfiler)
data(geneList)
ego <- enrichGO(geneList,
OrgDb = org.Hs.eg.db,
ont = "BP",
pvalueCutoff = 0.05,
qvalueCutoff = 0.05)
plotGOgraph(ego, nodeSize=10)
上述代碼實現了對geneList進行注釋與富集分析,並生成了一個GO圖形化展示。通過觀察這個圖,可以看出哪些生物過程(GO term)在geneList中高度富集。
三、高級功能
除了基本功能之外,ClusterProfiler包還提供了許多高級功能,能夠更進一步地發掘生物學意義,下面列舉一些高級功能:
1. 顯示分形結構
ClusterProfiler包提供了多種展示聚類結果的圖表,其中ggplot()最為常用,可以畫出漂亮的結果圖。此外,神經網路圖也非常有用,可以顯示出聚類結果的分形結構,以便查看不同層次的聚類相關信息。下面是一個示例功能:
library(clusterProfiler)
data(geneList)
ego <- enrichGO(geneList, OrgDb = org.Hs.eg.db, ont = "BP")
head(geneList)
geneSets <- colorValue(
names(ego),
ggColors(n = length(names(ego))),
as.factor(substring(names(ego), 1, 2))
)
head(geneSets)
sunburstR(geneList, fun="enrichKEGG", pvalueCutoff=0.05, qvalueCutoff=0.05,
organism="hsa", minGSSize=1, maxGSSize=500,
pAdjustMethod="BH", showCategory=4, fontSize=4, ggtheme=theme_minimal())
這段代碼會使用絡椮網路圖展示富集分析的結果。在這個圖中,每個節點代表一個富集分析中的GO term,連接節點的邊代表GO term之間的相似性關係,節點的顏色表示GO term所屬的高層、較寬的生物進程。
2. 模塊可視化
ClusterProfiler包還提供了一個mdsplot()函數,可以用於模塊可視化分析。該函數可以繪製2個樣品之間的距離矩陣,並進行聚類分析,以便比較它們之間的相似性和差異性,並可以利用ggplot等函數對結果進行可視化展示。下面是一個示例:
library(clusterProfiler)
data(geneList, package="DOSE")
data(geneList, package="DOSE")
ego <- enrichGO(geneList, OrgDb = org.Hs.eg.db, ont = "BP")
geneSets <- colorValue(names(ego), ggColors(n=length(names(ego))),as.factor(substring(names(ego),1,1)))
e <- enricher(gene = geneList,
TERM2GENE = homo.sapiens.db,
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
ont = "CC",
onlyEnriched = T)
c_e <- setReadable(cbind(e@result$ID, e@result$Description), org.Hs.egSYMBOL)
ec <- enrichCluster(c_e[,1], pvalueCutoff=0.01, qvalueCutoff=0.05)
mdsplot(ec, showCategory=TRUE, pointSize=6, legendPosition="left", nTop=100)
這段代碼會對輸入數據進行聚類分析,並將聚類結果可視化展示。如果輸入的數據中包含多種展示信息,可以使用不同的顏色來表示,以便更好地區分樣本種類。
3. 模塊比較分析
ClusterProfiler包還提供了一個比較分析功能,比如可以比較2個聚類結果,檢索它們之間的差異。下面是一個示例:
library(clusterProfiler)
data(geneList, package="DOSE")
data(geneList, package="DOSE")
ego <- enrichGO(geneList, OrgDb = org.Hs.eg.db, ont = "BP")
geneSets <- colorValue(names(ego), ggColors(n=length(names(ego))),as.factor(substring(names(ego),1,1)))
e <- enricher(gene = geneList,
TERM2GENE = homo.sapiens.db,
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
ont = "CC",
onlyEnriched = T)
c_e <- setReadable(cbind(e@result$ID, e@result$Description), org.Hs.egSYMBOL)
ec <- enrichCluster(c_e[,1], pvalueCutoff=0.01,qvalueCutoff=0.05)
mc <- compareCluster(ec, goTermSets = geneSets, fun="enrichKEGG", printBy="Term", organism="hsa")
dotplot(mc)
在這個示例中,比較了2個不同樣本之間的聚類結果,並使用dotplot()函數,用柱狀圖表示差異。
四、總結
ClusterProfiler包提供了豐富的功能和工具來進行富集分析,數據聚類分析和模塊可視化分析等生物信息學數據分析任務。它方便實用,支持多種生物學注釋資料庫,可以幫助生物信息學家實現快速,準確的生物學意義分析。
原創文章,作者:LTBBV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/368018.html