个人推荐指数:⭐️⭐️⭐️⭐️⭐️

EpiFoundation 简介

EpiFoundation 是首个专门为单细胞 ATAC-seq(scATAC-seq)数据设计的基础模型,通过创新的峰-基因对齐(peak-to-gene alignment)预训练策略,学习细胞的表观基因组表示。该模型由加州大学圣克鲁兹分校(UC Santa Cruz)、杜克大学(Duke University)和哥伦比亚大学(Columbia University)的研究团队开发,发表于 bioRxiv(2025年9月)。

EpiFoundation 的核心能力包括:

  • 高效处理高维稀疏的 scATAC-seq 数据:仅处理非零峰集合,提高数据密度
  • 跨模态预训练:利用配对的基因表达数据监督峰-基因关联学习
  • 多任务支持:细胞类型注释、批次校正、基因表达预测等下游任务
  • 最先进性能:在多个组织和任务上超越现有方法

scATAC-seq 技术通过测量单细胞水平的染色质可及性,能够识别活跃的调控元件(如启动子、增强子、转录因子结合位点),为理解基因调控和表观基因组异质性提供了前所未有的分辨率。然而,scATAC-seq 数据面临两大挑战:

  1. 峰数量巨大(通常 10⁵-10⁶ 个),导致计算成本高昂
  2. 数据极度稀疏(二倍体细胞每条染色体仅有两个 DNA 拷贝)

EpiFoundation 通过创新的技术设计有效解决了这些挑战。


方法原理

核心思想

EpiFoundation 的核心创新在于两个关键技术:

  1. 非零峰建模:只处理表达的峰(非零峰),而不是所有峰

    • 传统方法需要编码所有 10⁵-10⁶ 个峰,计算成本不可接受
    • EpiFoundation 认为”哪些峰被表达”这一信息足以构建细胞表示
    • 大多数细胞的非零峰数量远小于总峰数(通常 < 12,000)
    • 显著提高了输入数据中细胞特异性信息的密度
  2. 峰-基因对齐:利用配对的基因表达数据作为监督信号

    • 传统 RNA-seq 基础模型使用掩码语言模型(MLM)学习基因-基因关联
    • EpiFoundation 使用基因表达预测作为预训练目标,学习峰-基因关联
    • 确保细胞表示与表型(通常由转录组数据定义)准确关联

数据集:MiniAtlas

为了训练和验证 EpiFoundation,研究团队构建了 MiniAtlas 数据集:

  • 超过 100,000 个单细胞
  • 配对的 scRNA-seq 和 scATAC-seq 数据(10X Multiome)
  • 覆盖 19 种组织和 56 种细胞类型
  • 统一的峰调用(peak calling),确保样本间可比性

测试集包括:

  • BMMC(骨髓单核细胞)
  • Kidney(肾脏)
  • PBMC(外周血单核细胞)
  • ALLTissue(所有组织的综合测试集)

模型架构

EpiFoundation 采用 Transformer 架构,包含以下核心组件:

输入嵌入(Input Embedding)

输入嵌入由两部分组成:

  1. 非零峰嵌入

    • 对于细胞 i,提取其非零峰集合 P⁺ᵢ = {pₖ | Aᵢ,ₖ = 1}
    • 通过峰嵌入层 Eₚₑₐₖ 将非零峰映射到嵌入空间
    • Zᵢᵖᵉᵃᵏ = Eₚₑₐₖ(P⁺ᵢ) ∈ ℝ|P⁺ᵢ|×dₘ
    • 如果非零峰数量超过最大序列长度 Lₚₑₐₖ(设为 12,000),则随机采样
  2. 染色体嵌入

    • 为每个非零峰找到其对应的染色体
    • 通过染色体嵌入层 Eᶜʰʳ 编码染色体信息
    • Zᵢᶜʰʳ = Eᶜʰʳ(Rᵢ) ∈ ℝ|P⁺ᵢ|×dₘ
    • 支持 22 条常染色体和 X、Y 性染色体
  3. 最终输入嵌入

    • Zᵢ = Zᵢᵖᵉᵃᵏ + Zᵢᶜʰʳ

