请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

基于GPT构建单细胞多组学基础模型

2023-07-13

生成式预训练模型在自然语言处理和计算机视觉等各个领域取得了显著的成功。特别是将大规模多样化的数据集与预训练的Transformer相结合,已经成为开发基础模型的一种有前途的方法。文本由单词组成,细胞可以通过基因进行表征。这种类比启发作者探索细胞和基因生物学基础模型的潜力。通过利用呈指数增长的单细胞测序数据,作者首次尝试通过对超过1000万个细胞进行生成式预训练来构建单细胞基础模型。scGPT有效地捕捉了有关基因和细胞的生物学见解。此外,该模型可以轻松进行微调,以在各种下游任务中实现最先进的性能,包括批次整合、多组学整合、细胞类型注释、基因网络推断。

来自:scGPT: Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI

背景

生成式预训练模型最近在许多领域取得了前所未有的成功。这些基础模型可以轻松地适应各种下游任务和场景。与从头开始训练的特定任务模型相比,预训练模型在多个任务上展示出了更好的性能。这显示了它们在这些领域具有任务无关深入理解知识的证据。尽管基础模型在其他领域取得了显著成功,但目前基于机器学习的单细胞研究相对分散。由于测序能力和研究问题的范围限制,每项研究中使用的数据集的广度和规模往往有限。这就需要一个在大规模数据上进行预训练的基础模型,以实现对单细胞生物学的全面理解。在此项研究中,作者通过对超过1000万个细胞进行生成式预训练,首次尝试构建了一个单细胞基础模型,即scGPT。作者证明了预训练模型在基因和细胞层面捕捉到了有意义的生物学见解。在零样本学习中,预训练模型能够在未见过的数据集上揭示有意义的细胞簇。通过在少样本学习设置中进行微调,模型在各种下游任务上取得了最先进的性能,包括批次校正、多组学整合、细胞类型注释、伪细胞生成和基因网络推断。预训练基础模型将进一步增进我们对细胞生物学的理解,并为未来的新发现奠定基础。

方法

单细胞测序可以捕获细胞水平的遗传特征。例如,单细胞RNA测序(scRNA-seq)可以测量基因表达水平,从而揭示细胞的身份、状态和功能。最近总结的细胞参考图谱,如人类细胞图谱,包含来自不同器官和组织的数百万个单细胞,提供了对细胞异质性的表征。作者引入了scGPT作为单细胞领域的生成预训练基础模型。核心模型采用了堆叠的Transformer层和多头注意力机制,可以同时学习细胞和基因的特征表示。

图1A展示了一个包括预训练和微调两阶段的工作流程。在预训练阶段,作者从CellXGene门户网站收集了超过1030万个来自血液和骨髓细胞的scRNA-seq数据用于训练。作者引入了特别设计的注意力掩码和生成式训练流程,以自监督的方式训练scGPT模型,共同优化细胞和基因的表示。在训练过程中,模型逐渐学会根据简单的细胞或基因表达提示生成细胞的基因表达水平。在微调阶段,研究人员可以将预训练的模型应用于新的数据集和特定的任务。

scGPT通过基因表达建模从多样的单细胞数据中学习细胞和基因的表示。为了促进基因表示的学习,作者采用基因表达预测(GEP)作为生成自监督目标,以自回归的方式从已知的标记中迭代预测未知标记的基因表达值。为了增强细胞表示的学习,作者设计了基于细胞建模的基因表达预测(GEPC)目标,模型从细胞表示中预测基因表达值。这在基因表达谱和细胞异质性之间建立了直接的联系,使得在scGPT框架内可以进行联合优化。此外,scGPT的特征式架构可以轻松扩展到多种测序模态、批次。scGPT作为一个强大的单细胞特征提取器,可以在之前未见过的数据集上发挥作用。在基准实验中,scGPT优于最近的方法,并在所有下游任务中取得了最先进的结果。这证明了预训练的好处以及所学知识在不同应用场景中的可转移性。通过提供一个稳健且统一的框架,scGPT使得单细胞研究人员能够轻松地在相关研究中利用预训练的基础模型。
fig1

  • 图1:模型框架。
  • a:模型首先根据来自细胞图谱的大规模scRNA-seq数据进行生成训练。对于下游应用,可以在新数据上微调预训练的模型权重。scGPT的核心组件包含堆叠的Transformer块,具有专门用于生成训练的注意力掩模。可以将scGPT应用于各种任务,包括聚类、批校正、细胞类型注释、多组学整合、基因扰动预测(genetic perturbation prediction)和基因网络推断。
  • b:Input embedding的视图。输入包含三层信息,gene token、表达值和condition token(模态、批次、扰动条件)。
  • c:scGPT中Transformer层的视图。其中引入了一个特别设计的注意力掩模,用于对单细胞测序数据进行生成式预训练。

