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

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

作者: KS科研分享与服务 | 来源:发表于2024-12-20 23:14 被阅读0次

有小伙伴说想要做单细胞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基因表达密度图-(还有一个包装函数)

      本文链接:https://www.haomeiwen.com/subject/pqvlejtx.html