TCGA|GEO可視化分析第2篇---KEGG|GO分析大全
<article class="_2rhmJa" style="box-sizing: border-box; display: block; font-weight: 400; line-height: 1.8; margin-bottom: 20px; word-break: break-word; color: rgb(64, 64, 64); font-family: -apple-system, BlinkMacSystemFont, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
導(dǎo)讀:之前講了如何用篩選出的差異基因做做相關(guān)性分析。那今天我和各位小伙伴深入的講一下:(1)如何用clusterProfiler做KEGG|GO富集條形圖,氣泡圖;(2)如何用enrichplot做gene-GO terms|gene-KEGG pathways網(wǎng)絡(luò)圖;(3)如何用GOplot繪制gene-GO terms|gene-KEGG pathways和弦圖;(4)如何用heatplot繪制gene-GO terms|gene-KEGG pathways關(guān)系瀑布圖。
正文:GO,KEGG富集分析條形圖(barplot)和氣泡圖(dotplot)都只顯示最顯著的富集項(xiàng),而用戶如果想知道哪些基因與這些顯著項(xiàng)有關(guān),該怎么辦呢?cnetplot就是將基因GO terms或KEGG pathways之間的聯(lián)系描述為一個(gè)網(wǎng)絡(luò),體現(xiàn)gene-GO terms|gene-KEGG pathways的關(guān)系趨勢(shì)。瀑布圖(heatplot)與cnetplot類似,它將gene-GO terms|gene-KEGG pathways關(guān)系顯示為熱圖。因?yàn)間ene-GO terms|gene-KEGG pathway網(wǎng)絡(luò)圖可能會(huì)過(guò)于復(fù)雜,熱圖可以簡(jiǎn)化結(jié)果,更容易識(shí)別表達(dá)模式。
Part1:KEGG|GO富集條形圖,氣泡圖
library(openxlsx)
library(clusterProfiler)
library(ggplot2)
library(enrichplot)
library(GOplot)
library(DOSE)
library(stringr)
先把需要用到的包加載好,沒有安裝的依賴包一起安裝一下。安裝好所有的包之后,下面我們開始讀取數(shù)據(jù)。
setwd("E:\Bioinfo_analysis\scripts\corr\corr_batch") #設(shè)置工作路徑
fr<-read.xlsx('DEGs.xlsx',rowNames = F,colNames = T)#數(shù)據(jù)格式如下

gene<-bitr(fr$Genes,fromType = 'SYMBOL',toType = 'ENTREZID',OrgDb = 'org.Hs.eg.db') #基因名ID轉(zhuǎn)換,把基因名轉(zhuǎn)換成ENTREZID
GO<-enrichGO(
gene$ENTREZID,
OrgDb = 'org.Hs.eg.db',
keyType = "ENTREZID",
ont = "ALL",
pvalueCutoff = 0.05,
pAdjustMethod = "BH",
qvalueCutoff = 0.05,
minGSSize = 10,
maxGSSize = 500,
readable = TRUE
)#GO富集
KEGG<-enrichKEGG(
gene$ENTREZID,
organism = "hsa",#我用到是數(shù)據(jù)是人的組織數(shù)據(jù),所以這里選擇‘hsa’
keyType = "kegg",
pvalueCutoff = 0.05,
pAdjustMethod = "BH",
universe,
minGSSize = 5,
maxGSSize = 500,
qvalueCutoff = 0.2,
use_internal_data = FALSE
)#KEGG富集
barplot(GO, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free") #GO聚類條形圖,fig1

dotplot(GO, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free") #GO聚類氣泡圖,fig2

barplot(KEGG,showCategory = 40,title = 'KEGG Pathway') #KEGG聚類條形圖,fig3

dotplot(KEGG) #KEGG聚類氣泡圖,fig4

Part2:gene-GO terms|gene-KEGG pathways網(wǎng)絡(luò)圖
其實(shí)以上都是KEGG和GO相關(guān)的常規(guī)分析,GO,KEGG富集分析條形圖(barplot)和氣泡圖(dotplot)都只顯示最顯著的富集項(xiàng),而用戶如果想知道哪些基因與這些顯著項(xiàng)有關(guān),該怎么辦呢?下面我們?cè)偕?jí)一下。
enrichplot::cnetplot(GO,circular=TRUE,colorEdge = TRUE)#GO通路-基因網(wǎng)絡(luò)圖,fig5

