← Back to scModels Foundation Model

CellPLM

CellPLM
Hongzhi Wen, Wenzhuo Tang, Xinnan Dai, Jiayuan Ding, Wei Jin, Yuying Xie, Jiliang Tang · 2024-01-16 · ICLR 2024 (Poster)

颠覆性tokenization翻转(细胞→token,组织→sentence),空间转录组+高斯混合先验VAE,85M参数全面超越Geneformer/scGPT,推理速度500x

Overview

📄 第34期 | CellPLM: Pre-training of Cell Language Model Beyond Single Cells——当细胞学会了"对话"

把细胞当作词、组织当作句子——CellPLM通过颠覆性的视角转换,让AI学会了细胞之间的"社交关系",在六大细胞注释基准上全面超越Geneformer和scGPT,推理速度却快了500倍。

🔬 为什么这篇文章重要?

单细胞大模型领域有一个默认的"翻译惯性":既然我们要让AI读懂细胞,那就模仿NLP的做法——基因当词(token),细胞当句子。scGPT这么做,Geneformer这么做,scBERT也这么做。

这个类比直观,但它掩盖了三个根本性的事实。第一,scRNA-seq数据本质上是一个"基因袋子"(bag-of-genes),不存在天然的顺序;你把基因排列成一个序列,这个序列本身就是人为构造的。第二,在生物体中,细胞与细胞之间的关系远比自然语言中句子与句子之间的关系复杂和重要——一个T细胞和它旁边的巨噬细胞的"对话",比《纽约时报》里相邻两句话的语义关联要深刻得多。第三,单细胞数据的体量和质量远远无法与互联网文本相提并论——又吵又少。

2023年,密歇根州立大学Jiliang Tang团队的Wen等人向ICLR 2024提交了CellPLM,做了一件看似简单却非常大胆的事:把tokenization的方向倒过来——细胞变成词,组织变成句子。这个翻转不是文字游戏,它从根本上改变了模型"看到"的东西:从细胞内部的基因关系,转向细胞之间的空间关系和功能关系。

🧠 核心创新:CellPLM是怎么工作的?

CellPLM的架构可以拆解为三个递进的层次:

第一层:从"基因语言"到"细胞语言"

传统方法将每个基因映射为一个嵌入向量,然后用Transformer在基因维度上做自注意力——这等价于让模型去理解"TP53和BRCA1在同一个细胞里表达意味着什么"。CellPLM反其道而行之:它先用一个基因表达嵌入器(gene expression embedder)将每个细胞内所有基因的表达信息压缩成一个细胞级别的向量(通过稀疏聚合),然后把这些细胞向量排成序列喂给Transformer。

这一步的意义在于:Transformer的注意力机制从"基因×基因"变成了"细胞×细胞"。模型不再问"这个基因和那个基因有什么关系",而是问"这个T细胞和旁边的巨噬细胞是什么关系"。

第二层:空间信息的注入

CellPLM的第二个关键设计是把空间转录组数据(spatially resolved transcriptomics, SRT)引入预训练。在空间转录组数据中,每个细胞不仅有基因表达谱,还有物理坐标。CellPLM通过位置编码(positional encoding)将这些空间坐标注入Transformer,让模型在预训练阶段就学会了"谁在谁的旁边"。

消融实验证明了这个设计的必要性:去掉位置编码后,在肺组织空间插补任务上,相关系数从0.318跌到0.237(下降25%),在肝组织上从0.328降到0.215(下降34%)。空间信息不是装饰品——它是CellPLM区别于所有前人工作的核心壁垒。

第三层:高斯混合先验与VAE架构

单细胞数据有一个棘手的问题:它来自不同的人、不同的器官、不同的测序平台,数据的异质性极高。普通的VAE用单一高斯分布作为先验,相当于假设所有细胞来自同一个"标准分布"——这显然不成立。

CellPLM采用了高斯混合先验(Gaussian Mixture prior),用多个高斯分量的叠加来适配多源数据的异质性。消融实验结果非常直白:把混合高斯换成单高斯,细胞分类Macro F1从0.766掉到0.737;把整个潜变量层拿掉(变成确定性自编码器),降到0.75。最妙的是,拿掉潜变量层反而比单高斯好——说明选错先验比没有先验更糟糕

