EnrichedHeatmap包教程:基因组信号富集热图绘制指南
概述
EnrichedHeatmap是一个专门用于可视化基因组信号在特定目标区域富集情况的R包。它能够生成一种特殊类型的热图,展示如组蛋白修饰在转录起始位点(TSS)附近的富集模式,或DNA甲基化在CpG岛周围的分布特征。
安装与基础用法
首先需要安装并加载EnrichedHeatmap包:
library(EnrichedHeatmap)
数据准备
本教程使用Roadmap项目中的人类肺组织数据作为示例,包含以下对象:
H3K4me3:ChIP-seq数据的组蛋白修饰覆盖度cgi:CpG岛位置信息genes:基因信息meth:全基因组甲基化数据rpkm:RNA-seq基因表达数据
基本工作流程
1. 数据标准化
使用normalizeToMatrix()函数将基因组信号与目标区域的关联转换为矩阵:
tss <- promoters(genes, upstream = 0, downstream = 1)
mat1 <- normalizeToMatrix(H3K4me3, tss, value_column = "coverage",
extend = 5000, mean_mode = "w0", w = 50)
参数说明:
extend:目标区域上下游扩展范围w:窗口大小mean_mode:均值计算模式(下文详述)
2. 热图绘制
使用EnrichedHeatmap()函数绘制富集热图:
EnrichedHeatmap(mat1, name = "H3K4me3")
高级特性
颜色映射
提供灵活的颜色设置方式:
# 简单颜色向量
EnrichedHeatmap(mat1, col = c("white", "red"), name = "H3K4me3")
# 使用colorRamp2创建颜色函数
library(circlize)
col_fun <- colorRamp2(quantile(mat1, c(0, 0.99)), c("white", "red"))
EnrichedHeatmap(mat1, col = col_fun, name = "H3K4me3")
行分组
可按条件对行进行分组:
# 按样本分组
EnrichedHeatmap(mat1, col = col_fun, name = "H3K4me3",
row_split = sample(c("A", "B"), length(genes), replace = TRUE))
# 使用k-means聚类分组
set.seed(123)
EnrichedHeatmap(mat1, col = col_fun, name = "H3K4me3", row_km = 3)
区域扩展控制
灵活控制目标区域扩展范围:
# 上游1kb,下游2kb
mat12 <- normalizeToMatrix(H3K4me3, tss, value_column = "coverage",
extend = c(1000, 2000), mean_mode = "w0", w = 50)
# 仅下游扩展
mat12 <- normalizeToMatrix(H3K4me3, tss, value_column = "coverage",
extend = c(0, 2000), mean_mode = "w0", w = 50)
均值计算模式
EnrichedHeatmap提供三种均值计算模式,适用于不同场景:
-
absolute:不考虑窗口覆盖度,简单平均 $$ v_a = \frac{\sum_i^n{x_i}}{n} $$
-
weighted:按覆盖度加权平均 $$ v_w = \frac{\sum_i^n{x_iw_i}}{\sum_i^n{w_i}} $$
-
w0:考虑覆盖和非覆盖区域的加权平均 $$ v_{w0} = \frac{v_wW}{W+W'} $$
-
coverage:按窗口长度标准化 $$ v_c = \frac{\sum_i^n{x_iw_i}}{L} $$
数据平滑
对于稀疏数据(如甲基化数据),平滑处理可显著改善可视化效果:
mat2 <- normalizeToMatrix(meth, tss, value_column = "meth", mean_mode = "absolute",
extend = 5000, w = 50, background = NA, smooth = TRUE)
meth_col_fun <- colorRamp2(c(0, 0.5, 1), c("blue", "white", "red"))
EnrichedHeatmap(mat2, col = meth_col_fun, name = "methylation")
区域目标分析
当目标为区域而非单点时,分析方法类似:
mat3 <- normalizeToMatrix(meth, cgi, value_column = "meth", mean_mode = "absolute",
extend = 5000, w = 50)
EnrichedHeatmap(mat3, col = meth_col_fun, name = "methylation")
总结
EnrichedHeatmap包提供了强大的功能来可视化基因组信号在目标区域的富集模式。通过灵活的参数设置,用户可以:
- 控制热图的颜色映射
- 对行进行分组或聚类
- 调整目标区域扩展范围
- 选择适合的均值计算方法
- 对稀疏数据进行平滑处理
这些功能使得EnrichedHeatmap成为分析基因组数据富集模式的强大工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



