BioF3 FigCode · SCI 绘图代码集

聚类 marker 热图(Cluster DEG Heatmap)

导出日期:2026年6月27日

分类:聚类可视化 | 依赖包:Seurat、dplyr

解决的生物学问题

每个 cluster 的 top marker 是否真的特异?有没有 marker 跨多个 cluster 表达?

应用场景

输入数据格式

Seurat 对象 + FindAllMarkers 结果

关键参数

快速开始

1. 直接在线运行

打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。

2. 本地复现

下载脚本和示例数据,本地 RStudio 运行:

# 下载
curl -O https://<your-site>/figcode/scripts/sc-deg-heatmap.R
curl -O https://<your-site>/figcode/data/sc-deg-heatmap.csv

3. 安装依赖

# CRAN 包
install.packages(c("dplyr"))

# Bioconductor 包(如需)
# BiocManager::install(c())

完整代码

library(Seurat)
library(dplyr)

# --- Demo data ---
data("pbmc_small")
seu <- pbmc_small

# --- Compute markers ---
all_markers <- FindAllMarkers(
  seu, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25,
  verbose = FALSE
)

top_n <- 5
top_markers <- all_markers %>%
  group_by(cluster) %>%
  slice_max(order_by = avg_log2FC, n = top_n) %>%
  pull(gene) %>% unique()

# --- Heatmap (Seurat built-in) ---
DoHeatmap(
  seu,
  features = top_markers,
  size = 3.5,
  angle = 0
) +
  scale_fill_gradientn(colours = c("#2563eb", "white", "#dc2626")) +
  labs(title = sprintf("Top %d Markers per Cluster", top_n))

替换为自己的数据

脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:

延伸阅读