单细胞组学大模型(8)--- scGenePT,scGPT和GenePT的结合,实验数据和文本数据的交融模型


–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损失最低的模型作为最佳模型。

在这里插入图片描述

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

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

相关文章

浅尝Appium自动化框架

浅尝Appium自动化框架 Appium自动化框架介绍Appium原理Appium使用安装平台驱动实战 坑 Appium自动化框架介绍 Appium 是一个开源的自动化测试框架,最初设计用于移动应用的测试,但现在它也扩展了对桌面端应用的支持。Appium 使得自动化测试变得更加简单&…

2024年度漏洞态势分析报告,需要访问自取即可!(PDF版本)

2024年度漏洞态势分析报告,需要访问自取即可!(PDF版本),大家有什么好的也可以发一下看看

nvim 打造成可用的IDE(2)

上一个 文章写的太长了, 后来再写东西 就一卡一卡的,所以新开一个。 主要是关于 bufferline的。 之前我的界面是这样的。 这个图标很不舒服有。 后来发现是在这里进行配置。 我也不知道,这个配置 我是从哪 抄过来的。 测试结果&#xff1…

【hadoop学习遇见的小问题】centos常见配置 添加组用户权限 修改主机名等

1、指定静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0修改BOOTPROTO为static BOOTPROTOstatic IPADDR192.168.80.145 NETMASK255.255.255.0 GATEWAY192.168.80.2IPADDR、NETMASK用ifconfig命令即可查看 GATEWAY如何查看(编辑—虚拟网络编辑器—上面选择NA…

口碑很好的国产LDO芯片,有哪些?

在几乎任何一个电路设计中,都可能会使用LDO(低压差线性稳压器)这个器件。 虽然LDO不是什么高性能的IC,但LDO芯片市场竞争异常激烈。最近几年,诞生了越来越多的精品国产LDO,让人看得眼花缭乱。 业内人士曾经…

大模型训练(2):内存开销

模型训练中的存储消耗 1 存储分类 首先,在大模型训练的过程中,GPU都需要存什么内容:存储主要分为两大块:Model States和Residual States Model State:指和模型本身息息相关的,必须存储的内容&#xff0c…

【数据结构高阶】B-树

目录 一、常见的搜索结构 二、B树 2.1 B树的概念 2.2 B树插入数据的分析 2.3 B树的性能分析 2.4 模拟实现B树 2.4.1 B树节点的定义 2.4.2 B树数据的查找 2.4.3 B树节点的数据插入 2.4.4 B树的遍历 2.4.5 模拟实现B树实现的完整代码 三、B树 3.1 B树的概念 3.2 B树…

java项目之房屋租赁系统源码(springboot+mysql+vue)

项目简介 房屋租赁系统实现了以下功能: 房屋租赁系统的主要使用者分为: 系统管理:个人中心、房屋信息管理、预约看房管理、合同信息管理、房屋报修管理、维修处理管理、房屋评价管理等模块的查看及相应操作; 房屋信息管理&#…

maven的简单介绍

目录 1、maven简介2、maven 的主要特点3、maven的下载与安装4、修改配置文件5、私服(拓展) 1、maven简介 Maven 是一个广泛使用的项目管理和构建工具,主要应用于 Java 项目。Maven 由 Apache 软件基金会开发和维护,它提供了一种简洁且一致的方法来构建、…

搭建prometheus+grafana监控系统抓取Linux主机系统资源数据

Prometheus 和 Grafana 是两个非常流行的开源工具,通常结合使用来实现监控、可视化和告警功能。它们在现代 DevOps 和云原生环境中被广泛使用。 1. Prometheus 定义:Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发&am…

【YOLOv5】源码(train.py)

train.py是YOLOv5中用于模型训练的脚本文件,其主要功能是读取配置文件、设置训练参数、构建模型结构、加载数据、训练/验证模型、保存模型权重文件、输出日志等 参考笔记: 【YOLOv3】源码(train.py)_yolo原始代码-CSDN博客 【y…

MySQL存储引擎、索引、索引失效

MySQL Docker 安装 MySQL8.0,安装见docker-compose.yaml 操作类型 SQL 程序语言有四种类型,对数据库的基本操作都属于这四种类,分为 DDL、DML、DQL、DCL DDL(Dara Definition Language 数据定义语言),是负责数据结构定义与数据…

如何看待Akamai 退出中国市场进行转型?

Akamai宣布退出中国市场并进行战略转型,这一举措引发了广泛的关注和讨论。从多个角度来看,这一决策既反映了Akamai自身的业务调整需求,也与中国市场环境的变化密切相关。 Akamai的退出是其全球战略调整的一部分。Akamai近年来一直在推进业务…

【Linux】网络层

目录 IP协议 协议头格式 网段划分 2中网段划分的方式 为什么要进行网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公有IP地址 路由 IP协议 在通信时,主机B要把数据要给主机C,一定要经过一条路径选择,为什么经过路由器G后&…

多线程面试相关

线程基础知识 线程与进程的区别 并行和并发的区别 创建线程的方式 Runnable和Callable有什么区别 run()方法和start()方法的区别 小结 线程包含哪些状态,各个状态之间如何变化 线程按顺序执行 notify()和notifyAll()的区别 Java中的wait方法和sleep方法的不同 如何…

Unity + Firebase + GoogleSignIn 导入问题

我目前使用 Unity版本:2021.3.33f1 JDK版本为:1.8 Gradle 版本为:6.1.1 Firebase 版本: 9.6.0 Google Sign In 版本为: 1.0.1 问题1 :手机点击登录报错 apk转化成zip,解压,看到/lib/armeabi-v…

【Rust自学】11.10. 集成测试

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.10.1. 什么是集成测试 在Rust里,集成测试完全位于被测试库的外部。集成测试…

【Word_笔记】Word的修订模式内容改为颜色标记

需求如下:请把修改后的部分直接在原文标出来,不要采用修订模式 步骤1:打开需要转换的word后,同时按住alt和F11 进入(Microsoft Visual Basic for Appliations) 步骤2:插入 ---- 模块 步骤3&…

深入Android架构(从线程到AIDL)_21 IPC的Proxy-Stub设计模式03

目录 3、包裝IBinder接口 -- 使用Proxy-Stub设计模式 EIT造型的双层组合 4、 谁来写Proxy及Stub类呢? -- 地头蛇(App开发者)自己写 范例 定义一个新接口: IPlayer 撰写一个Stub类: PlayerStub 撰写mp3Binder类 撰写mp3RemoteService类 3、…

数据在内存的存储

数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 1字节 打印%c short //短整型 2字节 打印%hd int //整形 4字节 打印%d long long int //长整型 4/8字节 打印%ld l…