消融设置 细胞分类 (MS Macro F1) 空间插补 (Lung Corr)
CellPLM (完整) 0.766 0.318
无混合高斯(单高斯) 0.737 0.258
无潜变量分布 0.750 0.262
无Transformer编码器 (换MLP) 0.750 0.244

三个组件同时存在时,模型的效果最好——这说明细胞间关系建模(Transformer)+ 数据异质性处理(混合高斯)+ 表达噪声建模(潜变量)三者之间存在协同效应。

📊 关键实验结果

在细胞类型注释任务上,CellPLM在六个数据集上的表现全面领先于同期方法:

方法 PBMC12K Pancreas HLCA Immune Brain Liver
Geneformer 0.979 0.833 0.856 0.934 0.871
scGPT 0.963 0.954 0.863 0.907 0.950 0.864
scANVI 0.930 0.963 0.708 0.851 0.933 0.908
CellPLM 0.975 0.983 0.929 0.902 0.967 0.913

六个数据集中CellPLM在三个上排名第一,另外三个上排名第二。更令人印象深刻的是零样本聚类:不做任何微调,直接用预训练好的细胞嵌入做聚类,CellPLM在测试集上ARI达到0.843、NMI 0.823,超越了HVG+PCA基线。

在空间转录组插补任务上,CellPLM显著优于gimVI、SpaGE、stPlus等专用方法,在肺和肝组织上的Pearson相关系数分别达到0.318和0.328。虽然绝对值不高(空间插补本身就是一个极难的任务),但相比最佳基线提升了15-20%。

还有一个不可忽视的亮点:推理速度。因为CellPLM在细胞级别运算(序列长度=批次大小),而scGPT/Geneformer在基因级别运算(序列长度=基因数),生成细胞嵌入的推理速度差距达到500倍。对于需要处理百万级细胞数据的实验室来说,这个差距意味着从"算不过来"到"几分钟搞定"。

⚠️ 局限与展望

CellPLM的翻转范式也带来了天然的盲区。因为模型在细胞级别运算,它无法直接输出基因级别的表征——这意味着基因调控网络推断基因-基因相互作用查询等任务不在CellPLM的能力范围内。如果你需要知道"敲除TP53后哪些基因的表达会变",基因级别的模型(scGPT、Geneformer)更适合你。CellPLM的作者坦率地承认了这一点,并将基因层面的能力标记为未来工作。

另一个需要注意的点是:CellPLM的some从零训练版本(from scratch)在某些任务上已经超过了预训练的基线模型。评审人C7dG尖锐地指出:"如果随机初始化的模型已经超越了大多数基线,那我们可能需要重新评估论文中的claim。"作者的回应是诚实的——从零训练超越基线的情况只出现在部分数据集上,且预训练版本始终显著优于从零训练版本(F1从0.709提升到0.766),这证明预训练的知识迁移确实是有效的。

此外,CellPLM目前主要在scRNA-seq和空间转录组数据上验证,能否扩展到ATAC-seq、蛋白质组等多模态数据仍是开放的。

📎 论文信息

  • 📄 论文:CellPLM: Pre-training of Cell Language Model Beyond Single Cells
  • 🔗 链接:https://doi.org/10.1101/2023.10.03.560734(bioRxiv)| ICLR 2024 Poster
  • 💻 代码:https://github.com/OmicsML/CellPLM(⭐ 103)
  • 👥 团队:Hongzhi Wen, Wenzhuo Tang, Xinnan Dai, Jiayuan Ding, Wei Jin, Yuying Xie, Jiliang Tang | Michigan State University
  • 📊 影响力:65次引用(OpenAlex)

Publication

CellPLM: Pre-training of Cell Language Model Beyond Single Cells

Links

📄 Read Paper 💻 GitHub

Specifications

  • ArchitectureTransformer (cell-level), VAE with Gaussian Mixture prior, gene expression embedder + spatial positional encoding
  • ModalityscRNA-seq