细胞表示(Cell Representation)

  1. Transformer 编码

    • 在输入序列开头添加 [CLS] token
    • 通过 Nₗ 层 Transformer blocks 处理输入嵌入
    • 提取 [CLS] token 的最终嵌入作为细胞表示 zᵢᶜ ∈ ℝᵈᵐ
  2. 批次校正

    • 引入独立的批次嵌入 zᵢᵇ = Eᵦₐₜᶜₕ(bᵢ)
    • 将细胞表示与批次嵌入拼接:z̃ᵢᶜ = zᵢᶜ ⊗ zᵢᵇ
    • 批次信息仅在预训练时使用,确保下游任务中的细胞表示无偏

峰-基因对齐(Peak-to-Gene Alignment)

预训练目标是预测二值化的基因表达:

  1. 基因采样

    • 从总共 Nɢ 个基因中随机采样 Lɢₑₙₑ = 8,000 个基因
    • 确保采样的基因中表达和不表达的基因数量相等(避免训练偏差)
  2. 基因表达预测

    • 获取基因嵌入:Zᵢᵍᵉⁿᵉ = Eɢₑₙₑ(Gᵢ) ∈ ℝᴸᵍᵉⁿᵉ×ᵈᵐ
    • 将细胞表示广播并与基因嵌入拼接
    • 通过解码器预测二值表达:êᵢᵇⁱⁿᵃʳʸ = Dₚᵣₑ(Z̃ᵢᶜ ⊗ Zᵢᵍᵉⁿᵉ)
  3. 损失函数

    • 使用交叉熵损失:ℒₚᵣₑ = CE(eᵢᵇⁱⁿᵃʳʸ, êᵢᵇⁱⁿᵃʳʸ)

下游任务

EpiFoundation 支持三类下游任务:

1. 细胞类型注释

  • 使用预训练的细胞表示 zᵢᶜ
  • 训练细胞类型解码器:t̂ᵢ = Dᶜᵉˡˡ(zᵢᶜ)
  • 损失函数:ℒᶜᵉˡˡ = CE(tᵢ, t̂ᵢ)

2. 批次校正

  • 直接使用预训练的细胞表示 zᵢᶜ(不包含批次信息)
  • 作为无偏的细胞表示用于批次整合

3. 基因表达预测

  • 在预训练基础上进一步微调
  • 预测细粒度的基因表达值(而非二值表达)
  • 将原始基因表达计数归一化并分类为 Nᵦᵢₙ = 10 个表达水平
  • 使用分类交叉熵损失进行微调

技术实现细节

模型配置

Transformer 架构

  • 嵌入维度 dₘ:512
  • Transformer 层数 Nₗ:12
  • 注意力头数:8
  • 前馈网络维度:2048
  • Dropout:0.1

输入配置

  • 最大峰序列长度 Lₚₑₐₖ:12,000(覆盖 95% 以上细胞的所有非零峰)
  • 基因采样数量 Lɢₑₙₑ:8,000
  • 总峰数 Nₚ:约 500,000(根据数据集而定)
  • 总基因数 Nɢ:约 20,000

数据预处理

scATAC-seq 数据

  1. 使用 10x Cell Ranger ARC(版本 2.0.1)处理原始 FASTQ 文件
  2. 比对到人类 GRCh38 基因组
  3. 使用 MACS2(版本 2.2.7.1)在所有样本上统一调用峰
  4. 使用 Signac(版本 1.8.0)计算峰-细胞计数矩阵
  5. 二值化:将计数 > 0 的设为 1

scRNA-seq 数据

  1. 使用 Cell Ranger ARC 生成基因-细胞计数矩阵
  2. 使用 Seurat 的 NormalizeData 函数归一化和对数转换
  3. 二值化用于预训练:表达 > 0 设为 1

细胞类型注释

  1. 使用 Seurat 的 FindMultiModalNeighbors 基于 RNA 和 ATAC 数据聚类
  2. 计算聚类与 DISCO 数据库中细胞类型表达谱的 Spearman 相关系数
  3. 为每个聚类分配细胞类型标签

训练配置

预训练

  • 优化器:AdamW
  • 学习率:1e-4,使用余弦退火调度
  • 批次大小:32
  • 训练轮数:100
  • 权重衰减:0.01
  • 梯度裁剪:1.0
  • 硬件:8 × NVIDIA A100 GPU

微调

  • 学习率:5e-5(细胞类型注释)、1e-4(基因表达预测)
  • 批次大小:64
  • 训练轮数:50(细胞类型注释)、30(基因表达预测)
  • 早停策略:验证集损失连续 10 轮不下降

