CpGPT: DNA甲基化基础模型.

0. TL; DR

Cytosine-phosphate-Guanine Pretrained Transformer (CpGPT) 是一个DNA 甲基化基础模型,在超过1,500个DNA甲基化数据集、涵盖超10万个来自不同组织与条件的样本上进行预训练,利用改进的Transformer架构学习甲基化模式的综合表征,能够从有限的输入数据中插补和重建全基因组甲基化图谱。

通过捕获序列、位置和表观遗传上下文,CpGPT在针对衰老相关任务(如时序年龄预测、死亡风险和发病率评估)进行微调时,性能优于专业模型。该模型能高度适应不同的甲基化平台和组织类型。此外,通过分析样本特异性注意力权重,能够识别对个体预测最具影响力的CpG位点。

1. 背景介绍

DNA 甲基化,特别是在 CpG 二核苷酸上胞嘧啶的甲基化,是基因表达表观遗传调控的核心机制,深刻影响细胞分化、组织发育、衰老以及众多疾病(如癌症、神经退行性疾病)的进程。随着高通量甲基化芯片(如 Illumina 450K, EPIC)和测序技术的发展,海量甲基化组数据得以产生。

传统分析方法,如基于线性回归的表观遗传时钟(例如 Horvath时钟Hannum时钟GrimAge),虽然成功地将甲基化模式与生物学年龄、死亡率等表型关联起来,但其模型假设相对简单,难以捕捉CpG位点间复杂的非线性相互作用和长程依赖关系。此外,不同甲基化平台之间的数据整合、缺失值的插补、以及模型本身的可解释性,一直是该领域的挑战。

近年来,Transformer架构及其在自然语言处理(NLP)和计算生物学(如 scGPTDNA语言模型)中的成功应用,为处理序列化和结构化的生物医学数据提供了新思路。将Transformer的强大表征学习能力应用于甲基化组数据,有望学习到更通用、更复杂的表观遗传规律,从而成为一个强大的基础模型,服务于下游多种预测和解释任务。

为此,作者开发了 CpGPT,一个专门为DNA甲基化设计的基础模型,旨在统一处理上述挑战,并为衰老和疾病研究提供新的分析工具。

2. CpGPT 方法

CpGPT 的核心设计思想是将每个CpG位点视为一个词元,其序列背景、基因组位置和甲基化状态(β值)作为输入特征,利用Transformer架构学习其上下文感知的嵌入表示。

2.1 数据与预处理

作者构建了名为 CpGCorpus 的大规模数据集,整合了来自 GEO 数据库的 1,502 项研究、共 106,795 个人类样本。数据涵盖多种 Illumina 平台(27k, 450k, EPIC, EPIC+, EPICv2)和多样化的组织、疾病状态。

预处理步骤包括:

数据集被划分为训练集(100,965样本)、验证集(489样本)和测试集(5,341样本)。

2.2 模型架构

CpGPT 的输入是每个CpG位点的三元组信息:序列嵌入 $E$、甲基化$β$值 $\beta$、位置信息 $p$。

作者训练了两个版本的模型:一个大型模型(65M参数)用于零样本任务,一个小型模型(2.5M参数)用于微调。

序列编码

对于每个CpG位点,提取以其为中心、长度为 $L=2001$ 的核苷酸序列(-1000bp~1000bp)。使用预训练的DNA语言模型(如 Nucleotide Transformer)得到序列嵌入 $E \in \mathbb{R}^{b \times l \times d_{dna}}$,其中 $b$ 为批次大小,$l$ 为序列长度,$d_{dna}$ 为DNA嵌入维度。随后通过一个可训练的多层感知机 $f_{\text{seq}}$ 将其投影到模型内部嵌入空间:

\[S = f_{\text{seq}}(E)\]

其中 $S \in \mathbb{R}^{b \times l \times d_{\text{emb}}}$,$d_{\text{emb}}$ 为模型嵌入维度。

双重位置编码

为捕获多尺度基因组位置信息,采用了双重编码策略:

\[t = \frac{p}{p_{\text{max}}}, \quad w = 2\pi \frac{p}{p_{\text{max}}}\] \[L = \text{RoPE}(S + PE(p))\]

甲基化状态编码

甲基化$β$值通过一个可训练的MLP $f_\beta$ 进行嵌入:

\[B = f_\beta(\beta)\]

