2023-03-09 雙閾值火山圖

雙閾值火山圖

#######雙閾值圖
library(ggplot2)
logFC_t1 = 1
P.Value_t1 = 0.05
logFC_t2 = 2
P.Value_t2 = 0.01
dat = limma_voom_DEG
CENTER <- c("SLC4A1", "HBB", "HBA2", "HBG1", "HBG2","HBD","ALAS2","GYPA","AHSP")
library(dplyr)
k1 = with(dat,logFC > logFC_t2 & P.Value<P.Value_t2);table(k1)
k2 = with(dat,logFC < -logFC_t2 & P.Value<P.Value_t2);table(k2)
k3 = with(dat,logFC > logFC_t1 & P.Value < P.Value_t1 );table(k3)
k4 = with(dat,logFC < -logFC_t1 & P.Value <P.Value_t1 );table(k4)

設(shè)置不同顏色和大小

my_color = case_when(k1~"#EEA2AD", #設(shè)置點(diǎn)的顏色
k2~"#31A354",
k3~"#FFE4E1",
k4~"#BAE4B3",
TRUE~"#E8E8E8")
my_size = case_when(k1|k2~8, #調(diào)節(jié)點(diǎn)的大小
k3|k4~6,
TRUE~4)

p = ggplot(data = dat,
aes(x = logFC,
y = -log10(P.Value))) +
geom_point(alpha=0.5, size=my_size,
color=my_color) +
geom_vline(xintercept = c(-logFC_t1,logFC_t1,-logFC_t2,logFC_t2),lty= 4,lwd=0.8,alpha = c(0.5,0.5,1,1)) +
geom_hline(yintercept = c(-log10(P.Value_t1),-log10(P.Value_t2)),lty= 4,lwd=0.8,alpha = c(0.5,1)) + #調(diào)節(jié)線條的款式
theme_bw()+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
scale_x_continuous(limits = c(-4, 4), expand = c(0,0))###調(diào)節(jié)橫坐標(biāo)范圍
p

加標(biāo)簽

dat <- as.data.frame(limma_voom_DEG)
symbol <- row.names(dat)
dat$symbol=symbol
for_label <- dat %>%
filter(symbol %in% c(CENTER))

p1 <- p +
geom_point(size = 6, shape = 1, data = for_label) +
ggrepel::geom_label_repel(
aes(label = symbol),
data = for_label,
color="black"
)

調(diào)節(jié)標(biāo)簽的大小

p1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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