主页 > 软件开发  > 

单细胞marker基因表达密度图-(还有一个包装函数)

单细胞marker基因表达密度图-(还有一个包装函数)

有小伙伴说想要做单细胞marker基因表达密度图,我一想,好像之前是做过的(单细胞marker基因可视化的补充---密度图与等高线图)。但是他又说没有文献中的效果。后来我一看,是因为着色的问题。其实用Nebulosa包(GitHub - powellgenomicslab/Nebulosa: R package to visualize gene expression data based on weighted kernel density estimation)就可以完成。

首先我们读入数据,分析下marker基因,用于作图:

setwd('D:\\KS项目\\公众号文章\\单细胞marker基因密度图') library(Seurat) library(Nebulosa) library(ggnetwork) library(dplyr) markers <- FindAllMarkers(mouse_data, logfc.threshold = 0.5, min.pct = 0.5) markers_plot <- markers %>% group_by(cluster) %>% slice(1:2)

需要注意,这里我算是投机取巧了,用了一个和这个作图毫无关系的包ggnetwork,主要的目的是用他的theme_blank()主题,一次性将所有清空,当然也可以自己慢慢写,不过有现成的,为啥不用呢?单个图看看:

plot_density(mouse_data, features = c("Ltf"), pal = 'magma', raster = T, size = 0.8) & theme_blank()&#这个是ggnetwork里面的主题,可以去掉所有ggplot背景 theme(legend.frame = element_rect(colour = "black"), legend.ticks = element_line(colour = "black", linewidth = 0), legend.key.width = unit(0.3, "cm"), legend.key.height = unit(0.8, "cm"), legend.title = element_text(color = 'black', face = "bold", size=8))

想要黑夜效果,背景设置呈黑色即可:

plot_density(mouse_data, features = c("Ltf"), pal = 'magma', raster = T, size = 0.8) & theme_blank()& theme(panel.background = element_rect(fill = "black"))& theme(legend.frame = element_rect(colour = "black"), legend.ticks = element_line(colour = "black", linewidth = 0), legend.key.width = unit(0.3, "cm"), legend.key.height = unit(0.8, "cm"), legend.title = element_text(color = 'black', face = "bold", size=8))

我们借助Nebulosa,将上面的过程包装为一个函数,还是那句话,受累麻烦的事我们来解决,您轻松即可,先看看函数参数:需要注意的是,如果你只想框选某一类celltype,理想模式是这群celltype是单独聚类的,没有散落在其他类群,否则将会全部框选,效果不好,建议使用AI/PS添加。

很多是默认参数,我们演示一下:

#1黑夜模式,框选所有celltype轮廓 single_CM_density(object = mouse_data, features = "Ltf", night = T)

#2黑夜模式,只选择需要的celltype,我这里选择PMN(7),聚类好 #设置这个模式,需要设置参数idents single_CM_density(object = mouse_data, features = "Ltf", night = T, idents = "celltype", label_celltype = "PMN(7)")

批量出一下黑夜模式的图:完美!这质感不就上去了嘛。

#批量出图 plist2 <- list() for (i in 1:nrow(markers_plot)) { p = single_CM_density(object = mouse_data, features = markers_plot$gene[i], night = T) plist2[[i]] <- p } #拼图 library(cowplot) plot_grid(plotlist = plist2, ncol = 4)

标签:

单细胞marker基因表达密度图-(还有一个包装函数)由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“单细胞marker基因表达密度图-(还有一个包装函数)