【论文分享】scPairing-单细胞多组学数据整合与生成框架
个人推荐指数:⭐️⭐️⭐️⭐️
scPairing 简介
scPairing 是一个基于变分自编码器(VAE)的单细胞多组学数据整合与生成框架,能够将不同模态的单细胞数据(如 RNA、ATAC、蛋白质)整合到共同的嵌入空间,并通过”桥接整合”(bridge integration)方法生成高质量的人工多组学数据。该工具由加拿大不列颠哥伦比亚大学(University of British Columbia)的 Jeffrey Niu 和 Jiarui Ding 开发,发表于 Cell Reports Methods(2025年11月)。
scPairing 的核心能力包括:
- 跨模态数据整合:将 RNA-seq、ATAC-seq、蛋白质等不同模态的单细胞数据整合到统一的嵌入空间
- 人工多组学数据生成:通过桥接整合方法,从单模态数据生成高质量的配对多组学数据
- 三模态扩展:支持同时整合三种模态(RNA + ATAC + 蛋白质)的数据
- 生物学结构保持:生成的数据能够保持粗粒度和细粒度的生物学结构
scPairing 的主要应用场景:
- 利用少量配对的多组学数据作为”桥接”,将大量单模态数据整合生成人工多组学数据
- 发现跨模态的生物学关系和调控网络
- 在缺乏真实多组学数据的情况下进行假设验证
- 降低多组学实验的成本,提高数据利用率
方法原理
核心思想
scPairing 的核心思想是利用少量配对的多组学数据作为”桥接”(bridge),学习不同模态之间的对应关系,然后将这种关系应用到大量的单模态数据上,生成人工配对的多组学数据。
传统的多组学技术(如 SHARE-seq、10x Multiome)虽然能够同时测量多种模态,但存在以下问题:
- 成本高昂,限制了样本量和数据规模
- 数据质量通常低于单模态技术
- 可用的多组学数据集数量有限
scPairing 通过以下策略解决这些问题:
- 使用少量高质量的配对多组学数据训练模型
- 将大量单模态数据投影到共同的嵌入空间
- 通过相似度匹配生成人工配对数据
- 生成的数据可用于下游分析,如细胞类型注释、调控网络推断等
模型架构
scPairing 采用增强的变分自编码器(VAE)架构,结合对比学习和对抗训练,包含以下核心组件:
编码器(Encoder):
- 模态特异性编码器:每个模态有独立的编码器网络,将低维表示映射到潜在空间
- 共享超球面嵌入空间:不同模态的编码器输出映射到同一个超球面 S^(d-1)
- 参数化:编码器输出潜在变量的均值 μ 和方差 σ²
- 输入:来自 PCA、LSI、scVI、scGPT 等方法的低维表示(20-50 维)
- 网络结构:单层神经网络,128 单元,ELU 激活,层归一化
解码器(Decoder):
- 模态特异性解码器:每个模态有独立的解码器网络,从潜在空间重构低维表示
- 跨模态生成:可以使用一个模态的潜在表示通过另一个模态的解码器生成数据
- 支持预训练解码器或从头学习的解码器
- 网络结构:单层神经网络,128 单元,ELU 激活,层归一化
模态判别器(Modality Discriminator):
- 功能:区分嵌入向量来自哪个模态(RNA 或 ATAC)
- 输入:超球面上的嵌入向量 μ_RNA 或 μ_ATAC
- 输出:标量值 ∈ [0,1],表示来自 RNA 模态的概率
- 网络结构:单层神经网络,128 单元,ELU 激活,层归一化
- 作用机制:
- 判别器试图正确分类嵌入的模态来源
- 编码器通过对抗训练”欺骗”判别器
- 使得不同模态的嵌入在潜在空间中无法被区分
- 增强跨模态对齐效果
批次判别器(Batch Discriminator):
- 功能:识别嵌入向量来自哪个批次
- 输入:嵌入向量 μ_RNA 或 μ_ATAC
- 输出:B 维向量 ∈ [0,1]^B,表示来自每个批次的概率(B 为批次数)
- 网络结构:单层神经网络,128 单元,ELU 激活,层归一化
- 作用机制:
- 判别器试图识别嵌入的批次来源
- 编码器通过对抗训练”欺骗”判别器
- 消除嵌入中的批次效应
- 防止细胞按批次过度分离,同时保持生物学结构

