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://www.mzph.cn/diannao/51039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PlatformIO+ESP32S3学习:通过WIFI与和风天气API获取指定地点的天气情况并显示

1. 硬件准备 你只需要有一个ESP32S3开发板。我目前使用的是&#xff1a; 购买地址&#xff1a;立创ESP32S3R8N8 开发板 2. 和风天气API 2.1. 和风天气介绍 和⻛天气是中国领先的气象科技服务商、国家高新技术 企业&#xff0c;致力于运用先进气象模型结合大数据、人工智能 技术…

成为git砖家(2): gitk 介绍

大家好&#xff0c;我是白鱼。这篇我们介绍 gitk。 gitk 和 fork 界面对比 当我们在 macOS 上执行 brew install git 后&#xff0c; 得到了 git 命令行工具。 然而这条命令并不会安装 gitk. gitk 是 git 自带的图形化界面工具&#xff0c;也可以称为“穷人版 fork”&#xf…

美国演员工会和电视广播艺人工会针对电子游戏发行商的罢工于 7 月 26 日举行

美国演员工会&#xff08;SAG-AFTRA&#xff09;正在对电子游戏发行商进行罢工&#xff0c;以保护演员不被人工智能所利用。经过一年半的谈判&#xff0c;双方仍未达成协议。该工会希望确保人工智能不会被用作利用大型游戏中演员的手段。 他们在网站上声明&#xff0c;“从事电…

搭建自己的金融数据源和量化分析平台(三):读取深交所股票列表

深交所的股票信息读取比较简单&#xff1a; 看上图&#xff0c;爬虫读取到下载按钮的链接之后发起请求&#xff0c;得到XLS文件后直接解析就可以了。 这里放出深交所爬虫模块的代码&#xff1a; # -*- coding: utf-8 -*- # 深圳交易所爬虫 import osimport pandas as pd imp…

fastapi教程(四):做出响应

请求体现的是后端的数据服务能力&#xff0c;而响应体现的是后端向前端的数据展示能力。 一&#xff0c;一个完整的web响应应该包含哪些东西 一个完整的 Web 响应通常包含以下几个主要部分&#xff1a; 1. 状态行- HTTP 版本- 状态码- 状态消息例如&#xff1a;HTTP/1.1 200…

全开源收银系统源码-支付通道

1.收银系统开发语言 核心开发语言: PHP、HTML5、Dart后台接口: PHP7.3后合管理网站: HTML5vue2.0element-uicssjs线下收银台&#xff08;安卓/PC收银、安卓自助收银&#xff09;: Dart3框架&#xff1a;Flutter 3.19.6助手: uniapp商城: uniapp 2.支付通道 智慧新零售收银系统…

一下午连续故障两次,谁把我们接口堵死了?!

唉。。。 大家好&#xff0c;我是程序员鱼皮。又来跟着鱼皮学习线上事故的处理经验了喔&#xff01; 事故现场 周一下午&#xff0c;我们的 编程导航网站 连续出现了两次故障&#xff0c;每次持续半小时左右&#xff0c;现象是用户无法正常加载网站&#xff0c;一直转圈圈。 …

小白学习webgis的详细路线

推荐打开boss直聘搜索相关岗位&#xff0c;查看岗位要求&#xff0c;对症下药是最快的。 第一阶段&#xff1a;基础知识准备 计算机基础 操作系统&#xff1a;理解Windows、Linux或macOS等操作系统的基本操作&#xff0c;学会使用命令行界面。网络基础&#xff1a;掌握TCP/I…

平价不入耳运动耳机哪款最好?五款回购榜优品种草

许多有健身运动习惯的朋友在选择耳机时会优先考虑不入耳耳机&#xff0c;因为它佩戴舒适&#xff0c;稳固性和安全性更高&#xff0c;不仅在运动时不会轻易掉落&#xff0c;还能够方便我们在进行户外运动时接收外界的声音。那么&#xff0c;平价不入耳运动耳机哪款最好&#xf…

docker-compose 根据yaml拉取镜像出问题

