
--https://doi.org/10.1101/2024.10.23.619972
研究团队和单位
Theofanis Karaletsos--Head Of AI - Science at Chan Zuckerberg Initiative
(Chan Zuckerberg Initiative是扎克伯格和他妻子Chan成立的科研&教育机构)
研究简介
研究背景:

--https://doi.org/10.1038/s41551-024-01284-6
GenePT模型中已经证明使用基因的文本信息(NCBI gene数据库中对基因的描述),可以执行细胞聚类、基因调控网络和疾病状态预测的生物学任务,但并没有做对基因扰动预测的任务。
所以,scGenePT模型是把基因文本数据和单细胞测序数据结合起来,实现更好的基因扰动预测的任务。基因文本信息包含:NCBI基因card的描述、Uniport数据库的蛋白描述、基因功能注释。
这一切都是基于已有的大语言模型(chatGPT、Gemini、Deepseek等),能够理解基因的文本所代表的含义,理解基因的功能差异和表达模式,进而能够为实验数据比如scRNA-seq提供额外的信息。

研究目的
基因扰动预测的任务通常从两个角度来解决:要么是基础模型,在预训练期间大规模地从数据中学习表示,然后针对扰动预测作为下游任务进行微调(例如 scGPT);要么是专门的模型,从较小规模、更精选的数据中学习,并将特定的任务相关结构化信息直接嵌入到模型架构中(例如 GEARS)。
文章研究目的是想证明:
- (1) 能否构建足够强大的模型来学习特定于专门任务的结构化生物学信息,而无需将其硬编码到模型架构中?
- (2) 使用语言文本来补充实验数据的多模态方法能否帮助我们实现这一目标?
- (3) 精选放入模型中的知识是否会产生重大影响?
因此作者采用了一个仅在 scRNA-seq count上训练的预训练基础模型 scGPT,并在基因水平上将语言注入到模型架构中。每个基因都通过 LLM embedding获得文本表示,该embedding聚合了来自各种先验知识的基因信息。
研究结果
- (1) 在单细胞扰动建模中,GO信息为生物学学习的基因表示提供了附加的和互补的价值。
- (2) 文本基因表示不如生物学学习的基因表示强大,但提供了有用的信息。
- (3) 不同类型的文本知识提供不同类型的先验信息。在测试的数据集中,GO 注释在单基因扰动中帮助最大,而 NCBI 蛋白质描述为基因相互作用的扰动效应建模提供了更好的帮助。
- (4) 通过仔细地管理我们引入到 scGPT 转录组基础模型中的辅助语言编码数据,我们可以达到甚至有时超过将结构化信息明确地硬编码到模型架构中的定制模型的性能。
1.方法
1.1 扰动模型的概念
扰动有很多种类型------遗传扰动(例如 CRISPR)、化学扰动(例如药物治疗)、环境扰动、感染(例如病毒)、自然等位基因变异(例如基因突变)。
在基于转录组学的模型中,更多是关注于遗传扰动,对基因进行敲除(降低基因表达值或表达值弄成0)。怎么理解这个扰动模型的过程呢:
- 1.扰动模型实际上是对预训练好的模型进行微调。预训练模型是在完整基因表达下进行训练的,已经学到了基因之间的关系,不同基因表达值的分布对其它基因的影响。
- 2.扰动就是把基因的表达值mask掉,或者做扰动token把需要扰动的基因标记上,把扰动token做成embedding,在把数据输入到模型之前,和原本预训练模型的输入进行矩阵运算(一般是加和)。
- 3.让模型进行计算,预测扰动后的基因表达矩阵。
- 4.最后统计哪些基因在扰动后表达值变化很大,则该基因和扰动基因有很强的关联性。

正如scGPT模型中的condition token,它等于扰动token。
1.2 原本的scGPT模型输入:

基因扰动表示如下:如果要扰动该基因,则标签为0,如果不扰动则为1(扰动的基因是自定义的),一般一次只扰动1到2个基因。
scGPT的输入是由3部分组成:基因token的embedding、基因表达值的embedding和基因扰动embedding:

这样一个细胞 t t t 的embedding就是:

然后把细胞embedding输入到scGPT的transformer架构中进行扰动后基因表达值的预测:

对应图中scGenePT的部分为:

1.3 基因文本数据示例
NCBI对基因的描述:

NCBI对基因的描述+UniProtKB对蛋白的描述:

Gene Ontology包含基因分子功能描述、分子组成描述和生物学过程描述:




1.4 融入基因文本embedding示例:

现在是4种基因的embedding进行加和,加和后构架成细胞embedding输入到scGPT原本的模型当中。
文本的embedding用GPT-3.5-text-embedding-ada-002模型生成。

最后的基因embedding是:

然后输入到scGPT的模型中:

1.5 scGenePT模型架构

综合上面所描述的,scGenePT模型的架构由scGPT和GenePT组合而成。
1.6 模型训练
模型是在GPU H100上基于scGPT进行微调的,训练数据为全人类基因组数据集。每个实验均运行了5次,每次使用不同的随机种子。
模型大部分超参数与scGPT保持一致。
在训练过程中,每个对照样本(即未经扰动的样本)会与一个扰动(湿实验测量结果)及其对应的模型扰动(即扰动后的基因表达数据)配对。前者是为"真实值",后者是预测值。模型的目标是学习如何从对照样本和扰动信息中预测扰动后的基因表达数据。
对于每个对照/扰动对,研究随机抽取n=1536个基因,并通过最小化所有采样基因的真实值与预测扰动响应之间的均方误差(MSE)来进行训练,最后选择在验证数据上MSE损失最低的模型作为最佳模型。

