scATAC-seq是什么?
第一部分:什么是 scATAC-seq?
全称:Single-cell Assay for Transposase-Accessible Chromatin using sequencing
核心通俗理解:它是给单细胞做“X光片”,看细胞核里的 DNA 哪里是“松弛”的(开放的),哪里是“缠绕”的(关闭的)。
- 生物学意义:
- 开放区域(Open Chromatin):通常是基因的“开关”位置(如启动子、增强子)。如果这里开放,说明转录因子可以结合,基因可能正在被表达。
- 关闭区域(Closed Chromatin):DNA 被核小体紧紧包裹,基因处于沉默状态。
- 数据特点(这直接决定了 Transformer 怎么设计):
- 极度稀疏(High Sparsity):这是最大的痛点。在单个细胞中,一个位点只有 0(没测到/关闭)、1(测到一条链)或 2(两条链)这几种状态。矩阵中 >95% 都是 0。
- 高维(High Dimensionality):人类基因组有 30 亿个碱基对,潜在的“特征”(Peaks/Bins)可能有几十万甚至上百万个。
- 近二值化(Binary-like):与 scRNA-seq 的连续值(表达量)不同,scATAC-seq 数据更像是一个巨大的 0/1 矩阵。
第二部分:如何用 scATAC-seq 训练 Transformer 模型
scATAC-seq(单细胞染色质开放性测序)数据与文本(NLP)有本质区别:它极其稀疏、维度极高(几十万个潜在峰值),且是近乎二值化(0/1)的信号。因此,训练 Transformer 模型时,不能直接照搬 NLP,必须在输入表示和模型架构上进行特殊设计。
以下是目前主流 scATAC-seq Transformer 模型(如 Atacformer, scGPT, ChromFound, EpiFoundation)的核心设计逻辑与训练方法。
一、 核心设计:如何把“染色质”变成“句子”?
这是最关键的一步。Transformer 只能处理序列(Sequence),而 scATAC-seq 是一个巨大的稀疏矩阵。主流设计通常分为以下三步:
1. Tokenization(分词):Peak as Token
目前最主流的策略是“基于峰(Peak-based)”的构建方式,将一个细胞看作一个句子,句子里的单词就是“开放的染色质区域”。
-
构建词表(Vocabulary):
-
先对所有细胞做 Peak Calling,合并得到一个“包含所有潜在开放区域”的列表(Consensus Peaks),例如 30 万个 Peaks。
-
每一个 Peak(如
chr1:100-200)被视为词表中的一个单词,拥有唯一的 ID。 -
构建输入序列(Input Sequence):
-
对于一个细胞,只提取它非零(Non-zero)的 Peak ID。
-
例子:如果细胞 A 在 Peak 10, Peak 500, Peak 8000 处开放,那么输入给模型的序列就是
[10, 500, 8000]。 -
优势:这种方法自动过滤了大量的 0,解决了稀疏性问题,将输入长度压缩到可接受范围(通常几千个 Token)。
2. Embedding(嵌入):注入基因组信息
单纯的 ID 丢失了生物学位置信息,因此 scATAC-seq 模型通常设计了特殊的 Embedding 层:
-
Peak Embedding:为每个 Peak ID 训练一个向量。
-
Genomic Positional Embedding(基因组位置编码):这是 scATAC 特有的。模型需要知道
chr1:100-200和chr1:200-300在物理上是挨着的。 -
做法:通常使用正弦/余弦函数或可学习的向量,将染色体编号(Chr Embed)和坐标位置(Start/End Embed)编码进向量,与 Peak Embedding 相加。
-
Accessibility Value Embedding(数值编码):虽然大多数是 0/1,但部分模型(如 ChromFound)会保留具体的 Reads 数或开放程度,将其映射为向量。
3. 架构选择:从 Encoder 到 Mamba
由于序列长度问题(一个细胞可能有 1万~5万 个开放 Peak),模型架构有分化:
- Standard Transformer (BERT/GPT):如 scGPT。适用于经过筛选的高变 Peak(High Variable Peaks),序列长度控制在 <4096。
- Efficient Transformer:如 Atacformer。使用线性注意力机制(Linear Attention)或 Performer,以处理更长的序列。
- Hybrid Architecture (Mamba/SSM):这是最新趋势(如 ChromFound)。结合 Mamba 模块处理超长序列(全基因组范围的上下文),利用其线性复杂度优势捕捉远距离的互作(如增强子-启动子环路)。
二、 主流模型盘点
| 模型名称 | 核心架构 | 特点 | 适用任务 |
|---|---|---|---|
| scGPT (ATAC版) | Decoder (GPT) | 将 Peak 视为特殊“基因”,支持多模态(RNA+ATAC)联合训练。 | 生成任务、批次去噪、多组学整合 |
| Atacformer | Encoder (BERT) | 专注于 scATAC,强调对 Cis-regulatory elements (CREs) 的理解。 | 细胞类型注释、Motif 挖掘 |
| EpiFoundation | Encoder | 跨模态预训练:利用配对的 RNA 数据来监督 ATAC 的学习(Peak-to-Gene Alignment)。 | 极度稀疏数据的补全、注释 |
| ChromFound | Mamba + Attn | 混合架构:引入 Mamba 处理长序列,设计了“基因组感知(Genome-aware)”的 Tokenizer。 | 跨组织/跨器官迁移、零样本预测 |
三、 实战指南:如何用这些数据训练模型?
如果你有一批 scATAC-seq 数据(如 .fragments.tsv.gz 或 .h5ad),想要训练或微调一个模型,请遵循以下流程:
Step 1: 数据预处理(最为繁琐)
- 统一 Peak Set:如果你有多个数据集,必须用软件(MACS2 或 ArchR)重新 Call Peaks 并合并(Merge),确保所有样本基于同一套“词表”。
- 构建矩阵:生成
Cell x Peak矩阵。 - 序列化转化:
- 将矩阵的每一行(细胞)转换为非零 Peak 的 ID 序列。
- 注意:需要设定
max_length(如 2048 或 4096)。如果一个细胞开放区域太多,需要随机采样(Random Sampling)或截断;如果太少,则 Padding。
Step 2: 预训练任务(Pre-training Objectives)
模型需要通过自监督学习“读懂”染色质语言。
-
Masked Peak Modeling (MPM):最常用的任务。
-
做法:随机 Mask 掉输入序列中 15% 的 Peak。
-
目标:模型需要预测被 Mask 掉的是哪个区域。
-
原理:这迫使模型学习共开放(Co-accessibility)规律(例如:因为 A 和 B 开放了,所以中间的 C 也很可能开放)。
-
Masked Cell Prediction(可选):预测该输入序列是真实的细胞还是随机噪声。
Step 3: 微调(Fine-tuning)
在预训练好的模型(Backbone)后接一个简单的线性层(Prediction Head):
- 分类任务:输入
[CLS]标记的向量 -> 输出细胞类型。 - 回归任务:输入 Peak 向量 -> 预测该区域是否也是 TF 结合位点。
Step 4: 代码实现参考
不要从零写 Transformer,建议基于现有框架修改:
- HuggingFace Transformers:可以使用
BertConfig,将vocab_size设为你的 Peak 总数(如 300,000)。 - scGPT 官方仓库:它们提供了针对 scATAC-seq 的 tokenization 脚本,可以直接复用其 Data Collator。
总结
scATAC-seq Transformer = “Peak 序列化” + “位置编码” + “Masked Modeling”。
目前的趋势是使用 Mamba 类架构来解决长序列问题,以及引入 scRNA-seq 配对数据进行跨模态监督,以弥补 ATAC 数据过于稀疏、语义信息不足的缺陷。

浙公网安备 33010602011771号