BioF3 FigCode · SCI 绘图代码集
TF 活性热图(SCENIC Regulon Heatmap)
分类:聚类可视化 | 依赖包:ComplexHeatmap、circlize
解决的生物学问题
每个 cluster 的细胞身份由哪些 TF 主导?驱动这些细胞类型的"主控调控子"是谁?
应用场景
- 替代 marker 基因的 TF 视角
- 寻找细胞身份的驱动 TF
- Multi-omics 整合 ATAC + RNA
- 癌症细胞身份重塑研究
输入数据格式
SCENIC AUCell 矩阵:行 = regulons (TF),列 = 细胞
关键参数
- top_regulons(每 cluster 取前 N TF)
- aggregateby = "cluster"(聚合到 cluster 平均)
- col_fun viridis 配色
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/scenic-regulon.R
curl -O https://<your-site>/figcode/data/scenic-regulon.csv
3. 安装依赖
# CRAN 包
install.packages(c("ComplexHeatmap", "circlize"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(ComplexHeatmap)
library(circlize)
# --- Demo: 简化版(实际使用要先跑完 SCENIC pipeline 拿 AUCell 矩阵) ---
set.seed(42)
n_tf <- 30
n_cluster <- 6
TFs <- paste0(c("CEBPA","SPI1","GATA1","KLF4","IRF8","HOXA9",
"TAL1","RUNX1","FOXP3","RORC","TBX21","BATF",
"MYB","JUNB","STAT1","STAT3","NF","RELA",
"PRDM1","XBP1","BACH2","MAFB","ETS1","CIITA",
"EOMES","TCF7","BCL6","IRF4","ID2","TFEB"))
clusters <- paste0("C", 1:n_cluster)
# Simulate cluster-specific TF activity
auc_mat <- matrix(rnorm(n_tf * n_cluster, 0, 0.3), nrow = n_tf,
dimnames = list(TFs, clusters))
# Inject specificity: each cluster has 3-4 active TFs
for (i in 1:n_cluster) {
active_tf <- sample(1:n_tf, 4)
auc_mat[active_tf, i] <- auc_mat[active_tf, i] + 1.5
}
# --- Heatmap ---
col_fun <- colorRamp2(c(-1, 0, 2), c("#2563eb", "white", "#dc2626"))
Heatmap(
auc_mat,
name = "AUCell\nactivity",
col = col_fun,
show_row_dend = FALSE,
cluster_columns = TRUE,
row_names_gp = grid::gpar(fontsize = 9),
column_names_gp = grid::gpar(fontsize = 11),
column_title = "Regulon Activity per Cluster",
rect_gp = grid::gpar(col = "white", lwd = 0.5)
)
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:SCENIC AUCell 矩阵:行 = regulons (TF),列 = 细胞
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:TF 活性热图 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。