EnrichedHeatmap包教程:基因组信号富集热图绘制指南

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提供三种均值计算模式,适用于不同场景:

  1. absolute:不考虑窗口覆盖度,简单平均 $$ v_a = \frac{\sum_i^n{x_i}}{n} $$

  2. weighted:按覆盖度加权平均 $$ v_w = \frac{\sum_i^n{x_iw_i}}{\sum_i^n{w_i}} $$

  3. w0:考虑覆盖和非覆盖区域的加权平均 $$ v_{w0} = \frac{v_wW}{W+W'} $$

  4. 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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值