scGPT: 千万单细胞数据构建多组学生成式AI
Editor's Note
关注大模型!
The following article is from 生信编程自修室 Author jefferyLLLLL
若有一日scGPT像chatGPT一样强大就好了!代码地址:https://github.com/bowang-lab/scGPT。近日较忙,小编有时间给大家实测一下~
2023 年 5 月 1 日,来自加拿大 University Health Network 的研究者在 bioxiv 上发布了一篇题为 “scGPT: Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI”的研究工作。该工作利用 HCA 中超过1000w的单细胞数据进行生成式预训练来构建单细胞基础模型(scGPT),基于该模型可以轻松进行 finetuning 以实现一系列的单细胞下游分析,包括去批次、多组学整合、细胞类型注释、扰动分析、基因网络分析。
scGPT模型
从建模的角度来看,self-attention transformer 已被验证为一种高效且有效的架构,可以对文本单词进行建模。文本是由单词组成的,而细胞用基因来表征。我们可以用和 NLG(natural language generation) 中单词和句子嵌入类似的方式同时学习和提取基因和细胞的表征。
scGPT 的核心模型有多个 stacked transformer 层,能够同时学习细胞和基因嵌入。scGPT 包括预训练和 fine-tuning 两阶段。在预训练阶段,作者从 CellXGene portal 收集了超过 1030 万血液和骨髓细胞的 scRNA-seq 数据进行训练。采用自监督的训练形式,使模型逐渐学会根据简单的细胞或基因表达线索生成细胞的基因表达。在 fine-tuning 阶段,用户可以将预训练模型应用于新的数据集和特定任务,比如去批次、多组学整合、细胞类型注释、扰动分析、基因网络分析。
input embeddings
包括三个方面:1、gene tokens;2、expression values;3、condition tokens (基因相关的 meta 信息,比如通路信息)
其中值得注意的是,基因表达的预处理作者采用的是分 bin 的策略,这样更能消除不同技术、不同样本、不同批次的影响。对于 batch、数据模态等 condition token, 这些 token 在模型中也是以基因为单位的。
scGPT transformer
h(i)n 则是transformer block的输出,他是一个MXD维度的矩阵,M就是输入基因的个数,一般是HVG。该矩阵用于下游fine-tuning,来适配不同的下游分析。
scGPT 作者举例了很多方面,下面就批次校正、细胞类型注释、基因调控网络分析来看看
去批次
首先作者将 scGPT 应用于批次校正,并和 scVI, Seurat 还有 Harmony 进行了比较,作者发现 scGPT 在能使分群更加清晰的基础上,还能更好地保留生物学意义。另一方面,作者通过 PBMC10K 数据还揭示了基于预训练模型 fine-tuning 比不预训练具有明显的优势:1、能更好地去批次,保留亚群生物学意义;2、能更好地捕获基因之间的关系。
细胞类型注释
在 hPancreas 数据集上,作者结果表明 scGPT 细胞类型注释准确率高达 96.7%,主要预测错误体现在一些细胞量极低的细胞类型,比如巨噬细胞和肥大细胞。
基因调控网络分析
作者分别举例展示了 HLA-antigen 和 CD antigen 基因网络的结果,结果显示无论是 zero-shot 还是 few-shot,scGPT 都能较真实地捕获基因之间的关联,并且基因之间的这种关联本质上是基于细胞类型的(Fig5.D)。
总而言之,这个工作说明 scGPT 大数据集的预训练模型在基因和细胞水平上捕获了有意义的生物学见解。学习到的基因嵌入通过将功能相关的基因组合在一起来解码已知的生物学通路。通过零样本学习(zero-shot),预训练模型能够在未见的数据集上揭示有意义的细胞簇;通过少量学习(few-shot)的 fine-tuning,该模型在单细胞多组学多个下游分析中表现出优异的性能。