性能评估

细胞类型注释

在多个组织的测试集上,EpiFoundation 在细胞类型注释任务中表现优异

EpiFoundation 在所有测试集上均显著优于现有方法,平均准确率提升 5-10%。

批次校正

使用多个指标评估批次校正效果:

评估指标

  • Batch ASW(Average Silhouette Width):批次混合度,越接近 0 越好
  • Cell Type ASW:细胞类型分离度,越接近 1 越好
  • kBET:批次效应去除程度,越接近 1 越好
  • LISI(Local Inverse Simpson’s Index):局部多样性指标

EpiFoundation 在批次校正任务中表现最佳,能够有效去除批次效应同时保持细胞类型的生物学结构。

基因表达预测

EpiFoundation 与 Gene Activity(Signac 中的标准方法)比较:

评估指标

  • Pearson 相关系数:预测值与真实值的相关性
  • Spearman 相关系数:秩相关性
  • MSE(均方误差):预测误差

EpiFoundation 在基因表达预测任务中显著优于传统方法,平均相关系数提升约 30%。

可视化分析

使用 UMAP 可视化 EpiFoundation 学习的细胞表示:

  • 不同组织的细胞形成清晰的聚类
  • 同一细胞类型在不同批次中聚集在一起
  • 细胞类型之间的边界清晰,反映了生物学差异
  • 发育轨迹和细胞状态转换得到良好保持

安装和使用

安装方法

1
2
3
4
5
6
7
8
9
10
# 克隆仓库
git clone https://github.com/UCSC-VLAA/EpiFoundation.git
cd EpiFoundation

# 创建 conda 环境
conda create -n epifoundation python=3.8
conda activate epifoundation

# 安装依赖
pip install -r requirements.txt

数据准备

下载 MiniAtlas 数据集

1
2
# MiniAtlas 数据集托管在 Hugging Face
# 访问:https://huggingface.co/datasets/UCSC-VLAA/MiniAtlas

准备自己的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
import scanpy as sc
import anndata as ad

# 加载 scATAC-seq 数据
adata_atac = sc.read_h5ad('your_atac_data.h5ad')

# 数据应包含:
# - adata_atac.X: 二值化的峰-细胞矩阵
# - adata_atac.var: 峰信息(包含染色体位置)
# - adata_atac.obs: 细胞元数据(包含批次信息)

# 如果有配对的 RNA 数据
adata_rna = sc.read_h5ad('your_rna_data.h5ad')

使用预训练模型

加载预训练模型

1
2
3
4
5
6
7
from epifoundation import EpiFoundation

# 下载预训练权重
# 访问:https://huggingface.co/UCSC-VLAA/EpiFoundation

# 加载模型
model = EpiFoundation.load_pretrained('path/to/pretrained_model.pth')

提取细胞表示

1
2
3
4
5
6
7
8
9
10
# 提取细胞嵌入
cell_embeddings = model.encode(adata_atac)

# 添加到 AnnData 对象
adata_atac.obsm['X_epifoundation'] = cell_embeddings

# 可视化
sc.pp.neighbors(adata_atac, use_rep='X_epifoundation')
sc.tl.umap(adata_atac)
sc.pl.umap(adata_atac, color='cell_type')

细胞类型注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from epifoundation import CellTypeAnnotator

# 初始化注释器
annotator = CellTypeAnnotator(model)

# 在标注数据上微调
annotator.fit(
adata_train,
cell_type_key='cell_type',
batch_key='batch',
n_epochs=50,
learning_rate=5e-5
)

# 预测新数据的细胞类型
predictions = annotator.predict(adata_test)
adata_test.obs['predicted_cell_type'] = predictions

批次校正

1
2
3
4
5
6
7
8
9
10
11
# 使用 EpiFoundation 嵌入进行批次校正
cell_embeddings = model.encode(adata_atac)
adata_atac.obsm['X_epifoundation'] = cell_embeddings

# 使用 Scanpy 进行下游分析
sc.pp.neighbors(adata_atac, use_rep='X_epifoundation')
sc.tl.leiden(adata_atac)
sc.tl.umap(adata_atac)

# 可视化批次校正效果
sc.pl.umap(adata_atac, color=['batch', 'cell_type'])

基因表达预测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from epifoundation import GeneExpressionPredictor

# 初始化预测器
predictor = GeneExpressionPredictor(model)

