2021-01-15

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ù)格式如下

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

從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四列。

image

GOplotIngeneID <-str_replace_all(GOplotIngeneID,'/',',')#把GeneID列中的’/’替換成‘,’

names(GOplotIn)<-c('ID','Term','adj_pval','Genes')#修改列名,后面和弦圖繪制的時(shí)候需要這樣的格式,不然會(huì)報(bào)錯(cuò)

GOplotIn$Category = "BP"#因?yàn)槲覀兲崛〉那?0列為BP,所以再加一列分類信息

image

構(gòu)建基因表達(dá)矩陣

genedata<-data.frame(ID=frGenes,logFC=frlogFC)

image

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

image

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

image

好了,到此數(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字體大小

)

image

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

GOCircle(circ) #和弦圖+表格,fig10

image

也可以聚類熱圖的形式展示,GO富集結(jié)果:

GOCluster(circ,GOplotIn$Term) #GO富集聚類圖,fig11

image

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

</article>

32人點(diǎn)贊

隨筆

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容