GeneCompass:跨物种大模型用于破解基因调控机理

GeneCompass是第一个基于知识的跨物种基础模型,该模型预先训练了来自人类和小鼠的超过1.2亿个单细胞转录组。在预训练过程中,GeneCompass有效整合了四种生物先验知识,以自监督的方式增强了对基因调控机制的理解。对多个下游任务进行微调,GeneCompass在单个物种的多个任务中优于最先进的模型,并开启了跨物种生物研究的新领域。总的来说,GeneCompass标志着对通用基因调控机制的学习和加速发现关键调控因子和药物候选靶点的里程碑。

来自:GeneCompass: Deciphering Universal Gene Regulatory Mechanisms with Knowledge-Informed Cross-Species Foundation Model
工程地址:https://github.com/xCompass-AI/geneCompass

目录

  • 背景概述
  • 概述:GeneCompass架构和预训练
  • 方法:数据收集
  • 方法:GeneCompass
    • GeneCompass架构
    • GeneCompass预训练和优化
    • 消融实验与不同规模的数据
    • 微调
    • 细胞和基因embedding
    • 先验知识embedding
  • 下游任务方法
    • 单物种的细胞类型注释
    • GRN预测
    • 细胞对药物及其剂量的反应预测

背景概述

脊椎动物是由数以万亿计的细胞组成的复杂系统,这些细胞被分为数百种不同的类型。细胞合作形成不同的组织和器官,每一个都有一套独特的生理功能。阐明这些组织和器官的基因调控机制对于破解个体发育模式和促进临床治疗至关重要。随着组学测序技术的快速发展,人们已经开始在单细胞分辨率上解剖各种器官中的细胞如何发挥其特定功能,并积累了大量的单细胞数据。然而,基因表达在多个水平上受到调控,从染色质可及性到转录后修饰。这意味着,仅通过湿生物学实验全面解读基因调控机制是劳动密集和耗时的。深度学习模型的出现,凭借其在大型数据集中表示复杂模式的能力,为剖析多层次和跨物种的调节机制提供了机会。

近年来,自然语言领域的BERT、GPT、PaLM和LLaMA等基础模型以及视觉领域的DALL-E在各种下游任务中取得了显著的性能。它们通常都采用自监督学习对大量数据进行预训练,然后通过微调对特定的下游任务进行适应。类似的,转录组是理解生物系统内基因调控活动的"语言"。一些研究利用单细胞转录组数据构建预训练基础模型,如scGPT、Geneformer和scFoundation。这些工作的共同点是利用数以千万计的人类单细胞转录组谱来预训练基础模型,并在广泛的下游任务中表现出卓越的性能,如细胞聚类、细胞类型注释、基因扰动模拟和药物靶标预测。然而,目前的模型有其局限性。

动机
由于脊椎动物在物种间表现出巨大的多样性,而基因调控机制的进化守恒(尽管不同物种的基因组和表型可能有很大的差异,但它们在基因表达调控的基本原理和组件上存在共同之处),来自不同物种的数据集的整合为揭示基因调控提供了一个绝佳的机会,而目前的模型仅依赖于单个物种的数据。此外,过去几十年积累的丰富的生物学知识,包括核心调控区数据、实验证实的基因相互作用和基因家族注释,代表了我们迄今为止对生物过程的全面理解。将这些知识注入预训练过程中,可以指导模型以自监督的方式学习通用的基因调控机制。

贡献
GeneCompass是一个知识丰富的跨物种基础模型,在scCompass-126M上预训练,scCompass-126M是目前最大的语料库,包含超过1.2亿个来自人类和小鼠的单细胞转录组。

  • 重要的是,该模型结合了生物学知识,包括启动子序列、基因共表达网络、基因家族信息和转录因子-靶基因调控关系。通过在各种下游任务中微调预训练模型,模型取得了比SOTA模型更好的性能。总的来说,模型在基础模型的发展方面取得了重大突破。

概述:GeneCompass架构和预训练

