单细胞我们知道logfc不像bulk测序那样,大于1很多,但是p值小于0.05贼多,所以热图参考的一篇CNS 文章,只化了p值的分界线

memory <- SubsetData(experiment.aggregate,
# 提取数据根据的组名
subset.name = "celltype3",
# 提取的组别
accept.value = c("Memory B cells"))
view(memory@meta.data)
memory@meta.data$tumor <- str_sub(rownames(memory@meta.data),7,7)
deg <- FindMarkers(memory, ident.1 ='T', ident.2 ='N',group.by = "tumor")
deg$symbol <- rownames(deg)
logFC_t=0
P.Value_t = 1e-28
k1 = (deg$p_val_adj < P.Value_t)&(deg$avg_logFC < 0)
k2 = (deg$p_val_adj < P.Value_t)&(deg$avg_logFC > 0)
table(k1)
table(k2)
change = ifelse(k1,"down",ifelse(k2,"up","stable"))
deg <- mutate(deg,change)
dat = deg
if(T) {
x1 = dat %>%
filter(change == "up")
x2 = dat %>%
filter(change == "down")
for_label = rbind(x1,x2)
}
p <- ggplot(data = deg,
aes(x = avg_logFC,
y = -log10(p_val_adj))) +
geom_point(alpha=0.4, size=3.5,
aes(color=change)) +
ylab("-log10(Pvalue)")+
scale_color_manual(values=c("blue", "grey","red"))+
geom_hline(yintercept = -log10(P.Value_t),lty=4,col="black",lwd=0.8) +
theme_bw()+
theme(panel.border = element_blank(),panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),axis.line = element_line(colour = "black"))
p
volcano_plot <- p +
geom_point(size = 3, shape = 1, data = for_label) +
ggrepel::geom_label_repel(
aes(label = symbol),
data = for_label,
color="black")
volcano_plot

网友评论