最终每个CpG位点的嵌入 $C$ 由位点嵌入和$β$值嵌入组合并归一化得到:

\[C = \frac{1}{\sqrt{2}} (L + B)\]

Transformer++

CpGPT 使用 Transformer++ 架构作为核心,其改进包括SwiGLU激活函数、RMSNorm、前置层归一化、无偏置线性层。

模型包含 $N$ 层 Transformer++ 块。在输入序列前添加一个可学习的分类词元 \(\mathbf{c}_{\text{cls}}\),用于聚合序列信息,得到最终样本嵌入 \(\mathbf{h}_{\text{cls}}\)。

解码器

CpGPT设计了多个专用解码器:

2.3 预训练与损失函数

对每个训练批次,将$β$值按照$50\%$随机分成输入集 $\beta_{\text{input}}$ 和目标集 $\beta_{\text{target}}$,鼓励模型重建缺失数据。

预训练采用多任务学习。损失项包括:

\[\mathcal{L}_{\text{mae}} = \frac{1}{|\mathbf{M}_{\text{valid}}|} \sum_{i,j \in \mathbf{M}_{\text{valid}}} |\hat{\beta}_{ij} - X_{ij}| \\ \mathcal{L}_{mae\_unc} = \frac{1}{|\mathbf{M}_{valid}|}\sum_{i,j \in \mathbf{M}_{valid}} ||\hat{\beta}_{ij} - X_{ij}| - \hat{\sigma}_{\beta,ij}| \\ \mathcal{L}_{\text{wd}} = \mathbb{E}[|\text{sort}(\hat{\beta}) - \text{sort}(X)|]\] \[\mathcal{L}_{kld\_sample} = \text{KL}(\mathcal{N}(\mathbf{\mu}_h, \sigma_h^2) \| \mathcal{N}(0, \mathbf{I})) \\ \mathcal{L}_{contrastive} = \mathbb{E}[1 - (\max(0, \cos(\mathbf{h}_{sample,i}, \mathbf{h}_{sample,j}) - \tau))^2]\]

其中 $\tau$ 为阈值参数,$\mu_h, \sigma_h^2$ 为 $\mathbf{h}_{sample}$ 的批次均值和方差。

\[\mathcal{L}_{CPH} = -\frac{1}{\sum_{i=1}^b e_i} \sum_{i:e_i=1} \left(\hat{y}_i - \log\left(\sum_{j:t_j \geq t_i} \exp(\hat{y}_j)\right)\right)\]

其中 $\hat{y}_i$ 为预测风险评分,$t_i$ 为观察时间,$e_i$ 为事件指示符。

3. 实验分析

作者对 CpGPT 进行了系统性的评估,涵盖了表征学习、零样本任务、可解释性以及在下游衰老和疾病预测任务上的性能。

3.1 CpGPT学习到有意义的嵌入

为了验证模型是否无监督地学习到了有意义的表征,作者对CpG位点嵌入和样本嵌入进行了 UMAP 可视化分析。

CpGPT 的嵌入空间无需显式监督,即可编码丰富的基因组功能语境和样本生物学状态信息。

3.2 有效的零样本插补与平台转换

CpGPT 被设计用于从部分数据重建全甲基化组。

CpGPT 能够高精度地插补缺失的甲基化值,实现不同甲基化平台间的有效转换,解决了表观遗传研究中数据整合的关键难题。

3.3 样本特异性的甲基化组解读

Transformer 的注意力机制为模型提供了内在的可解释性。作者通过分析最后一个Transformer块的平均注意力权重,为每个样本构建了CpG位点-位点重要性矩阵。

作者选取了 AltumAge 数据集中心脏组织和大脑组织的样本进行分析,仅保留注意力权重最高的前 0.01% 的连接构建网络图。

CpGPT 的注意力机制能够提供样本特异性的解读,动态地突出与特定组织生物学功能最相关的基因和CpG位点,这超越了传统线性模型赋予固定权重的静态解读方式。

3.4 死亡率与发病率预测能力

作者在多个独立队列上微调 CpGPT 用于死亡率和发病率预测,并采用Cox比例风险模型进行评估。

死亡率预测:

CpGPT 能够强有力地预测个体死亡风险,并有效区分高、低生存概率的人群。

发病率预测:

CpGPT 不仅能够预测广泛的衰老相关疾病,还能反映个体的功能状态、代谢健康甚至心理社会健康状况,展示了其作为综合性健康风险评估工具的潜力。