首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nature Genetics杂志特别版单细胞marker基因气泡图

Nature Genetics杂志特别版单细胞marker基因气泡图

作者头像
生信技能树
发布2025-11-20 11:59:13
发布2025-11-20 11:59:13
310
举报
文章被收录于专栏:生信技能树生信技能树

单细胞的marker基因气泡图,我们前面已经绘制过几个,今天的这个还是来自王凌华团队的最新文献,来自2025年10月21号发表在Nature Genetics杂志上,标题为《Multi-modal spatial characterization of tumor immune microenvironments identifies targetable inflammatory niches in diffuse large B cell lymphoma》。这个图左边有带圈的点和x坐标轴有阴影区域,使得它比一般的气泡图又高档了一个档次!来看看~

专辑里面的气泡图:

Fig2中的e图:展示的是空间转录组数据中7个细胞生态位CN1-7中每个生态位里面不同细胞亚群的DEGs基因表达气泡图。

图注:

Fig. 2: Cellular neighborhood structures and unique spatial niches in B cell lymphoma. f.The representative DEGs in each spatial niche.

数据背景

作者利用78例大B细胞淋巴瘤切除活检样本及5例对照组织(4例扁桃体、1例淋巴结)构建了六组组织微阵列。作者抽取了部分示例数据以及代码放在github上面:https://github.com/Coolgenome/Lymphoma-spatial

下载好的: 链接: https://pan.baidu.com/s/1ISXLXLEmgdwtBrLTTdkPOQ?pwd=b49k 提取码: b49k

详细介绍见:一行代码给你的单细胞UMAP图添加左下角小箭头坐标轴

数据处理

1.先读取绘图数据

需要的是一个数据框,每一个CN中不同细胞类型的组成:

代码语言:javascript
复制
### Figure 2 ###
rm(list=ls())
### load essential packages ###
library(Seurat)
library(tidyverse)
library(dplyr)
library(ggplot2)
#devtools::install_github("junjunlab/jjAnno")
library(jjAnno) # 对ggplot2添加图形区域外的注释如点或者注释条

### Figure 2d-f ###
# k-means clustering based on neighborhood matrix to obtain 7 unique spatial cellular niches (CN). 
# Here we directly provide the results with CN allocation of cells.
spatial_niche <- readRDS("./demo_data/spatial_niche.rds")
head(spatial_niche)
table(spatial_niche$CN_cluster)

niche数据为两列:第一列是细胞barcode,第二列是每个细胞所属的CN类型,总共有CN1-7七大类:

接着是细胞亚群分类信息:

代码语言:javascript
复制
### Data reading in, preprocessing, cleaning, and cell type and state identification are described in the separate script Preprocessing.r
### Here for demonstrating the workflow, we directly provide the demo data, including count matrix and metadata. The processing of demo data is described in Figure 1.r
### load data object ###
### This is saved from the step of Figure 1b.
Lymphoma_data <- readRDS("./demo_data/Lymphoma_data.rds") 
Lymphoma_data
head(Lymphoma_data@meta.data)

需要其中的cell_state列,共19中细胞类型:

将上面两种信息合并在一起:

代码语言:javascript
复制
# DEGs among CNs (Figure 2f) #
spatial_niche <- column_to_rownames(spatial_niche, var="Barcode")
Lymphoma_data <- AddMetaData(Lymphoma_data, spatial_niche)
head(Lymphoma_data@meta.data)
Lymphoma_data$CN_cluster <- factor(Lymphoma_data$CN_cluster, levels =c(paste0("CN",7:1)) )

Lymphoma_data@meta.data 数据结构为:

2.提取DEGs基因向量

从作者的代码里面搞来的,或者可以使用deepseek从图片中提取。我最近开始由kimi转向deepseek了,初步感觉deepseek要比kimi好用呢?kimi最近动不动就给我说:刚刚跟我聊的人有点多,我现在有点累了,你稍后再来!

我:一脸懵,使用的人太多了吗?

代码语言:javascript
复制
CN_marker <- c("CD3D","CD3E","CD2","CD8A","GZMB","GZMK","NKG7","PRF1","GZMH","CXCL9","CXCL10","CCL5","CCL2","MZB1","IGHG1",
               "IGHG2","IGKC","CD68","C1QA","C1QB","C1QC","LYZ","APOE","APOC1","S100A9","COL1A1","COL1A2","COL3A1","FN1","DCN",
               "ACTA2","TIMP1","COL6A1","COL6A2","CD79A","MS4A1","CD19","TCL1A","IGHM","CD37","STMN1","TYMS","TOP2A","BCL2",
               "BTK","SYK","CD24","CD52")

开始绘图

作者的代码:

代码语言:javascript
复制
p <- DotPlot(Lymphoma_data,features = CN_marker, scale.by = "size", group.by = "CN_cluster", scale.max = 50, scale = 10, col.max=1.5)+
    RotatedAxis()+
    scale_color_gradientn(values = seq(0,1,0.1),colours = c("#4575b4","#abd9e9","#e0f3f8","#ffffbf","#fdae61","#d73027","#800026"))

p

额,作者只放了一个半成品的代码:

我来修饰一下:

先把坐标轴名字等细节改一下:

代码语言:javascript
复制
p1 <- p +  scale_y_discrete(name = "", labels = rev(c("CN1_T", "CN2_PC", "CN3_Myeloid","CN4_Stromal","CN5_Tumor-B",
                                                "CN6_Diffuse","CN7_Mixe"))) + 
  xlab(label = NULL)
p1

现在使用老俊俊的jjAnno对ggplot2添加图形区域外的注释如点或者注释条。

添加坐标的点:

代码语言:javascript
复制
# add right
annoPoint(object = p1,
          annoPos = 'left',
          yPosition = c(1:7))

好现在报错了:

在上一次的教程中:Nature杂志同款高颜值单细胞基因表达气泡图(王凌华团队),我的ggplot2还是3.5.2,现在更新到了4.0.0。然后很多人反馈这个图不能复现出来,时间也是正好卡在ggplot2发了重大更新的时候。

我现在本地安装 3.5.2:

代码语言:javascript
复制
# 检查包的版本
packageVersion("ggplot2")
# 安装3.5.2版本
remotes::install_version("ggplot2", version = "3.5.2",force = T) 

还是提示错误:

额,老俊俊已经去开心地开发其他的包去了,我今天就发这个跟作者一样的半成品吧,我的去看老俊俊的源码了(前面别人不能复现图的时候也有一些因为ggplot2版本原因报错,没有去看现在就是回旋镖!)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据背景
  • 数据处理
    • 1.先读取绘图数据
    • 2.提取DEGs基因向量
  • 开始绘图
    • 作者的代码:
    • 我来修饰一下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档