features<-c("Amelx",'Enam','Ambn','Odam','Ibsp','Spp1','Nfe2l2','Runx2')
expr=t(as.matrix(seu@assays$SCT@data[features,]))
posi=match(rownames(expr),rownames(seu@meta.data))
ts=cbind(expr,seu@meta.data[posi,c("group","celltype")])
循环对每个基因进行绘图
for (i in features){
gene=i
expr_single=ts[,gene]
pt<-ggplot(ts,aes(x=celltype,y=expr_single,fill=group))+
geom_violin(scale="width",alpha=0.8,width=0.6,size=0.8)+
scale_fill_manual(values=c("#A40545","#4B65AF"))+
stat_compare_means(aes(group=group),
method="wilcox.test",
label="p.signif",
label.y=by(ts[,gene],ts$celltype,max)+0.02,size=4.5)+
xlab("")+
ylab("ExpressionLevel")+
theme_bw()+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.border=element_rect(size=1.2),
axis.text.x=element_text(angle=45,size=10,vjust=1,hjust=1,color="black"),
axis.text.y=element_text(size=10))+
labs(fill=gene)+
ggtitle(gene)+
theme(plot.title=element_text(hjust=0.5))
ggsave(paste0('plot/',i,'_vlnplot.pdf'),pt,width = 8)
}
源自:https://mp.weixin.qq.com/s/VrUIqlMMojohDLZN7bXqZw