答疑|火山圖加文字標(biāo)簽
后臺有幾個同學(xué)對之前的教程跟著CELL學(xué)作圖|1.火山圖提出了幾點疑問:
- 能不能直接用ggplot來畫
- 如何給自己想要的基因/蛋白加上文字標(biāo)簽
今天簡單的解答一下。
2
示例數(shù)據(jù)為跟著CELL學(xué)作圖|1.火山圖里面的數(shù)據(jù)~
開始作圖
rm(list = ls())
setwd("F:/HJH/mzbj/cell/2021.4.12")
library(RColorBrewer)
library(ggrepel) #標(biāo)簽用
df <- read.csv("df.csv",row.names = 1) #導(dǎo)入數(shù)據(jù),第一列作為行名
#確定是上調(diào)還是下調(diào),用于給圖中點上色
df$threshold = factor(ifelse(df$P_value < 0.05 & abs(df$fd) >= 0.25, ifelse(df$fd >= 0.25 ,'Up','Down'),'NoSignifi'),levels=c('Up','Down','NoSignifi'))
df$gene <- row.names(df) #添加一列基因名,以便備注
ggplot(df,aes(x=fd,y= -log10(P_value),color=threshold))+
geom_point(data = df[df$P_value<0.05&abs(df$fd)>0.25,],size = 5)+
geom_point(data = df[df$P_value>0.05|abs(df$fd)<0.25,],size = 4)+
scale_color_manual(values=c("#4393C3","#00000033","#FC4E2A"))+#確定點的顏色
geom_text_repel(
data = df[df$P_value<0.05&abs(df$fd)>1,],
aes(label = gene),
size = 4.5,
color = "black",
segment.color = "black", show.legend = FALSE )+#添加關(guān)注的點的基因名
ylab('-log10 (P_value)')+#修改y軸名稱
xlab('log2 (FoldChange)')+#修改x軸名稱
geom_vline(xintercept=c(-0.25,0.25),lty=3,col="black",lwd=0.5) +#添加橫線|logFoldChange|>0.25
geom_hline(yintercept = -log10(0.05),lty=3,col="black",lwd=0.5) +#添加豎線padj<0.05
theme_classic( # 主題設(shè)置,這個是無線條主題
base_line_size = 1 # 坐標(biāo)軸的粗細(xì)
)+
theme(axis.title.x = element_text(size = 15,
color = "black",
face = "bold"),
axis.title.y = element_text(size = 15,
color = "black",
face = "bold",
vjust = 1.9,
hjust = 0.5,
angle = 90),
legend.title = element_blank(),
legend.text = element_text(color="black", # 設(shè)置圖例標(biāo)簽文字
size = 10,
face = "bold"),
axis.text.x = element_text(size = 13, # 修改X軸上字體大小,
color = "black", # 顏色
face = "bold", # face取值:plain普通,bold加粗,italic斜體,bold.italic斜體加粗
vjust = 0.5, # 位置
hjust = 0.5,
angle = 0), #角度
axis.text.y = element_text(size = 13,
color = "black",
face = "bold",
vjust = 0.5,
hjust = 0.5,
angle = 0)
)
出圖
210514_1
備注
更詳細(xì)的講解明天會在我的B站:木舟筆記
更新一期視頻。如果對代碼的細(xì)節(jié)有疑問的,可以看一下視頻。希望大家可以多多點贊在看!