GeneCompass是一个知识丰富的跨物种基础模型,预训练了来自人类和小鼠的超过1.2亿个细胞的转录组。通过对有限的数据进行微调,GeneCompass可以有效地应用于各种下游生物相关任务(图1a)。利用显性的自注意力机制,GeneCompass可以基于输入的转录组了解细胞和基因之间的复杂关系。

通过构建一个大规模的预训练语料库scCompass-126M推动了GeneCompass的开发。该语料库由来自人类和小鼠的1.26亿个单细胞转录组组成,这些转录组来自公开可用的数据集,包括广泛的器官和细胞类型(图1c, d)。为了确保数据质量,作者过滤掉了异常基因表达的细胞。此外,作者在数据集中保留了具有足够可变性或表达水平的基因,以捕获细胞类型特异性特征(即生物异质性)。由于人和小鼠之间存在不同的基因列表,这里通过共享相同的基因id来对齐它们的同源基因。在GeneCompass中,token字典包含了36,092个基因中的17,465个同源基因(图1a)。
fig1a

  • 图1a:GeneCompass 的框架。该模型在人类和小鼠的大规模单细胞转录组上进行预训练。与从头开始训练不同,预训练的 GeneCompass 可用于多个下游任务,包括细胞类型注释、基因调控网络预测、剂量反应预测等。

fig1b

  • 图1b:四种先验知识嵌入,包括基因调控网络、启动子序列、基因家族和共表达。

fig1c

  • 图1c:scCompass-126M 中人类和小鼠的器官类型

fig1d

  • 图1d:从 scCompass-126M 中采样的子集的不同细胞类型的 UMAP。

目前大规模转录组预训练模型主要利用相对基因排序或分组基因表达值作为输入,导致转录组的表达信息不足。为了克服这一限制,我们将基因的绝对表达值和相应的基因id连接起来,然后根据整个scCompass-126M的归一化表达值在细胞内对基因进行排序。绝对表达式值的引入为GeneCompass提供了更细粒度的信息。为了进一步增强预训练模型的能力,作者通过不同的方法将启动子序列、基因共表达网络、基因家族和转录因子-靶基因调控网络等四种不同类型的生物先验知识编码到统一的嵌入空间中(图1b)。

为了表示物种信息,在每个细胞前嵌入一个species token(图1a)。总的来说,GeneCompass将基因id,表达值,先验知识组成基因token,利用12层Transformer进行编码。

GeneCompass采用掩码语言建模(mask language modeling, MLM)策略,在预训练过程中随机掩码基因token。具体来说,每个细胞随机 mask 15%的基因,然后GeneCompass通过两个独立的Decoder heads同时恢复这些被mask的基因id和表达值。这种多任务自监督学习范式结合了相对rank和绝对expression的恢复,增强了捕捉基因表达中微妙关系的能力。

方法:数据收集

作者构建了一个大规模的预训练语料库scCompass-126M。该语料库由超过1.2亿个单细胞转录组组成,包括两种不同的物种,人类和小鼠。多物种单细胞数据为理解不同生物的细胞异质性提供了丰富的资源。然而,由于物种之间的生物过程和技术差异,收集和预处理这些数据具有挑战性。

在所有物种中,人类和鼠的细胞比例最高,各自有超过5000万个细胞数据。研究使用的数据来自不同来源的公开数据集平台,包括NCBI-GEO、NCBI-SRA、EMBL-EBI-ArrayExpress和CNCB-GSA。从这些数据库中下载FASTQ文件,并通过运行相同的pipeline获得基因原始计数。其他基因原始计数数据直接从CELLxGENE、Single Cell Portal、Curated Cancer Cell Atlas (3CA)、Cell BLAST、Human Cell Atlas、Temporal Expression during Development Database (TEDD)中下载。对于准备多物种单细胞数据进行下游分析,执行了几个预处理步骤。对于质量控制,排除了低质量和受损的细胞。然后进行归一化和log来统一数值范围。