enrichplot::cnetplot(KEGG,circular=TRUE,colorEdge = TRUE)#KEGG通路-基因網(wǎng)絡(luò)圖,fig6

Fig5和fig6體現(xiàn)的就是KEGG和GO每個(gè)富集項(xiàng)中都有哪些基因,我們由此也可以推測(cè)一些基因的功能。
Part3:gene-GO terms|gene-KEGG pathways關(guān)系瀑布圖
我們篩選的差異基因還是比較少的,這樣的網(wǎng)路圖看起來(lái)還是很容易區(qū)分不同的表達(dá)模式的,不過(guò)當(dāng)差異基因過(guò)多的時(shí)候,這樣的網(wǎng)絡(luò)圖就會(huì)顯得比較亂,可能過(guò)于復(fù)雜,那我們應(yīng)該怎么辦呢?不用慌,我們可以用瀑布圖來(lái)展示。瀑布圖(heatplot)與cnetplot類似,它將gene-GO terms|gene-KEGG pathways關(guān)系顯示為熱圖,熱圖可以簡(jiǎn)化結(jié)果,更容易識(shí)別表達(dá)模式。
enrichplot::heatplot(GO,showCategory = 50) #GO富集瀑布圖,fig7

enrichplot::heatplot(KEGG,showCategory = 50) #kegg富集瀑布圖,fig8

從Fig7和fig8中就可以更容易識(shí)別不同基因的表達(dá)模式。
Part4:gene-GO terms|gene-KEGG pathways和弦圖
有些小伙伴說(shuō)想讓圖能體現(xiàn)功能的同時(shí)更炫酷一點(diǎn)。OK,我們還可以再升級(jí)一下,此時(shí)用和弦圖展示你的結(jié)果,定會(huì)讓你的圖片逼格升一個(gè)檔次。好了,直接上代碼。
GOplotIn<-GO[1:10,c(2,3,7,9)]#我們先提取GO富集結(jié)果的前10行,和提取ID,Description,p.adjust,GeneID四列。

GOplotIngeneID,'/',',')#把GeneID列中的’/’替換成‘,’
names(GOplotIn)<-c('ID','Term','adj_pval','Genes')#修改列名,后面和弦圖繪制的時(shí)候需要這樣的格式,不然會(huì)報(bào)錯(cuò)
GOplotIn$Category = "BP"#因?yàn)槲覀兲崛〉那?0列為BP,所以再加一列分類信息

構(gòu)建基因表達(dá)矩陣
genedata<-data.frame(ID=frlogFC)

circ<-GOplot::circle_dat(GOplotIn,genedata) #GOplot導(dǎo)入數(shù)據(jù)格式整理

chord<-chord_dat(data = circ,genes = genedata) #生成含有選定基因的數(shù)據(jù)框

好了,到此數(shù)據(jù)都整理好了,開始畫和弦圖。
GOChord( #GO富集和弦圖,fig9
data = chord,
title = 'GOchord plot',
space = 0,#GO Term間距
limit = c(1,1),
gene.order = 'logFC',
gene.space = 0.25,
gene.size = 5,
lfc.col = c('red','white','blue'), #上下調(diào)基因顏色
ribbon.col = brewer.pal(length(GOplotIn$Term)),#GO Term colors
process.label = 10 #GO Term字體大小
)

還可以和弦圖+表格一起展示GO富集結(jié)果,往下看:
GOCircle(circ) #和弦圖+表格,fig10

也可以聚類熱圖的形式展示,GO富集結(jié)果:
GOCluster(circ,GOplotIn$Term) #GO富集聚類圖,fig11

以上就是GO和KEGG富集相關(guān)的分析,學(xué)會(huì)這些足以了,以后再也不用擔(dān)心怎么去做GO,KEGG分析了。喜歡的小伙伴可以給個(gè)贊哦,有疑問和建議可以后方留言哦!
</article>
32人點(diǎn)贊