GO富集可視化:clusterProfiler+GOplot

現(xiàn)在的社會正處于大數(shù)據(jù)時(shí)代烦粒,生物學(xué)研究領(lǐng)域也迎來了大組學(xué)時(shí)代次绘。無論是植物。動物撒遣,還是微生物,都有許多物種被測序管跺。在后續(xù)的個(gè)性化分析過程中义黎,通常會得到龐大的基因數(shù)據(jù),如何選擇一個(gè)高效的生物功能分析方法顯得尤其重要豁跑×椋基因的功能富集,可以讓你快速地了解所獲得的基因具有怎樣的生物功能艇拍,它們主要集中在哪些生物通路狐蜕。clusterProfiler、GOplot這兩個(gè)工具可以說是在眾多GO富集分析軟件中脫穎而出卸夕,它們不僅能夠支持多個(gè)數(shù)據(jù)庫(GO/KEGG/DOSE/MSigDb/Reactome)层释,還能繪出高大上的CNS級別富集圖。那么快集,今天主要就是介紹如何結(jié)合這兩個(gè)軟件贡羔,讓你的一組gene symbol秒變高富帥。

01. 準(zhǔn)備數(shù)據(jù)

經(jīng)過上游的生信分析我們會獲得許多具有生物學(xué)意義的gene set个初,可以是差異表達(dá)基因乖寒,也可是正選擇基因或者加速進(jìn)化基因。通常院溺,只要具有這些基因的gene symbol或者是geneid楣嘁,都可以利用該軟件進(jìn)行分析。

本次所使用的數(shù)據(jù)主要是gene symbol珍逸,如下圖所示


02. 讀入數(shù)據(jù)

setwd("C:/Users/lenovo/Desktop/RERconverge-master/R")  # 設(shè)置工作路徑
geneset <- read.table(file = "genelist",header = F) #讀取數(shù)據(jù)
> head(geneset) #查看數(shù)據(jù)
      V1
1 ADCY10
2  ADCY2
3  ADCY3
4  ADCY4
5  ADCY5
6  ADCY6
gene=as.character(geneset[,1]) #轉(zhuǎn)換字符格式
> head(gene)
[1] "ADCY10" "ADCY2"  "ADCY3"  "ADCY4" 
[5] "ADCY5"  "ADCY6"

03. 使用clusterProfiler進(jìn)行富集分析

library(org.Hs.eg.db)
library(clusterProfiler)
library(GOplot)
library(ggplot2)
library(stringr)