方法:GeneCompass

GeneCompass架构

GeneCompass采用12层自注意力Transformer对输入嵌入进行编码,每层自注意力Transformer由12个heads组成。GeneCompass对2048基因token序列处理为768维,模型参数的数量达到1亿。在预训练和微调过程中,采用高斯误差线性单元(Gaussian Error Linear Units, GELUs)作为非线性激活,注意力层和密集层的dropout概率均为0.02。模型配置、数据加载和训练的代码由Pytorch和Huggingface Transformers库实现,用于模型配置、数据加载和训练。此外,作者扩展了库,使其能够输入可扩展的外部知识。

GeneCompass预训练和优化

GeneCompass将基因ID、表达值以及相应的先验知识(启动子、GRN、基因家族和共表达)整合在一起,编码细胞转录组。采用掩码语言建模策略在预训练过程中随机mask基因,包括基因的id、表达和先验知识。MLM已被证明可以帮助大型模型有效地学习更好的表示。详细地说,每个细胞随机选择15%的基因来mask。与已有工作相比,GeneCompass构建了一种多任务学习范式,同时基于embedding来预测被mask基因的ID和表达

使用MSE优化表达预测:
eq1
其中, n u n k n_{unk} nunk表示未知基因表达的数量, x ~ j ( i ) \widetilde{x}_{j}^{(i)} x j(i)是预测的基因表达,真实值是 x j ( i ) x_{j}^{(i)} xj(i)

交叉熵用于预测基因ID:
eq2
这里的基因ID是mask基因的rank。

预训练参数演示如下:使用AdamW优化器将学习率设置为线性衰减,10000个预热步骤,最大学习率为1e-3,使用基因填充策略,批大小为10。为了充分利用GPU的能力,Deepspeed被应用在代码框架中,因为它提供了优化,利用动态批处理、混合精度、模型并行性和内存优化等技术来加速大型神经网络的训练,同时减少它们的内存消耗,所有这些都在类似pytorch的API中。使用每节点带有8个Nvidia A800 GPU的4节点服务器,预训练过程在9天内完成。

消融实验与不同规模的数据

使用不同的细胞数进行预训练对GeneCompass进行消融研究。具体来说,对于人类单细胞转录组语料库预训练的GeneCompass,使用不同的细胞数 (即 5 × 1 0 4 , 5 × 1 0 5 , 5 × 1 0 6 , 5.5 × 1 0 7 5\times 10^{4},5\times 10^{5},5\times 10^{6},5.5\times 10^{7} 5×104,5×105,5×106,5.5×107)。通过小鼠单细胞转录组语料库预训练的GeneCompass,使用不同的细胞数 (即 5 × 1 0 4 , 5 × 1 0 5 , 5 × 1 0 6 , 4.5 × 1 0 7 5\times 10^{4},5\times 10^{5},5\times 10^{6},4.5\times 10^{7} 5×104,5×105,5×106,4.5×107)。通过人-小鼠单细胞转录组语料库预训练的GeneCompass,使用不同的细胞数,即前面两个列表相加。为了使GeneCompass完全收敛,对数据规模小的实验使用较大的epoch。

微调

GeneCompass是编码器解码器架构,编码器有12个Transformer层,这些层由预训练的权重初始化,解码器是任务特定层。微调模型用于各种下游任务,如细胞类型注释,剂量-反应预测和基因调控网络推断。由于任务范式的不同,不同下游任务的微调超参数可能会有所不同。为了公平比较,作者在不同数据集的相同任务中使用相同的超参数(可能不是最优的),以验证GeneCompass的鲁棒性。

细胞和基因embedding

768维的细胞嵌入是从<cls> token生成的,该token被添加到单细胞信息的开头以表示细胞个体。此外,GeneCompass可以将每个基因编码到768个维度,这些维度包含了单细胞转录组中基因的上下文信息。注意,细胞和基因嵌入都是从最后一层Transformer中获得的。

先验知识embedding