# 在配对数据上微调
predictor.fit(
adata_atac_train,
adata_rna_train,
n_epochs=30,
learning_rate=1e-4
)

# 预测基因表达
predicted_expression = predictor.predict(adata_atac_test)

# 保存为 AnnData 对象
adata_predicted_rna = ad.AnnData(
X=predicted_expression,
obs=adata_atac_test.obs,
var=adata_rna_train.var
)

应用案例

案例 1:跨组织细胞类型图谱构建

研究团队使用 EpiFoundation 构建了跨 19 种组织的细胞类型图谱:

  • 整合了超过 100,000 个细胞的 scATAC-seq 数据
  • 识别了 56 种细胞类型
  • 揭示了组织特异性的染色质可及性模式
  • 发现了跨组织保守的调控元件

案例 2:发育轨迹分析

使用 EpiFoundation 分析造血细胞的发育轨迹:

  • 准确捕捉了从造血干细胞到成熟血细胞的分化过程
  • 识别了关键的转录因子结合位点
  • 揭示了染色质可及性在细胞命运决定中的动态变化
  • 预测了调控网络的时序变化

案例 3:疾病相关调控元件识别

应用 EpiFoundation 识别疾病相关的调控元件:

  • 比较健康和疾病状态下的染色质可及性
  • 识别了疾病特异性的开放染色质区域
  • 预测了疾病相关基因的表达变化
  • 为精准医疗提供了表观基因组学层面的见解

优势与局限

优势

  1. 专为 scATAC-seq 设计:首个专门针对 scATAC-seq 数据的基础模型
  2. 高效处理稀疏数据:非零峰建模策略显著提高计算效率
  3. 跨模态学习:峰-基因对齐确保表观基因组与转录组的关联
  4. 多任务支持:一个模型支持多种下游任务
  5. 最先进性能:在多个基准测试中超越现有方法
  6. 可解释性强:学习的细胞表示保持生物学结构

局限

  1. 需要配对数据:预训练需要配对的 scRNA-seq 和 scATAC-seq 数据
  2. 计算资源需求:预训练需要多个 GPU 和较长时间
  3. 物种限制:当前模型仅在人类数据上训练
  4. 峰调用依赖:性能依赖于峰调用的质量
  5. 批次效应:虽然有批次校正机制,但极端批次效应仍可能影响性能

与其他方法的比较

特性 EpiFoundation scVI SCALE BAVARIA MultiVI
专为 scATAC-seq 设计
基础模型
峰-基因对齐
细胞类型注释
批次校正
基因表达预测
预训练策略 跨模态 VAE VAE VAE VAE
性能(细胞注释) 最优 良好 中等 良好 良好

EpiFoundation 的独特优势在于其作为基础模型的设计理念和专门针对 scATAC-seq 数据的技术创新。


代码可用性

EpiFoundation 的代码已在 GitHub 上开源:

代码结构:

  • epifoundation/:核心模型代码
  • prepare_data.py:数据预处理脚本
  • train.py:模型训练脚本
  • evaluate.py:模型评估脚本
  • notebooks/:使用示例和教程

总结

EpiFoundation 是单细胞表观基因组学领域的重要突破,作为首个专门为 scATAC-seq 数据设计的基础模型,它通过创新的技术设计有效解决了高维稀疏数据的建模挑战。其主要创新点包括:

  1. 非零峰建模:只处理表达的峰,显著提高计算效率和数据密度
  2. 峰-基因对齐:利用配对的基因表达数据监督预训练,确保表观基因组与转录组的关联
  3. MiniAtlas 数据集:构建了高质量的多组织配对数据集,为模型训练和评估提供了坚实基础
  4. 多任务支持:一个模型支持细胞类型注释、批次校正和基因表达预测等多种任务
  5. 最先进性能:在多个基准测试中显著优于现有方法

EpiFoundation 为单细胞表观基因组学研究提供了强大的工具,特别适合以下场景:

  • 大规模 scATAC-seq 数据的细胞类型注释
  • 跨批次、跨实验室的数据整合
  • 从染色质可及性预测基因表达
  • 探索表观基因组调控机制
  • 构建细胞类型图谱和发育轨迹

随着单细胞表观基因组学技术的发展,EpiFoundation 有望在理解基因调控、细胞命运决定和疾病机制等方面发挥重要作用。


相关链接