表观基因组数据整合方法¶
一句话说明¶
表观基因组数据整合就是把 DNA 甲基化、组蛋白修饰、染色质可及性等多层"开关信息"拼在一起看——单看一层只能看到局部,整合起来才能看到基因调控的全景图。
核心知识点¶
要点1:为什么要整合¶
- 单一表观组学只能看到一个维度:
- 甲基化(WGBS/RRBS)→ DNA 上的静态标记
- 组蛋白修饰(ChIP/CUT&Tag)→ 组蛋白上的标记
- 可及性(ATAC-seq)→ 哪里是开放的
- 3D 结构(Hi-C)→ 空间折叠信息
- 只有整合才能回答"增强子是怎么通过 3D 折叠影响远端基因表达的"这类复杂问题
- 白话类比:看一部电影只看画面(无声)或只听声音(无画面)都不完整,整合才是完整体验
要点2:常见整合策略¶
| 策略 | 方法 | 适用场景 |
|---|---|---|
| 可视化整合 | IGV/WashU 多轨道叠加 | 探索性分析 |
| 相关性分析 | 计算各层信号的成对相关 | 验证已知关系 |
| 染色质状态分割 | ChromHMM / Segway | 定义功能元件 |
| 多组学降维 | MOFA / iCluster | 发现共变模式 |
| 调控网络推断 | SCENIC / GRN 工具 | 推断因果关系 |
要点3:ChromHMM 染色质状态注释¶
- 核心思想:用多种组蛋白修饰的组合模式定义染色质状态
- 输入:多种 ChIP-seq(如 H3K4me3、H3K27me3、H3K27ac、H3K36me3 等)
- 算法:隐马尔可夫模型(HMM),自动学习组合模式
- 输出:将基因组分割为不同功能状态(如活跃启动子、增强子、异染色质等)
- 典型状态数:15-18 种
要点4:多组学因子分析 MOFA¶
- MOFA = Multi-Omics Factor Analysis(2018 年发表)
- 类似 PCA,但可以同时对多种组学数据降维
- 输出"因子"代表跨组学的共变模式
- 可以识别哪些表观特征协同变化
实战代码¶
# ===== ChromHMM 染色质状态注释 =====
# 1. 准备输入数据:将每种组蛋白修饰的 BAM 二值化
# ChromHMM 需要知道每个 200bp bin 是否有信号
java -jar ChromHMM.jar BinarizeBam \
hg38_chrom_sizes.txt \
bam_directory/ \
cell_mark_table.txt \
binarized_output/
# cell_mark_table.txt 格式(制表符分隔):
# 细胞名 标记名 BAM文件 对照BAM
# K562 H3K4me3 K562_H3K4me3.bam K562_Input.bam
# K562 H3K27ac K562_H3K27ac.bam K562_Input.bam
# K562 H3K27me3 K562_H3K27me3.bam K562_Input.bam
# K562 H3K36me3 K562_H3K36me3.bam K562_Input.bam
# 2. 训练模型:学习 15 种染色质状态
java -jar ChromHMM.jar LearnModel \
binarized_output/ \
chromhmm_output/ \
15 \ # 状态数
hg38 # 基因组版本
# 输出文件:
# emissions_15.png → 每种状态的组蛋白标记模式(热图)
# transitions_15.png → 状态间转换概率
# K562_15_segments.bed → 基因组分割结果
# K562_15_overlap.png → 各状态与基因组注释的重叠
# 3. 查看典型状态含义
# State 1: H3K4me3 高 → 活跃启动子
# State 2: H3K27ac 高 → 活跃增强子
# State 3: H3K36me3 高 → 转录区域
# State 4: H3K27me3 高 → Polycomb 沉默
# State 5: 全低 → 静默区域
# ===== R: 多组学整合分析 =====
library(MOFA2)
# 1. 准备多组学数据矩阵
# 每种组学一个矩阵,行=特征,列=样本
methylation <- readRDS("meth_matrix.rds") # CpG 甲基化
accessibility <- readRDS("atac_matrix.rds") # ATAC-seq peaks
expression <- readRDS("rna_matrix.rds") # 基因表达
# 2. 创建 MOFA 对象
mofa_data <- create_mofa(list(
methylation = methylation,
accessibility = accessibility,
expression = expression
))
# 3. 设置模型参数
data_opts <- get_default_data_options(mofa_data)
model_opts <- get_default_model_options(mofa_data)
model_opts$num_factors <- 10 # 提取 10 个因子
train_opts <- get_default_training_options(mofa_data)
train_opts$convergence_mode <- "slow" # 严格收敛
train_opts$seed <- 42
# 4. 训练模型
mofa_data <- prepare_mofa(mofa_data,
data_options = data_opts,
model_options = model_opts,
training_options = train_opts)
mofa_model <- run_mofa(mofa_data)
# 5. 结果解读
# 查看每个因子解释了各组学多少变异
plot_variance_explained(mofa_model, plot_total = TRUE)
# 查看因子 1 在各组学中的权重
plot_weights(mofa_model, view = "expression",
factor = 1, nfeatures = 20)
# 因子与临床表型的关联
plot_factor(mofa_model, factor = 1,
color_by = "disease_status")
# 6. 简单整合:检查各层信号的一致性
# 在差异基因的启动子区域,甲基化是否下降,可及性是否上升?
# 这是最直观的整合验证
library(GenomicRanges)
# 差异表达上调的基因
up_genes <- rownames(subset(degs, log2FC > 1 & padj < 0.05))
# 检查这些基因启动子的甲基化变化
# 期望:表达上调的基因 → 启动子甲基化下降
promoter_meth_change <- sapply(up_genes, function(g) {
# 计算该基因启动子区域的平均甲基化变化
mean(diff_meth[promoter_of(g), ])
})
# 检查 ATAC-seq 信号变化
# 期望:表达上调的基因 → 启动子可及性增加
promoter_atac_change <- sapply(up_genes, function(g) {
mean(diff_atac[promoter_of(g), ])
})
cat("上调基因启动子甲基化变化中位数:",
median(promoter_meth_change, na.rm = TRUE), "\n")
cat("上调基因启动子可及性变化中位数:",
median(promoter_atac_change, na.rm = TRUE), "\n")
面试常问点¶
★ ChromHMM 的 15 种状态怎么解读?¶
参考答案:ChromHMM 根据组蛋白修饰组合自动学习状态,常见的 15 态模型包括:活跃启动子(H3K4me3+H3K27ac)、强增强子(H3K4me1+H3K27ac)、弱增强子(H3K4me1)、转录区(H3K36me3)、Polycomb 沉默(H3K27me3)、异染色质(H3K9me3)、Bivalent(H3K4me3+H3K27me3)等。解读的关键是看 emissions 热图——每种状态中哪些标记是高的,对照已知的功能注释来命名。
★ 多组学整合分析需要注意什么?¶
参考答案:三个关键注意点——第一,不同组学的分辨率不同(甲基化是单碱基,ATAC 是几百 bp,Hi-C 是几 kb),需要统一分析粒度;第二,样本匹配很重要,最好是同一批样本做多种组学,否则批次效应会干扰整合;第三,相关性不等于因果性,看到甲基化与表达负相关不代表甲基化驱动了沉默,可能是反过来的。
速查卡片¶
| 问题 | 一句话答案 |
|---|---|
| ChromHMM 算法 | 隐马尔可夫模型(HMM) |
| ChromHMM 输入 | 多种组蛋白修饰的 ChIP-seq |
| 典型状态数 | 15-18 种 |
| MOFA 的作用 | 多组学联合降维,发现共变模式 |
| 可视化整合工具 | IGV、WashU Epigenome Browser |
| 整合的核心目的 | 多层信息拼出调控全景图 |
| 最简单的整合验证 | 上调基因→启动子去甲基化+可及性增加 |