将启动子序列、基因共表达网络、基因家族信息、转录因子-靶基因调控关系等四种生物学知识纳入预训练模型。

启动子embedding:启动子是基因转录的激活信号。在GeneCompass中,每个基因的启动子由2500个碱基组成,包括转录起始位点(TSS)前的上游500个碱基和TSS后的下游2000个碱基。启动子序列在DNABert预训练模型上微调40 epochs,得到768维的启动子embedding。

启动子序列来自基因组注释文件。

共表达embedding:高共表达基因对是指在没有外界干扰的情况下,其转录表达谱在多种器官或组织中高度相关的基因。因此,高共表达基因在理论上是相关和相似的。通常我们希望编码后,共表达基因对之间的距离尽可能近,非共表达基因对之间的距离尽可能远。具体来说,作者计算了每个基因对的Pearson相关系数(PCC),然后选择PCC大于0.8的基因对进行gene2vec输出embedding。

基因家族embedding:同一基因家族中的基因具有相同的祖基因,因此基因在功能上是相似的。因此,当基因嵌入到特征空间时,同一家族的基因应该更接近,形成基因簇。然而,一个基因可能属于多个基因家族,并且基因家族之间可能存在重叠。为了处理这种复杂的关系,在构建训练样本时,作者使用gene2vec嵌入方法列出所有具有家族共属关系的基因作为基因对。Gene2vec可以根据基因家族的大小和所属的家族数自适应调整基因的频率,并在属于多个家族时充分考虑单个基因与其他基因之间的关系。作者使用了1645个人类基因家族和1539个小鼠基因家族进行嵌入。每个基因的嵌入是768维的。

GRN embedding:GRN是指细胞内或特定基因组内基因间相互作用形成的网络。在众多相互作用关系中,以基因间转录表达为基础的调控关系尤为重要。一般来说,一些基因可以通过转录表达来控制其他基因的表达水平。通常,GRN是一个有向图,每个基因代表一个节点,GRN中基因之间的控制关系用加权有向图来描述。目标是在已经发现的调控关系的基础上,尽可能完善调控网络,并了解更多基因之间未知的相互作用。在不同的组织细胞中,基因之间的调控关系不是静态的。目标是使具有更多调控关系的基因在嵌入空间中更加紧密。因此,作者从GRN中统计具有调控关系的基因对。这些基因对通过gene2vec方法进行嵌入。基因对之间的调控关系越多,在训练过程中出现的次数越多,编码后的关系越接近。每个基因的嵌入是768维的。

下游任务方法

单物种的细胞类型注释

微调的目标是通过利用GeneCompass生成的细胞嵌入来识别每个细胞的类型。具体来说,在class token添加一个全连接层,用于预测细胞类型。预测的细胞类型概率和GT之间的交叉熵损失被优化得尽可能低。

对于人类特定的任务,作者在人类多发性硬化症(hMS)、人类肺(hLung)和人类肝脏(hLiver)数据集上对GeneCompass和基于Transformer的方法Geneformer进行了基准测试。对于小鼠特异性任务,在小鼠脑(mBrain)、小鼠肺(mLung)和小鼠胰腺(mp胰腺)数据集上比较了经过和未经过预训练的GeneCompass结果。同时,在小鼠胰腺(mpPancreas)数据集上对GeneCompass与TOSICA方法进行了基准测试。

GRN预测

这项任务包括预测基因之间的相互作用和关系,以深入了解基因如何共同控制细胞过程。作者使用DeepSEM框架来评估GeneCompass的推断基因调控网络(GRN)的性能。使用scGPT提供的Immune Human数据集,从预训练的GeneCompass模型中生成基因嵌入。

对于GRN预测。在DeepSEM上应用GeneCompass输出的基因embedding。对于评估,使用已知的GRN作为ground truth。

细胞对药物及其剂量的反应预测

这是促进药物开发的关键。CPA被用于该任务,与GRN类似,模型产生的基因embedding被添加到CPA中,以促进CPA的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269634.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

