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

news2025/1/15 10:32:16


–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.coloradmin.cn/o/2276956.html

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

相关文章

微信原生小程序自定义封装组件(以导航navbar为例)

封装 topnav.js const App getApp(); Component({// 组件的属性列表properties: {pageName: String, //中间的titleshowNav: { //判断是否显示左上角的按钮 type: Boolean,value: true},showHome: { //判断是否显示左上角的home按钮type: Boolean,value: true},showLocat…

day06_Spark SQL

文章目录 day06_Spark SQL课程笔记一、今日课程内容二、DataFrame详解(掌握)5.清洗相关的API6.Spark SQL的Shuffle分区设置7.数据写出操作写出到文件写出到数据库 三、Spark SQL的综合案例(掌握)1、常见DSL代码整理2、电影分析案例…

HarmonyOS NEXT应用开发边学边玩,从零实现一影视APP(四、最近上映电影滚动展示及加载更多的实现)

在HarmonyOS NEXT开发环境中,我们可以使用多种组件和库来构建丰富且交互友好的应用。本文将展示如何使用HarmonyOS NEXT框架和nutpi/axios库,从零开始实现一个简单的影视APP的首页,主要关注最近上映电影的滚动展示及加载更多功能的实现。 安装…

快速、可靠且高性价比的定制IP模式提升芯片设计公司竞争力

作者:Karthik Gopal,SmartDV Technologies亚洲区总经理 智权半导体科技(厦门)有限公司总经理 无论是在出货量巨大的消费电子市场,还是针对特定应用的细分芯片市场,差异化芯片设计带来的定制化需求也在芯片…

基础入门-抓包技术HTTPS协议APP小程序PC应用Web证书信任转发联动

知识点: 1、抓包技术-Web应用-http/s-Burp&Yakit 2、抓包技术-APP应用-http/s-Burp&Yakit 3、抓包技术-PC端应用-http/s-Burp&Yakit 4、抓包技术-WX小程序-http/s-Burp&Yakit 5、抓包技术-软件联动-http/s-Proxifier 6、抓包技术-通用方案-http/s-R…

贪心算法详细讲解(沉淀中)

文章目录 1. 什么是贪心算法?(贪婪鼠目寸光)经典例题1.1.1 找零问题1.1.2最小路径和1.1.3 背包问题 2.贪心算法的特点2.1 证明例1 3.学习贪心的方向心得体会 1. 什么是贪心算法?(贪婪鼠目寸光) 贪心策略&a…

SQL面试题2:留存率问题

引言 场景介绍: 在互联网产品运营中,用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标,直接影响产品的可持续发展和商业价值。通过分析这些数据,企业可以了解用户行为,优化产品策略,提升用户体验…

学会使用开源软件jclasslib 字节码文件的组成 详解

应用场景 1 应用场景 2 学习路线 以正确的姿势打开文件 字节码文件的组成 玩转字节码常用工具 以正确的姿势打开文件 开源软件 jclasslib github 地址 https://github.com/ingokegel/jclasslib 工具使用 字节码文件的组成 基本信息 常量池 字段 方法 属性 详解 魔数 主副版…

primitive 的 Appearance编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体,Cesium.RectangleGeometry:几何体,Rectangle:矩形 let rectGeometry new…

详情页 路由传值

路由传值获取参数 渲染数据 主页面 <template><div class"km"><div v-for"item in items" :key"item.id"><div class"title-km" ><img :src"item.imageUrl" alt"Image" class"…

OpenCV基础:矩阵的创建、检索与赋值

本文主要是介绍如何使用numpy进行矩阵的创建&#xff0c;以及从矩阵中读取数据&#xff0c;修改矩阵数据。 创建矩阵 import numpy as npa np.array([1,2,3]) b np.array([[1,2,3],[4,5,6]]) #print(a) #print(b)# 创建全0数组 eros矩阵 c np.zeros((8,8), np.uint8) #prin…

解锁未来情感科技:AI 机器人 Ropet 搭载的前沿智能黑科技

2025年的国际消费电子产品展览会&#xff08;CES&#xff09;上&#xff0c;一只可爱的“毛绒玩具”成了全场焦点。 当然&#xff0c;这并不是一个单纯的玩偶&#xff0c;而是和《超能陆战队》的大白一样温暖的陪伴机器人。 相信有很多人和小编一样&#xff0c;当年看完《超能…

软件测试 —— Selenium常用函数

软件测试 —— Selenium常用函数 操作测试对象点击/提交对象 click()模拟按键输入 send_keys("")清除文本内容 clear() 模拟用户键盘行为 Keys包示例用法 获取文本信息 textget_attribute("属性名称") 获取当前页面标题 title获取当前页面的 url current_u…

【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS

文章目录 1. 概述2. 网络传输安全2.1.什么是中间人攻击2.2. 加密和签名2.2.1.加密算法2.2.2.摘要2.2.3.签名 2.3.数字证书2.3.1.证书的使用2.3.2.根证书2.3.3.证书链 2.4.HTTPS 1. 概述 本篇主要是讲解讲一些安全相关的基本知识&#xff08;如加密、签名、证书等&#xff09;&…

服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例

服务器数据恢复环境&故障&#xff1a; EMC Unity 400存储连接了2台硬盘柜。2台硬盘柜上一共有21块硬盘&#xff08;520字节&#xff09;。21块盘组建了2组RAID6&#xff1a;一组有11块硬盘&#xff0c;一组有10块硬盘。 在存储运行过程中&#xff0c;管理员误操作删除了 2组…

python 轮廓 获取环形区域

目录 效果图&#xff1a; 代码&#xff1a; 效果图&#xff1a; 代码&#xff1a; import cv2 import numpy as np# 读取图像 image cv2.imread(rE:\project\jijia\tools_jijia\img_tools\ground_mask.jpg, cv2.IMREAD_GRAYSCALE) # 二值化图像 # 二值化图像 _, binary cv…

使用 WPF 和 C# 将纹理应用于三角形

此示例展示了如何将纹理应用于三角形,以使场景比覆盖纯色的场景更逼真。以下是为三角形添加纹理的基本步骤。 创建一个MeshGeometry3D对象。像往常一样定义三角形的点和法线。通过向网格的TextureCoordinates集合添加值来设置三角形的纹理坐标。创建一个使用想要显示的纹理的 …

算法妙妙屋-------2..回溯的奇妙律动

回溯算法是一种用于系统性地搜索和解决问题的算法&#xff0c;它以深度优先搜索&#xff08;DFS&#xff09;为基础&#xff0c;用来探索所有可能的解决方案。通过递归地尝试候选解并在必要时回退&#xff08;即“回溯”&#xff09;&#xff0c;它能够高效地解决许多涉及组合、…

如何在Jupyter中快速切换Anaconda里不同的虚拟环境

目录 介绍 操作步骤 1. 选择环境&#xff0c;安装内核 2. 注册内核 3. 完工。 视频教程 介绍 很多网友在使用Jupyter的时候会遇到各种各样的问题&#xff0c;其中一个比较麻烦的问题就是我在Anaconda有多个Python的环境里面&#xff0c;如何让jupyter快速切换不同的Pyt…

《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建

目录 1 点云建图的流程 2 前端实现 2.1 前端流程 2.2 前端结果 3 后端位姿图优化与异常值剔除 3.1 两阶段优化流程 3.2 优化结果 ① 第一阶段优化结果 ② 第二阶段优化结果 4 回环检测 4.1 回环检测流程 ① 遍历第一阶段优化轨迹中的关键帧。 ② 并发计算候选回环对…