损失函数
scPairing 的损失函数包含多个部分,形成了一个增强的 VAE 目标函数:
重构损失(Reconstruction Loss):
- 确保模型能够准确重构输入数据
- 对于 RNA 数据使用负二项分布(Negative Binomial)
- 对于 ATAC 数据使用伯努利分布(Bernoulli)
- 对于蛋白质数据使用负二项分布
KL 散度损失(KL Divergence Loss):
- 约束潜在空间分布接近标准正态分布
- 防止过拟合,提高泛化能力
对比学习损失(Contrastive Loss):
- 受 CLIP(Contrastive Language-Image Pre-training)启发
- 鼓励同一细胞的不同模态嵌入在超球面上接近
- 同时推开不同细胞的嵌入
- 最大化匹配细胞对的余弦相似度,最小化非匹配细胞对的相似度
模态判别损失(Modality Discriminator Loss, L_D):
- 引入判别器神经网络 h: S^(d-1) → [0,1]
- 判别器接收嵌入向量(μ_RNA 或 μ_ATAC),输出其来自 RNA 模态的概率
- RNA 和 ATAC 编码器被训练来”欺骗”判别器
- 目标:使判别器无法区分 RNA 嵌入和 ATAC 嵌入
- 这是一个对抗性目标,进一步增强模态对齐
批次判别损失(Batch Discriminator Loss, L_B):
- 在批次效应显著的数据集中,对比损失可能导致细胞按批次过度分离
- 引入另一个判别器神经网络 b: S^(d-1) → [0,1]^B(B 为批次数)
- 该判别器预测每个嵌入来自哪个批次
- RNA 和 ATAC 编码器被训练来”欺骗”这个判别器
- 使用 B 类交叉熵损失
- 目标:消除嵌入中的批次效应
余弦相似度对齐损失(Cosine Similarity Alignment Loss, L_A):
- 额外的对齐约束,确保配对细胞的嵌入方向一致
- 只专注于拉近正样本本身,作为对比学习损失的补充
- 消融实验证明其显著增加了成功配对的细胞数量
总损失函数可表示为:
L = L_ELBO + L_contrastive + L_D + L_B + L_A
其中:
- L_ELBO = L_recon + β * L_KL(标准 VAE 损失)
- L_contrastive:对比学习损失
- L_D:模态判别损失
- L_B:批次判别损失
- L_A:余弦相似度对齐损失
具体步骤
步骤 1:训练桥接模型
- 使用少量配对的多组学数据训练 scPairing 模型
- 模型学习将不同模态映射到共同的嵌入空间
- 两步训练过程:
- 固定编码器和解码器,更新判别器参数(最大化判别准确率)
- 固定判别器,更新编码器和解码器参数(最小化总损失,包括”欺骗”判别器)
步骤 2:投影单模态数据
- 将大量单模态数据通过训练好的编码器投影到共同的嵌入空间
- 对于模态 1 的数据,使用模态 1 的编码器获得嵌入 Z1
- 对于模态 2 的数据,使用模态 2 的编码器获得嵌入 Z2
步骤 3:计算相似度矩阵
- 计算两个模态嵌入之间的余弦相似度矩阵 S
- S[i,j] 表示模态 1 的第 i 个细胞与模态 2 的第 j 个细胞的相似度
步骤 4:最大权重二部图匹配
- 使用匈牙利算法(Hungarian algorithm)求解最大权重二部图匹配问题
- 找到使总相似度最大的配对方案
- 设置相似度阈值(如 0.8),过滤掉低相似度的配对
步骤 5:生成人工多组学数据
- 根据匹配结果重新排列单模态数据
- 配对的细胞组合成人工多组学数据
三模态扩展
scPairing 可以扩展到三模态数据(triscPairing),同时整合 RNA、ATAC 和蛋白质数据。
架构调整:
- 三个模态特异性编码器(RNA、ATAC、蛋白质)
- 三个模态特异性解码器
- 共享的超球面嵌入空间
训练策略:
成对对比损失(Pairwise CLIP Loss):
- 对于三个模态 m₁, m₂, m₃,需要计算三对模态之间的对比损失
- L_CLIP = L_CLIP^(m₁,m₂) + L_CLIP^(m₁,m₃) + L_CLIP^(m₂,m₃)
- 每一对模态都使用标准的 CLIP 对比损失
- 确保任意两个模态的嵌入都能对齐
模态判别损失扩展:
- 模态判别器从二分类扩展为多分类
- 判别器 h: S^(d-1) → [0,1]³
- 输出三个概率值,分别表示嵌入来自 RNA、ATAC 或蛋白质模态
- 三个编码器都被训练来”欺骗”判别器
批次判别损失:
- 批次判别器同样应用于所有三个模态的嵌入
- 计算所有模态嵌入的批次预测损失
- L_B = (1/N) Σᵢ Σₘ CE(bᵢ, b̂(μᵢᵐ))
- 其中 m ∈ {RNA, ATAC, 蛋白质}
总损失函数:
- L_total = L_ELBO + Σ_(m₁,m₂) L_CLIP^(m₁,m₂) + L_D + L_B + L_A
- 包含所有模态对的对比损失
支持的数据类型:
- 完整三模态配对数据(如 TEA-seq)
- 部分配对数据(如只有 RNA+ATAC 或 RNA+蛋白质配对)
- 可以处理缺失模态的情况
桥接整合:
- 可以从三个单模态数据集生成三模态配对数据
- 也可以从双模态数据和单模态数据生成三模态数据
- 使用贪心算法求解三模态匹配问题(因为不存在高效的最优算法)
三模态配对算法:
- 对于三模态数据,线性和分配问题变为 NP-hard
- 使用随机贪心算法(randomized greedy algorithm)生成配对
- 算法迭代地选择相似度最高的三元组进行配对
技术实现细节
网络结构
编码器网络:
- 输入层:低维表示(来自 PCA、LSI、scVI 等方法)
- 隐藏层:单层神经网络,128 个单元
- 激活函数:指数线性单元(ELU)
- 归一化:层归一化(Layer Normalization)
- 输出层:输出潜在变量的均值 μ 和方差 σ²
- 嵌入空间:超球面(hypersphere)S^(d-1)
解码器网络:
- 输入层:潜在变量维度
- 隐藏层:单层神经网络,128 个单元
- 激活函数:指数线性单元(ELU)
- 归一化:层归一化
- 输出层:输出重构数据的参数
- 支持预训练解码器或从头学习的解码器
模态判别器网络(h):
- 输入:嵌入向量 μ_RNA 或 μ_ATAC(来自超球面 S^(d-1))
- 隐藏层:单层神经网络,128 个单元
- 激活函数:指数线性单元(ELU)
- 归一化:层归一化
- 输出:标量值 ∈ [0,1],表示来自 RNA 模态的概率
- 作用:区分 RNA 嵌入和 ATAC 嵌入
批次判别器网络(b):
- 输入:嵌入向量 μ_RNA 或 μ_ATAC
- 隐藏层:单层神经网络,128 个单元
- 激活函数:指数线性单元(ELU)
- 归一化:层归一化
- 输出:B 维向量 ∈ [0,1]^B,表示来自每个批次的概率(B 为批次数)
- 作用:识别嵌入来自哪个批次,用于消除批次效应
三模态扩展:
- 对于三模态数据,模态判别器从二分类扩展为三分类
- 判别器输出维度从 [0,1] 变为 [0,1]^3
- 批次判别器同样适用于所有三个模态的嵌入
数据预处理
scPairing 的一个重要特点是接受低维表示作为输入,而不是原始计数数据。这提供了灵活性和计算效率。
RNA-seq 数据预处理:
- 使用模态特异性方法计算低维表示:
- PCA(主成分分析)
- scVI(单细胞变分推断)
- scGPT(单细胞 GPT 模型)
- CellPLM(细胞预训练语言模型)
- 典型维度:20-50 维
- 可选择是否在低维表示中进行批次校正(如使用 Harmony)
ATAC-seq 数据预处理:
- 使用模态特异性方法计算低维表示:
- LSI(潜在语义索引)
- PeakVI(峰变分推断)
- Harmony 校正的 LSI
- 典型维度:20-50 维
- 峰矩阵通常先进行 TF-IDF 转换
蛋白质数据预处理:
- 对原始计数进行归一化
- 使用 PCA 或其他降维方法
- 典型维度:10-30 维(蛋白质特征数量较少)
低维表示的优势:
- 计算效率高:scPairing 参数量少,训练速度快
- 灵活性强:可以选择不同的批次校正策略
- 模态对齐更容易:低维空间中找到对齐比高维原始数据更简单
- 可利用预训练模型:如 scGPT、CellPLM 等大型预训练模型的嵌入
训练配置
超参数设置:
- 潜在空间维度:通常设为 10-50
- 隐藏层单元数:128(所有网络组件统一)
- 学习率:1e-3 到 1e-4
- 批次大小:128 或 256
- 训练轮数:根据验证集损失确定,通常 50-200 轮
损失权重:
- β(KL 权重):0.1 到 1.0
- 模态判别损失权重:可调节,过高会影响性能
- 批次判别损失权重:可调节,过高会影响性能
- 余弦相似度对齐损失权重:对性能影响较小
优化器:
- 使用 Adam 优化器
- 两步训练过程:
- 更新判别器参数(最大化 L_D 和 L_B)
- 更新编码器和解码器参数(最小化总损失)
早停策略:
- 监控验证集损失
- 如果验证集损失连续多轮不下降则停止训练
敏感性分析结果:
- 余弦相似度对齐损失权重对性能影响不大
- 模态判别损失和批次判别损失在高权重时会降低性能
- 当前默认权重设置在多个数据集上表现良好
评估指标
整合质量评估:
- 批次混合度(Batch mixing):使用 kBET、LISI 等指标
- 生物学保持度(Bio-conservation):使用 ARI、NMI 等指标
- 可视化:使用 UMAP 或 t-SNE 可视化嵌入空间
生成质量评估:
- 与真实多组学数据的相似度
- 下游任务性能(如细胞类型注释准确率)
- 跨模态相关性保持
性能评估
数据集
scPairing 在多个公开数据集上进行了评估:
双模态数据集:
- 10x Multiome PBMC:人类外周血单核细胞的 RNA + ATAC 数据
- SHARE-seq 小鼠皮肤:小鼠皮肤的 RNA + ATAC 数据
- CITE-seq PBMC:人类外周血单核细胞的 RNA + 蛋白质数据
三模态数据集:
- TEA-seq 骨髓:人类骨髓的 RNA + ATAC + 蛋白质数据
单模态数据集:
- 大规模 scRNA-seq 数据集
- 大规模 scATAC-seq 数据集
整合性能
scPairing 在整合质量上优于现有方法,能够更好地混合不同批次的数据,同时保持生物学结构。
生成质量
与真实多组学数据的比较:
- 生成的人工多组学数据与真实多组学数据在细胞类型分布、基因表达模式、染色质可及性模式上高度一致
- 跨模态相关性(如基因表达与启动子可及性的相关性)得到良好保持
下游任务性能:
- 使用生成的数据进行细胞类型注释,准确率达到 90% 以上
- 使用生成的数据推断基因调控网络,与真实数据推断的网络高度重合
三模态整合
在 TEA-seq 骨髓数据集上的评估:
- 成功整合 RNA、ATAC 和蛋白质三种模态
- 生成的三模态数据能够揭示三种模态之间的复杂关系
- 发现了新的跨模态生物学关联
可扩展性
scPairing 在计算效率上表现良好:
- 训练时间:在 10,000 个细胞的数据集上训练约 30 分钟(使用单个 GPU)
- 推理时间:投影 100,000 个细胞到嵌入空间约 5 分钟
- 内存占用:适中,可在标准工作站上运行
安装和使用
安装方法
从 GitHub 安装:
1 | # 基础安装 |
基本使用
步骤 1:准备数据
1 | import scanpy as sc |
步骤 2:训练 scPairing 模型
1 | from scPairing import scPairing |
步骤 3:投影单模态数据到嵌入空间
1 | # 投影 RNA 数据 |
步骤 4:执行桥接整合
1 | from sklearn.metrics.pairwise import cosine_similarity |
步骤 5:下游分析
1 | # 使用生成的多组学数据进行下游分析 |
三模态使用
1 | from scPairing import triscPairing |
应用案例
案例 1:视网膜细胞多组学数据生成
研究团队使用 scPairing 从大规模的视网膜 scRNA-seq 和 scATAC-seq 数据生成了人工多组学数据:
- 使用少量 SHARE-seq 视网膜数据作为桥接
- 整合了超过 100,000 个细胞的单模态数据
- 生成的数据揭示了视网膜细胞类型特异性的基因调控网络
- 发现了新的转录因子-靶基因关系
案例 2:免疫细胞三模态数据生成
使用 TEA-seq 骨髓数据作为桥接,生成了大规模的三模态免疫细胞数据:
- 整合了 RNA、ATAC 和表面蛋白质三种模态
- 揭示了免疫细胞分化过程中的多层次调控机制
- 发现了表面标记物、基因表达和染色质状态之间的关联
案例 3:肾脏细胞跨物种整合
使用 scPairing 整合了人类和小鼠的肾脏单细胞数据:
- 识别了保守的细胞类型和调控程序
- 发现了物种特异性的基因调控差异
- 为肾脏疾病研究提供了跨物种比较的基础
优势与局限
优势
- 数据效率高:只需少量配对数据即可生成大规模人工多组学数据
- 生成质量好:生成的数据在多个评估指标上接近真实多组学数据
- 灵活性强:支持双模态和三模态数据,可适应不同的数据类型
- 计算效率高:训练和推理速度快,可在标准硬件上运行
- 易于使用:提供了清晰的 API 和详细的教程
局限
- 依赖桥接数据质量:如果桥接数据质量差或代表性不足,生成的数据质量会受影响
- 相似度阈值选择:需要手动设置相似度阈值,可能影响配对结果
- 批次效应:如果单模态数据存在严重的批次效应,可能影响整合效果
- 模态特异性:不同模态的数据特性差异较大时,整合难度增加
- 验证困难:生成的人工数据难以与真实数据完全对应,验证其生物学准确性具有挑战性
与其他方法的比较
| 特性 | scPairing | Seurat v4 | Harmony | scVI | MOFA+ |
|---|---|---|---|---|---|
| 多组学整合 | 支持 | 支持 | 有限 | 支持 | 支持 |
| 数据生成 | 支持 | 不支持 | 不支持 | 有限 | 不支持 |
| 三模态支持 | 支持 | 有限 | 不支持 | 不支持 | 支持 |
| 桥接整合 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| 计算效率 | 高 | 中 | 高 | 中 | 低 |
| 易用性 | 高 | 高 | 高 | 中 | 中 |
scPairing 的独特优势在于其桥接整合能力,能够利用少量配对数据生成大规模人工多组学数据,这是其他方法所不具备的。
代码可用性
scPairing 的代码已在 GitHub 上开源:
- GitHub 仓库:https://github.com/Ding-Group/scPairing
- 教程:包含四个示例教程,涵盖双模态和三模态数据的使用
代码结构:
src/scPairing/:核心代码docs/:API 文档tutorials/:使用教程pyproject.toml和setup.cfg:安装配置文件
总结
scPairing 是一个创新的单细胞多组学数据整合与生成框架,通过桥接整合方法解决了多组学数据稀缺和成本高昂的问题。其主要创新点包括:
- 桥接整合策略:利用少量配对数据作为桥接,生成大规模人工多组学数据
- 增强的 VAE 架构:将不同模态映射到共同的超球面嵌入空间,保持生物学结构
- 对比学习:受 CLIP 启发,使用对比损失对齐不同模态的嵌入
- 对抗性训练:
- 模态判别器:确保 RNA 和 ATAC 嵌入无法被区分,增强模态对齐
- 批次判别器:消除嵌入中的批次效应,防止细胞按批次过度分离
- 低维表示输入:接受来自 PCA、LSI、scVI、scGPT 等方法的低维表示,提高计算效率
- 三模态扩展:支持同时整合三种模态的数据
- 高质量生成:生成的数据在多个评估指标上接近真实多组学数据
scPairing 为单细胞多组学研究提供了一个实用的工具,特别适合以下场景:
- 缺乏大规模多组学数据但有丰富的单模态数据
- 需要探索跨模态的生物学关系
- 希望降低多组学实验成本
- 需要验证生物学假设但缺乏实验数据
- 需要消除批次效应同时保持生物学结构
随着单细胞技术的发展,scPairing 有望在多组学数据整合和生成领域发挥重要作用。
个人点评
和我的方法不能说是高度相似,简直可以说是英雄所见略同啊!但不同的地方有以下几点:
- 最重要的:scPairing必须需要配对数据
- scPairing 的编码器的输入也是低维嵌入,解码器的输出是高维的原始数据,这使得它可以具有生成能力
- 在使用单细胞多组学数据作为“桥梁”训练后,使用二部图匹配,能够生成人工配对多组学数据(artificially paired multiomics data)
- 引入了批次判别器+模态判别器,以更好地混合批次与模态。但我个人觉得可能会引入过矫正的问题
- 额外引入了余弦相似度对齐损失,据称可以提高细胞配对成功率
- 实现了三组学整合和生成
- 在图谱级数据上做了实验,这个工作量确实不小。
- 感觉它做的也还是比较全面的,图也不错,个人认为值得更好的期刊,最后发了个CRM,我也不亏0.0
- 补充一点:它利用金标准的配对数据进行学习,不存在 ATAC-RNA 时空不匹配的问题,避免了纯算法配对的这一硬伤局限性。