E19.【C语言】练习:数组

有序序列合并 描述 输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤val≤30000 输入描述&#xff1a; 输入包含三行&#xff0c; 第一行包含两个正整数n, m&#xff0c;用空…

VSCode 解决 pylint 报错 No name QWidget in module PyQt5.QtWidgets

问题 启用了 VSCode 的 Pylint 插件, 即便 Python 环境中安装了 PyQt5, 也无法正确解析 PyQt5 的导入 PyQt5 底层代码是用 C/C 写的, pylint 默认不会深入解析 pylint doesn’t load any C extensions by default, because those can run arbitrary code. 解决 修改 Settings…

k8s学习--k8s集群部署kubesphere的详细过程

文章目录 kubesphere简介k8s群集部署kubespere环境准备工作一、配置nfs二、配置storageclass三、kubesphere开启服务(devops) kubesphere简介 下面是官方文档描述 KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统&#xff0c;完全开源&#xff0c;支持多…

免费的批量自动处理工具,让重复工作一键搞定

对于一些重复的工作&#xff0c;大部分情况下我们可以借助工具批量自动处理&#xff0c;无需手动一个一个去操作。小编今天就和大家分享几款可以一键帮我们搞定重复任务的免费工具。 1.TinyTask&#xff1a;解放双手的自动化神器 TinyTask是一款小巧但功能强大的自动化工具&a…

如何用AP525采集【车机播放的扫频信号】的频响曲线

一.测试目的 车机播放20~20khz的扫频信号&#xff0c;这个信号从功放的输出端&#xff08;eg. CH1&#xff09;接入到AP525的模拟输入端&#xff08;eg. Analog input&#xff09;,通过APx500 软件分析采集回来的扫频信号的频响曲线 二.APx500输出输入配置 三.生成扫频信号 1…

习题2.25~2.26

没啥需要解释的&#xff0c;直接贴代码和执行结果 2.25 (def x (list (list 7))) (first (first x) )(def x (list 1 3 (list 5 7) 9)) (first (rest (first (rest (rest x)))))(def x (list 1 (list 2 (list 3 (list 4 (list 5 (list 6 7) )))))) (first (rest (first (rest (…

magento2 安装win环境和linux环境

win10 安装 安装前提&#xff0c;php,mysql,apach 或nginx 提前安装好 并且要php配置文件里&#xff0c;php.ini 把错误打开 display_errorsOn开始安装 检查环境 填写数据库信息 和ssl信息&#xff0c;如果ssl信息没有&#xff0c;则可以忽略 填写域名和后台地址&#xff0…

已解决丨怎么快速的让IP地址实现HTTPS访问?

要快速让IP地址实现HTTPS访问&#xff0c;可以遵循以下简洁步骤&#xff1a; 1. 确认公网IP地址 确保你拥有一个固定的公网IP地址&#xff0c;因为HTTPS访问需要通过互联网上的公网IP进行。 2. 选择证书颁发机构&#xff08;CA&#xff09; 选择一个受信任的证书颁发机构&a…

波特率和比特率的区别联系【理解】

波特率&#xff08;Baud rate&#xff09;&#xff1a;表示单位时间内载波调制状态变化的次数 &#xff0c;单位为波特(Baud)&#xff1b; 【值得注意的是】单位“波特”本身就已经是代表每秒的调制数&#xff0c;不能用“波特每秒”&#xff08;Baud per second&#xff09;为…

大疆创新2025校招内推

大疆2025校招-内推 一、我们是谁&#xff1f; 大疆研发软件团队&#xff0c;致力于把大疆的硬件设备和大疆用户紧密连接在一起&#xff0c;我们的使命是“让机器有温度&#xff0c;让数据会说话”。 在消费和手持团队&#xff0c;我们的温度来自于激发用户灵感并助力用户创作…

代理服务器是什么?它的工作原理是什么?

