当前位置: 首页 > news >正文

单细胞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)

相关文章:

  • 文本条件生成
  • Kafka生产者相关
  • RabbitMq-消息确认机制-消息队列可靠投递
  • [arXiv 2025]BP-GPT: Auditory Neural Decoding Using fMRI-prompted LLM
  • ChatGPT Deep Research:重塑智能研究的未来边界
  • 计算机毕业设计SpringBoot+Vue.js宠物领养系统 (源码+文档+PPT+讲解)
  • Linux操作系统:基于ELK栈的日志分析系统与数据爬虫的设计与实现
  • SDF,占用场,辐射场简要笔记
  • 如何使用clip模型进行OOD
  • 什么是DevOps
  • 3D打印涡轮叶片-当传统铸造遇上“不可能任务”
  • Django模型管理器/QuerySet 常见的方法
  • python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源
  • python GUI之实现一个自定义的范围滑块控件:QRangeSlider
  • 可观测之Tracing-eBPF生态和发展
  • javaweb + AI day03
  • 大模型能给舆情分析带来哪些突破?
  • Harmony os next~鸿蒙原子化服务开发实战:天气卡片开发全解析
  • Mybatis调用存储过程
  • 什么是ADSI
  • 做外国的独立网站怎么推广/app推广策略
  • 建设网站有哪些参考文献/网络营销师是干什么的
  • nuxt做多页面网站/移动营销
  • 保险公司官网/谷歌seo推广公司
  • 新准则中公司网站建设费用计入什么科目/百度seo排名优化软件化
  • 永康做网站/关键词排名关键词优化