在学习go微服务时&#xff0c;用docker-compose启动nacos以及对应的mysql时出现上面的问题&#xff0c; 使用的yaml如下 version: "3.8" services:nacos:image: nacos/nacos-server:${NACOS_VERSION}container_name: nacos-standalone-mysqlenv_file:- ../env/cust…

javaEE(1)

一. Web开发概述 Web开发:指的是从网页中向后端程序发送请求,与后端程序进行交互 Web服务器:是一种软件,向浏览器等Web客户端提供文档等数据,实现数据共享,它是一个容器,是一个连接用户和程序之间的中间键 二. Web开发环境搭建 我们要实现前后端交互,首先需要中间键Web服务…

重生之“我打数据结构,真的假的?”--6.排序

1.排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的⼤⼩&#xff0c;递增或递减的排列起来的 操作。 1.1排序分类 2.排序算法实现 2.1插入排序 直接插⼊排序是⼀种简单的插⼊排序法&#xff0c;其基本思想是&#…

【Nginx】Windows生成ssl证书,Nginx反向代理HTTPS

下载 OpenSSL 环境 Windows、Linux, 证书我是在Windows上生成的自签证书。 https://slproweb.com/products/Win32OpenSSL.htmlWin64 OpenSSL v3.3.1 EXE&#xff08;这个&#xff09; | MSISelect Additional Tasks页面勾选 The OpenSSL binaries (/bin) directory 然后将Op…

一篇文章学完Python基础

1. 字符串 str1 "Hello" str2 " World" print(str1 str2) # 输出&#xff1a;HelloWorld 1.1 字符替换 text "Hello, World!" new_text text.replace("World", "Python") print(new_text) # 输出&#xff1a;…

2024第八届自然语言处理与信息检索国际会议 (NLPIR 2024)即将召开!

2024第八届自然语言处理与信息检索国际会议 (NLPIR 2024)将于2024年12月13-15日在日本冈山的冈山大学举行。NLPIR 2024将为自然语言处理与信息检索领域的专家学者提供一个交流与合作的平台&#xff0c;推动该领域的学术进步和技术创新。同时&#xff0c;本次会议也将为相关企业…

Golang 高性能 Websocket 库 gws 使用与设计(一)

前言 大家好这里是&#xff0c;白泽&#xff0c;这期分析一下 golang 开源高性能 websocket 库 gws。 视频讲解请关注&#x1f4fa;B站&#xff1a;白泽talk 介绍 gws&#xff1a;https://github.com/lxzan/gws &#xff5c;GitHub &#x1f31f; 1.2k&#xff0c;高性能的 …

0724,select +tcp 聊天室喵

目录 TCP协议喵 723__01&#xff1a;使用select实现一个基于UDP的一对一即时聊天程序。 001: 002: TIMEWAI OR BUG 721作业&#xff1a; 01&#xff1a;在一对一聊天的基础上&#xff0c;使用select实现一对多的回显服务。&#xff08;回显服务即接收到客户端发送的数…

Pyppeteer 的使用

puppeteer 是基于Node.js 开发的一个工具, 有了它&#xff0c;我们可以利用 JavaScript 控制 Chrome 浏览器的一些操作。当然&#xff0c; puppeteer 也可以用于网络爬虫&#xff0c;其 API 及其完善&#xff0c;功能非常强大。 Pyppeteer 其实是 puppeteer 的 python 实现&…

.net 连接达梦数据库开发环境部署

.net 开发环境部署 1. 环境准备 测试工具 Visual Studio2022 数据库版本 dm8 2. 搭建过程 1 &#xff09;创建新项目 2 &#xff09;选择创建空项目 3 &#xff09;配置新项目 4 &#xff09;右键 DM1 新建一个项 5 &#xff09;加 载 驱 动 &#xff0c; 新 建 …

0722_驱动3 地址映射驱动点灯

一、为什么需要地址映射 在芯片手册上查看到的地址属于物理地址&#xff0c;在硬件层 在内核空间地址属于虚拟地址&#xff0c;在内核层 在驱动中&#xff0c;操作的是虚拟地址 需要将物理地址《--mmu内存管理单元--》虚拟地址映射 二、映射API接口 void *ioremap(unsigned lon…