You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取ComplexHeatmap中指定聚类组的CpG位点行名称

提取ComplexHeatmap中目标聚类CpG子集的方法

步骤说明

ComplexHeatmap在绘制热图时会保留完整的聚类信息,直接从热图对象中提取即可定位你关注的CpG组:

1. 保存热图对象

绘制热图时将结果赋值给变量,不要直接输出:

library(ComplexHeatmap)
# 假设top1000_m是你预处理后的前1000个M值矩阵(行=CpG,列=样本)
ht <- Heatmap(top1000_m,
              cluster_rows = TRUE, # 确保行聚类开启(默认是TRUE)
              # 其他绘图参数(比如颜色、列注释等)保持你原来的设置
)
draw(ht)

2. 获取行聚类结果

从热图对象中提取行聚类的树状图,再切割得到分组:

# 提取行聚类树状图(单热图取[[1]],组合热图需对应调整索引)
row_tree <- row_dend(ht)[[1]]

# 切割树状图得到分组:k是你观察到的聚类总数,比如黑色框是第1组
row_groups <- cutree(row_tree, k = 3) # 假设总共有3个聚类组

# 或者根据树高切割(如果知道目标组对应的分支高度)
# row_groups <- cutree(row_tree, h = 15) # 替换为实际树高值

3. 筛选目标CpG

提取你关注的聚类组对应的CpG名称及矩阵:

# 假设黑色框对应第1组
target_cpgs <- names(row_groups[row_groups == 1])

# 提取这些CpG的原始Beta值矩阵
target_beta_matrix <- your_full_beta_matrix[target_cpgs, ]

4. 验证(可选)

单独绘制目标CpG的热图确认:

Heatmap(target_beta_matrix,
        row_names_gp = gpar(fontsize = 8), # 放大行名方便查看
        row_names_side = "left"
)

额外提示

  • 不确定k值时,先画树状图查看结构:plot(row_tree),手动数聚类组数。
  • 若使用HeatmapList(多热图组合),需用row_dend(ht_list)[[2]]这样的方式指定对应热图的索引。

内容的提问来源于stack exchange,提问作者cewim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:27:42