Input embedding

scRNA-seq被处理为矩阵 X ∈ R N × G X\in R^{N\times G} XRN×G,其每个元素 X i , j X_{i,j} Xi,j代表RNA的read count。这个矩阵被称为原始矩阵。输入scGPT包含三个部分:gene tokens(对于ATAC则是peak region tokens),expression values和condition tokens。

对于gene tokens,基因是scGPT的最小单位,相当于NLP中的单词,因此,将gene名称作为token,并在完整的token词汇表中分配给每个gene g j g_{j} gj一个独一的整数标识 i d ( g j ) id(g_{j}) id(gj)。这种方法提供了很大的灵活性来协调不同基因集相关的多个研究(比如由不同的测序技术或预处理管道生成)。特别的,通过在不同研究中取所有基因的并集可以将不同的gene token整合到一个公共词汇表。此外,还在词汇表中加入了特殊的标记,比如 < c l s > <cls> <cls>用于将所有基因聚合到一个细胞, < p a d > <pad> <pad>用于将输入扩展到固定长度。细胞 i i i的gene tokens被表示为 t g ( i ) ∈ N M t_{g}^{(i)}\in N^{M} tg(i)NM N N N为自然数): t g ( i ) = [ i d ( g 1 ( i ) ) , i d ( g 2 ( i ) ) , . . . , i d ( g M ( i ) ) ] t_{g}^{(i)}=[id(g_{1}^{(i)}),id(g_{2}^{(i)}),...,id(g_{M}^{(i)})] tg(i)=[id(g1(i)),id(g2(i)),...,id(gM(i))]其中, M M M为预定义输入长度,通常为高变基因数。

对于expression values, X X X在作为输入前需要进行额外处理,对于细胞 i i i,处理后有 x j ( i ) x_{j}^{(i)} xj(i) x ( i ) = [ x 1 ( i ) , . . . , x M ( i ) ] x^{(i)}=[x_{1}^{(i)},...,x_{M}^{(i)}] x(i)=[x1(i),...,xM(i)]对于condition token,包含与个体基因相关的元信息,比如functional pathways(用pathways tokens表示),为了表示position-wise的condition tokens,作者使用与输入基因共享相同维度的输入向量: t c ( i ) = [ t c , 1 ( i ) , t c , 2 ( i ) , . . . , t c , M ( i ) ] t_{c}^{(i)}=[t_{c,1}^{(i)},t_{c,2}^{(i)},...,t_{c,M}^{(i)}] tc(i)=[tc,1(i),tc,2(i),...,tc,M(i)]其中, t c , j ( i ) t_{c,j}^{(i)} tc,j(i)表示与某个条件对应的整数索引。

作者使用Conv层 e m b g emb_{g} embg e m b c emb_{c} embc编码gene token和condition token。为了促进将每个token映射到固定长度 D D D的embedding向量,使用全连接层 e m b x emb_{x} embx增强expression values。最终细胞 i i i的embedding为 h ( i ) ∈ R M × D h^{(i)}\in R^{M\times D} h(i)RM×D h ( i ) = e m b g ( t g ( i ) ) + e m b x ( x ( i ) ) + e m b c ( t c ( i ) ) h^{(i)}=emb_{g}(t_{g}^{(i)})+emb_{x}(x^{(i)})+emb_{c}(t_{c}^{(i)}) h(i)=embg(tg(i))+embx(x(i))+embc(tc(i))

scGPT

自注意力机制用于 M M M个token的序列,这可以捕捉基因之间的相互作用。堆叠的transformer为: h 0 ( i ) = h ( i ) h_{0}^{(i)}=h^{(i)} h0(i)=h(i) h l ( i ) = t r a n s f o r m e r ( h l − 1 ( i ) ) , ∀ l ∈ [ 1 , n ] h_{l}^{(i)}=transformer(h_{l-1}^{(i)}),\forall l\in[1,n] hl(i)=transformer(hl1(i)),l[1,n]作者使用 h n ( i ) ∈ R M × D h_{n}^{(i)}\in R^{M\times D} hn(i)R

相关阅读