在浩瀚的网络世界中&#xff0c;代理服务器作为连接用户与目标服务器的桥梁&#xff0c;扮演着至关重要的角色。它不仅能够优化网络访问速度&#xff0c;还能增强数据安全性&#xff0c;保护用户隐私。那么&#xff0c;代理服务器究竟是如何工作的呢&#xff1f;本文将深入解析…

【C++修炼之路 第五章】模拟实现 string 类

开发日志&#xff1a; /* * 开发日志 * 1、基本 string 类框架&#xff1a;string 域&#xff08;自定义命名空间&#xff09; 私有成员 * 2、基本函数&#xff1a;一般构造 拷贝构造 析构 以下分组实现一些 string 类常见常用的函数 * 3、基本访问操作&#xff1a;c_st…

10 VUE Element

文章目录 VUE1、概述2、快速入门3、Vue 指令4、生命周期5、案例 Elemant1、快速入门2、Element 布局3、常用组件-案例 VUE 1、概述 Vue 是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写基于MVVM(Model-View-ViewModel)思想&#xff0c;实现数据…

EB Tresos 基于S32K3芯片 ICU模块实现gpio外部中断配置[后续更新实现icu模块的其他功能]

环境&#xff1a;eb tresos 27.0.1 port 模块配置&#xff1a; 选择一个具有erq功能的引脚并配置为erq功能。如下我选择的是 PTB0 -EIRQ[8] - SIUL2_EXT_IRQ_8_15_ISR Platform 模块配置 在这个模块中配置中断的开关以及中断句柄 ICU模块配置 具体配置参考博客&#xff1a;…

一文总结代理:代理模式、代理服务器

概述 代理在计算机编程领域&#xff0c;是一个很通用的概念&#xff0c;包括&#xff1a;代理设计模式&#xff0c;代理服务器等。 代理类持有具体实现类的实例&#xff0c;将在代理类上的操作转化为实例上方法的调用。为某个对象提供一个代理&#xff0c;以控制对这个对象的…

本地部署Graphhopper路径规划服务(graphhopper.sh启动版)

文章目录 文章参考源码获取一、配置Java环境变量二、配置Maven环境变量三、构建graphhopper步骤1. 下载数据2. 配置graphhopper配置文件config-example.yml3. 在项目中启动命令行执行./graphhopper.sh build3.1|、遇到的问题3.1.1、pom.xml中front-maven-plugin-无法下载npm6.1…

linux nginx 命令记录,和转发

nginx: 查看配置文件&#xff1a;sudo find / -name nginx.conf 配置文件&#xff1a;/etc/nginx/nginx.conf 检查nginx.conf文件正确性 nginx -t -c /path/to/nginx.conf 或者 有nginx命令执行 nginx -t 查找nginx 可执行文件&#xff1a;which nginx /usr/sbin/nginx 安装Ng…

C语言中内存四区的本质分析

数据类型本质分析 1 数据类型的概念 “类型”是对数据的抽象 类型相同的数据有相同的表示形式、存储格式以及相关的操作 程序中使用的所有数据都必定属于某一种数据类型 2 数据类型的本质 数据类型可理解为创建变量的模具&#xff1a;是固定内存大小的别名。 数据类型的作…

【cuda】在老服务器上配置CUDA+cmake开发环境

在老服务器上配置CUDA+cmake开发环境 服务器x86_64,系统是centos8,cmake版本是2.8.10 背景 不能更换服务器系统无法下载CUDA安装包解决思路 使用可以至此CUDA开发的较老的cmake直接移植CUDA环境配置环境中遇到的问题 服务器无法编译cmake移植CUDA编译器及部分库,代码无法…

vue3 使用Mock

官网: http://mockjs.com/ 安装 npm install mockjs -Dsteps1: main.js 文件引入 import /api/mock.jssteps2: src/api/mock.js import Mock from mockjs import homeApi from ./mockData/home /*** 1.拦截的路径:mock拦截了正常NetWork/网络请求,数据正常响应* 2.方法* …