gene <- bitr(gene, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db") # 將symbol轉(zhuǎn)換為entrzid

ego <- enrichGO(gene=gene$ENTREZID,
                OrgDb='org.Hs.eg.db',
                ont= "BP",
                pAdjustMethod="BH",
                pvalueCutoff  = 0.01,
                qvalueCutoff  = 0.05,
                 readable = TRUE)
> dim(ego)
[1] 402   9
ego2 <- simplify(ego,cutoff=0.7,by="p.adjust",select_fun=min)  #去除冗余逐虚,可以調(diào)整cutoff值
> dim(ego2)
[1] 144   9
heatlpot(ego2)
cnetplot(ego2,categorySize="pvalue",circular = TRUE, colorEdge = TRUE)
# KEGG富集
kk <- enrichKEGG(gene$ENTREZID, organism="hsa",keyType = "kegg",pvalueCutoff=0.01,pAdjustMethod="BH",qvalueCutoff=0.05)
barplot(kk, showCategory=20,title="Enrichment KEGG")

04. 整理GOplot輸入文件格式


###ego3 <- data.frame(ego2) ### 轉(zhuǎn)換為數(shù)據(jù)矩陣
GO <- ego[1:9,c(1,2,8,6)]  ### 選取富集結(jié)果前9個(gè),并提取GO id弄息,description痊班, adj.p以及基因ID列
GO$geneID <- str_replace_all(GO$geneID,"/",",") ### 修改geneID這一列的分隔符號
names(GO)=c("ID","Term","Genes","adj_pval")
GO$Category = "BP"
###構(gòu)建基因矩陣,并隨機(jī)生成logFC
genedata = data.frame(ID=geneset$V1,logFC=rnorm(length(geneset$V1),mean = 0,sd=2))
circ <- circle_dat(GO,genedata)

05. 使用GOplot繪圖

# 01. 和弦圖
chord <- chord_dat(data=circ, genes = genedata)  # 生成帶有選定基因列表的矩陣
chord <- chord_dat(data=circ, process = GO$Term) #生成帶有選定GO term的列表矩陣

chord <- chord_dat(data=circ, genes=genedata,process = GO$Term) # 構(gòu)建數(shù)據(jù)
GOChord (         data=chord,
                  title = "GOChord plot", 
                  space = 0.02, # go term處間隔大小
                  limit = c(3,5) #第一個(gè)值是至少分配給一個(gè)基因的go term數(shù)目摹量,第二個(gè)數(shù)值是至少分配給一個(gè)Go term的基因數(shù)
                  gene.order ='logFC',gene.space=0.25,gene.size=10,
                  lfc.col = c('firebrick3','white','royalblue3') #上下調(diào)基因顏色
                  ribbon.col=brewer.pal(length(GO$Term)),"set3" #GO term顏色
                  process.label = 18 # Go terms字體大小
)


# 02. 條形圖
GOBar(circ,display = 'multiple')

# 03. 氣泡圖
# 要添加標(biāo)題涤伐,請更改圓圈的顏色馒胆,對圖進(jìn)行構(gòu)圖,并更改標(biāo)簽閾值凝果,請使用以下參數(shù):
GOBubble(circ, title = 'Bubble plot', colour = c('orange', 'darkred', 'gold'), display = 'multiple', labels = 3)
# 對于構(gòu)面圖祝迂,還可以通過將bg.col設(shè)置為TRUE,根據(jù)顯示的類別為面板的背景著色:
GOBubble(circ, title = 'Bubble plot with background colour', display = 'multiple', bg.col = T, labels = 3)
# 軟件包的更新版本中包含一個(gè)新函數(shù)reduce_overlap 器净,以減少冗余項(xiàng)的數(shù)量. 到目前為止型雳,已實(shí)現(xiàn)的方法非常簡單+緩慢,需要進(jìn)一步完善. 但是山害,通過減少冗余項(xiàng)的數(shù)量纠俭,可以像氣泡圖一樣顯著提高圖的可讀性. 該函數(shù)刪除基因重疊大于或等于設(shè)定閾值的所有術(shù)語. 該函數(shù)在不考慮GO層次結(jié)構(gòu)的情況下,每組代表一個(gè)術(shù)語:
# Reduce redundant terms with a gene overlap >= 0.75...
reduced_circ <- reduce_overlap(circ, overlap = 0.75)
# ...and plot it
GOBubble(reduced_circ, labels = 2.8)

# 04. 圈圖
GOCircle(circ)

# 外圈顯示了分配基因的logFC的每個(gè)項(xiàng)的散點(diǎn)圖. 默認(rèn)情況下浪慌,紅色圓圈顯示上調(diào)冤荆,藍(lán)色圓圈顯示下調(diào). 可以使用參數(shù)lfc.col更改顏色. 因此,更容易理解权纤,為什么在某些情況下钓简,高度有效的術(shù)語的z得分接近于零. Z分?jǐn)?shù)為零并不意味著該術(shù)語不重要. 至少沒有,只要其顯著豐富即可. 它只是表明z分?jǐn)?shù)是一個(gè)粗略的度量汹想,因?yàn)轱@然分?jǐn)?shù)并未考慮過程中單個(gè)基因的功能水平和激活依賴性. 您可以使用各種參數(shù)來更改圖的布局外邓,請參閱? GOCirlce.nsub參數(shù)需要更多說明才能明智地使用. 首先古掏,它可以是數(shù)字或字符向量. 如果它是一個(gè)字符向量损话,則它包含要顯示的進(jìn)程的ID或術(shù)語說明(未顯示輸出)。
IDs <- c('GO:0007507', 'GO:0001568', 'GO:0001944', 'GO:0048729', 'GO:0048514', 'GO:0005886', 'GO:0008092', 'GO:0008047')
GOCircle(circ, nsub = IDs)

# 05. 熱圖
GOHeat(chord, nlfc = 1, fill.col = c('red', 'yellow', 'green'))

# 06. 聚類圖
GOCluster(circ, EC$process, clust.by = 'logFC', term.width = 2)

OCluster(circ, EC$process, clust.by = 'term', lfc.col = c('darkgoldenrod1', 'black', 'cyan1'))

# 07. 韋恩圖

l1 <- subset(circ, term == 'heart development', c(genes,logFC))
l2 <- subset(circ, term == 'plasma membrane', c(genes,logFC))
l3 <- subset(circ, term == 'tissue morphogenesis', c(genes,logFC))
GOVenn(l1,l2,l3, label = c('heart development', 'plasma membrane', 'tissue morphogenesis'))

參考鏈接:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載冗茸,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者席镀。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市夏漱,隨后出現(xiàn)的幾起案子豪诲,更是在濱河造成了極大的恐慌,老刑警劉巖挂绰,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屎篱,死亡現(xiàn)場離奇詭異,居然都是意外死亡葵蒂,警方通過查閱死者的電腦和手機(jī)交播,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來践付,“玉大人秦士,你說我怎么就攤上這事∮栏撸” “怎么了隧土?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵提针,是天一觀的道長。 經(jīng)常有香客問我曹傀,道長辐脖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任皆愉,我火速辦了婚禮嗜价,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幕庐。我一直安慰自己久锥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布异剥。 她就那樣靜靜地躺著奴拦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪届吁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天绿鸣,我揣著相機(jī)與錄音疚沐,去河邊找鬼。 笑死潮模,一個(gè)胖子當(dāng)著我的面吹牛亮蛔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎厢,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼究流,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了动遭?” 一聲冷哼從身側(cè)響起芬探,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厘惦,沒想到半個(gè)月后偷仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵蕉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年酝静,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羡玛。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡别智,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稼稿,到底是詐尸還是另有隱情薄榛,我是刑警寧澤讳窟,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蛇数,受9級特大地震影響挪钓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳舅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一碌上、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浦徊,春花似錦馏予、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冕香,卻和暖如春蛹尝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悉尾。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工突那, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人构眯。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓愕难,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惫霸。 傳聞我的和親對象是個(gè)殘疾皇子猫缭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容