溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的

發(fā)布時(shí)間:2021-11-22 15:58:46 來源:億速云 閱讀:1281 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png

這個(gè)圖的實(shí)現(xiàn)辦法有很多,今天的推文介紹一下使用R語言的ggplot2實(shí)現(xiàn)上圖的代碼。

 

首先是構(gòu)造示例數(shù)據(jù)

 構(gòu)造兩份數(shù)據(jù)
  • 一份是最左側(cè)的分組顏色條
  • 一份是右側(cè)展示數(shù)值的熱圖

構(gòu)造數(shù)據(jù)用到的代碼

x<-seq(0,1,by=0.001)
set.seed(1234)
x1<-sample(x,240)
mymatrix<-matrix(x1,ncol=6)
head(mymatrix)
colnames(mymatrix)<-paste0("gene",1:6)
rownames(mymatrix)<-paste0("GO:000",1:40," ",
                           sample(LETTERS[1:26],40,replace = T))
write.csv(mymatrix,file = "GO_qvalue.csv",quote=F,row.names = T)
dfclass<-data.frame(x="class",
                    y=rownames(mymatrix),
                    group=c(rep("Biological Process",25),
                            rep("Cellular Component",5),
                            rep("Molecular Function",10)))
write.csv(dfclass,file = "class.csv",quote=F,row.names = F)
 

大家可以自己運(yùn)行代碼得到示例數(shù)據(jù),或者直接在文末留言

數(shù)據(jù)部分截圖如下

R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png
R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png
 首先是畫右側(cè)的如圖

最基本的熱圖代碼

df1<-read.csv("GO_qvalue.csv",header = T,row.names = 1)
df1$GO_term<-rownames(df1)
df1.1<-reshape2::melt(df1,var.id="GO_term")
head(df1.1)
df1.1$GO_term<-factor(df1.1$GO_term,
                      levels = row.names(df1))
library(ggplot2)
ggplot(df1.1,aes(x=variable,y=GO_term))+
  geom_tile(aes(fill=value))
 
R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png
 接下來是美化
ggplot(df1.1,aes(x=variable,y=GO_term))+
  geom_tile(aes(fill=value),color="grey")+
  scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0),
                   position = "right")+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text.x = element_text(angle = 90,hjust=1,vjust = 0.5))+
  scale_fill_gradient(low="red",high="green")

 
R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png

說實(shí)話這個(gè)紅綠配色的熱圖我真欣賞不來,我們換一個(gè)配色吧還是

ggplot(df1.1,aes(x=variable,y=GO_term))+
  geom_tile(aes(fill=value),color="grey")+
  scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0),
                   position = "right")+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text.x = element_text(angle = 90,hjust=1,vjust = 0.5))+
  scale_fill_viridis_c()
 
R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png

這個(gè)顏色看起來還挺舒服的

 接下來是左側(cè)的分組顏色條

df2<-read.csv("class.csv",header = T)
head(df2)
df2$y<-factor(df2$y,
              levels = rownames(df1))
ggplot(df2,aes(x=x,y=y))+
  geom_tile(aes(fill=group),color="grey")+
  theme(panel.background = element_blank(),
        axis.title = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        axis.text.x = element_text(angle=90,hjust=1,vjust=0.5))+
  scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0))+
  scale_fill_manual(name="class",
                    values = c("#619cff","#00ba38","#f8766d"))
 
R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png
 最后就是拼圖了
library(ggplot2)
p1<-ggplot(df1.1,aes(x=variable,y=GO_term))+
  geom_tile(aes(fill=value),color="grey")+
  scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0),
                   position = "right")+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text.x = element_text(angle = 90,hjust=1,vjust = 0.5))+
  scale_fill_viridis_c(name="Q-value")



p2<-ggplot(df2,aes(x=x,y=y))+
  geom_tile(aes(fill=group),color="grey")+
  theme(panel.background = element_blank(),
        axis.title = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        axis.text.x = element_text(angle=90,hjust=1,vjust=0.5))+
  #scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0))+
  scale_fill_manual(name="class",
                    values = c("#619cff","#00ba38","#f8766d"))

library(aplot)
p1%>%
  insert_left(p2,0.1)
 

最終的結(jié)果如下

R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的  
image.png

上述內(nèi)容就是R語言ggplot2繪制熱圖展示GO富集分析結(jié)果的是怎樣的,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI