跳转至

表观基因组数据整合方法


一句话说明

表观基因组数据整合就是把 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
整合的核心目的多层信息拼出调控全景图
最简单的整合验证上调基因→启动子去甲基化+可及性增加