LangCell:用于细胞注释的语言-细胞预训练模型

细胞身份包括细胞的各种语义,包括细胞类型、pathway信息、疾病信息等。从转录组数据中了解细胞身份,例如注释细胞类型,是一项基础任务。由于语义是由人类赋予的,如果没有cell-label pair提供监督信号,AI模型很难有效地执行细胞身份识别。目前用于该任务的预训练语言模型(PLM)仅在单一模态–转录组学数据上进行训练。而且,它们必须针对标签不一致的数据集进行微调。

LangCell在预训练阶段构建单细胞数据和自然语言的统一表示,使模型能够直接纳入与细胞身份相关的见解。LangCell利用带有细胞身份信息的text来深入理解知识。

来自:LangCell: Language-Cell Pre-training for Cell Identity Understanding, ICML, 2024

目录

  • 背景概述
    • 相关工作
  • 方法
    • 数据预处理
    • 模型架构
    • 预训练
      • 掩蔽基因建模
      • 细胞-细胞对比学习
      • 细胞-文本对比学习
      • 细胞-文本matching
    • 下游任务
      • 零样本分类
      • 微调
  • 数据集构建与预训练
  • 比较LangCell和Cell2Sentence

背景概述

scRNA-seq数据分析中,从细胞类型、pathway信息和疾病信息等多个角度理解细胞身份至关重要。类型注释和批次整合等任务已成为该领域的基石。预训练语言模型(PLM)最近在NLP取得了成功。然而,最近的scLLM依然仅基于测序信息使用PLM分析单细胞数据。这些模型利用Transformer来学习数百万个scRNA-seq样本。尽管取得了成功,但当前的细胞表示模型面临以下挑战:

  • 目前的模型框架仅依赖于自监督学习方法,如mask建模–用于捕捉基因共表达关系。然而,由于缺乏对人类专家知识的有效利用,模型在学习细胞表征时不能专注于理解细胞身份。这限制了模型的表示能力。
  • 由于细胞类型其实是人类定义的,如果不对"单细胞-文本标签pair"进行微调,现有模型不可能有效地执行细胞身份识别。用于微调的数据量和质量都会显著影响模型在特定任务中的性能。存在一种困难:研究新疾病或细胞亚型通常获取标签是高成本的,因此需要小样本或零样本方法。

作者认为,高质量编码scRNA-seq数据并将其与多视角的文本描述对齐,可以显著增强文本和单细胞数据之间的有意义理解。这种整合使模型能够像人一样有语义地将知识从熟悉的类别扩展到未知的类别。LangCell是一个语言细胞预训练模型,可以将scRNA-seq数据的特征空间与文本信息无缝整合。

作者构建了一个细胞文本数据集scLibrary,包含2750万个scRNA-seq条目及其文本描述。具体而言,作者从CELLxGENE获得了原始scRNA-seq数据和相应的元数据。然后选择了细胞身份的八个关键方面,这些方面可能包含基本的见解,包括细胞类型、发育阶段和疾病信息,并从OBO Foundry获得尽可能全面的描述。

随后,作者从NLP和CV领域迁移了一些关键见解,并设计了一套在细胞文本数据上有效的多任务协同预训练方法。具体来说,作者在预训练阶段介绍了四项任务。掩蔽基因建模(MGM,mask gene model)和细胞-细胞对比学习(C-C,cell-cell contrastive learning)以增强细胞表示。此外,使用细胞-文本对比学习(C-T,cell-text contrastive learning)和细胞-文本匹配(CTM,cell-text matching)来训练模型,以识别细胞数据和文本数据之间的联系。

LangCell在零样本、少样本和全数据集场景中的一系列细胞身份理解任务上实现了SOTA性能。它解决了诸如细胞类型注释和批次整合之类的经典任务。作为第一个能够进行零样本注释的模型,LangCell在零样本场景中表现出出色的性能,在大多数情况下超过了少样本的基线方法(图1a)。

fig1

  • 图1:a.零样本和少样本细胞类型注释。b.PBMC10K 中的实体embeding UMAP,LangCell 对齐了单细胞和文本嵌入。

相关工作

scRNA-seq数据表示
PLM为更好的scRNA-seq数据表示提供了潜力。scBERT、Geneformer、scGPT和scFoundation是基于Transformer的模型,它们在从100多万到5000万个样本的广泛scRNA-seq数据集上进行预训练,并在细胞类型注释、跨生物任务的迁移学习、药物反应预测和其他任务中展示了先进的能力。BioTranslator弥合了自然语言和scRNA-seq数据之间的差距。然而,它对MLP编码scRNA-seq数据的依赖未能捕捉到转录组的复杂性。

科学数据中的多模态
科学数据,如分子、蛋白质和scRNA-seq数据,在视觉上不如图像直观,因此需要多模态整合或对齐方法统一表示。作者认为,在scRNA-seq数据和文本信息之间建立联系至关重要。

方法

数据预处理

首先提供原始scRNA-seq数据作为计数矩阵。假设有 m m m个细胞和 n n n个基因,则计数矩阵表示为 A ∈ N m × n A∈\N^{m×n} ANm×n。作者采用了rank-value编码方法,用于将计数矩阵转换为类似于自然语言的序列数据。首先,分别对每个细胞的基因表达进行归一化,以削弱测序深度的影响,得到 A ′ A' A。然后,找到 A ′ A' A每列的非零中值 β ∈ R n β∈\R^{n} βRn作为每个基因的中值表达,并用 β β β归一化 A ′ A' A每一列得到 A ′ ′ A'' A′′。即:
eq1

与常规预处理的不同之处:与 A ′ A' A相比, A ′ ′ A'' A′′消除了整体表达水平带来的差异,其值可以反映一个基因在一个细胞中表达以及在所有细胞中的相对水平。例如,一些housekeeping基因可能很容易具有更高的绝对表达,但这并不一定表明该基因在该细胞中具有特别值得注意的高表达。基于 A ′ ′ A'' A′′,根据每个细胞中表达的基因的相对表达对其进行排序,再获得该细胞的基因序列。值得注意的是,在对大规模预训练数据集进行统计时,可以获得更通用的 β β β,并在所有后续模型应用中使用该 β β β

模型架构

fig2

  • 图2:LangCell架构。对于每个包含scRNA-seq数据和元数据pair的输入:(1)在预处理过程中,将scRNA-seq数据转换为按相对表达水平降序排列的基因序列,并使用OBO Foundry从元数据中获得细胞的多视角文本描述。(2) 使用细胞编码器 f 和文本编码器的单模态 g1 来获得细胞和文本的嵌入,并且使用文本编码器的多模态 g2 来计算matching得分 p c , t p_{c,t} pc,t。(3)通过四个损失函数的联合优化进行预训练。其中,掩蔽基因建模(MGM)和细胞-细胞对比学习(C-C)旨在增强单细胞表征。相反,细胞-文本对比学习(C-T)和细胞-文本匹配(CTM)旨在训练模型理解单细胞和文本数据之间的联系。

LangCell包含细胞编码器和文本编码器:

  • 细胞编码器:使用预训练的Geneformer来初始化细胞编码器,该编码器将连续的细胞输入编码为embedding序列。值得注意的是,作者在序列的开头添加了一个[CLS] token,其嵌入通过线性投影为细胞嵌入。
  • 文本编码器:该编码器有两种编码模式,单模态和多模态。对于单模态文本编码,它相当于BERT。对于多模态编码,作者在注意力层中的每个自注意模块之后添加一个可插入的交叉注意模块,以通过线性层计算联合嵌入和细胞文本匹配概率。权重使用PubMedBERT进行初始化,这被证明是生物医学领域中最好的预训练BERT之一。

将细胞编码器定义为 f f f,用于从单细胞数据 c c c导出嵌入 z c z_c zc。将文本编码器的单模态定义为 g 1 g_1 g1,其负责从文本数据 t t t生成嵌入 z t z_t zt。将文本编码器的多模态定义为 g 2 g_2 g2,用于计算单细胞和文本数据之间的匹配概率 p c , t p_{c,t} pc,t。这三种编码方法阐述如下: z c = f ( c ) z t = g 1 ( t ) p c , t = g 2 ( z c , t ) = g 2 ( f ( c ) , t ) z_{c}=f(c)\\ z_{t}=g_{1}(t)\\ p_{c,t}=g_{2}(z_{c},t)=g_{2}(f(c),t) zc=f(c)zt=g1(t)pc,t=g2(zc,t)=g2(f(c),t)

预训练

LangCell旨在将scRNA-seq数据和文本映射到共享的潜在空间,并利用自然语言中包含的非结构化知识来优化细胞表征。为此,在预训练过程中,作者联合优化了四个目标损失函数,包括掩蔽基因建模、模态内和模态间对比学习以及细胞文本匹配。

掩蔽基因建模

作者随机mask细胞输入序列中的一些基因,并使用模型在这些位置的输出embedding来预测原始输入的重建。使用交叉熵损失函数作为损失函数: L M G M = 1 N ∑ i = 1 N H ( v i j , v ^ i j ) L_{MGM}=\frac{1}{N}\sum_{i=1}^{N}H(v_{ij},\widehat{v}_{ij}) LMGM=N1i=1NH(vij,v ij)其中, N N N是mask基因的数量, v i j v_{ij} vij v ^ i j \widehat{v}_{ij} v ij分别表示第 i i i个mask位置被识别为第 j j j个基因的label和预测概率。

细胞-细胞对比学习

作者引入了细胞-细胞对比学习。在scRNA-seq数据中,每个基因表达水平都具有独特的含义,而人工数据增强方法,如对输入数据的搅乱和干扰,可能会破坏基因表达语义。作者认为,特征水平的扰动更适合于scRNA-seq数据中的数据增强。因此,使用两个应用于同一单细胞的标准dropout实例来构建正样本,而同一批次中的其他单细胞作为负样本,这在自然语言研究中已被证明是有效的。损失函数的使用如下: L C − C = − 1 T ∑ i = 1 T l o g e s i m ( z c ( i ) , z c ( i ) + ) / τ ∑ j = 1 T e s i m ( z c ( i ) , z c ( j ) + ) / τ L_{C-C}=-\frac{1}{T}\sum_{i=1}^{T}log\frac{e^{sim(z_{c}^{(i)},z_{c}^{(i)+})/\tau}}{\sum_{j=1}^{T}e^{sim(z_{c}^{(i)},z_{c}^{(j)+})/\tau}} LCC=T1i=1Tlogj=1Tesim(zc(i),zc(j)+)/τesim(zc(i),zc(i)+)/τ其中 T T T是batch size,sim是余弦相似度, τ \tau τ是温度参数, z c ( i ) z_{c}^{(i)} zc(i)是细胞 i i i的embedding, z c ( j ) + z_{c}^{(j)+} zc(j)+为细胞 j j j的正样本。

细胞-文本对比学习

作者通过细胞-文本对比学习将细胞和文本投影到相同的嵌入空间中。文本编码器采用单模态编码。损失函数为:
eq2

细胞-文本matching

在计算这种损失时,文本编码器采用多模态编码模式,在每个自注意力层后进行细胞嵌入的交叉注意力计算,最终输出用于二进制分类,以预测细胞是否与文本匹配。该任务旨在探索分辨率更高的细胞和文本之间的匹配关系,选择与细胞-文本对的正样本尽可能相似的细胞-文本来形成负样本。损失函数是二进制交叉熵: L C T M = H ( y , p c , t ) L_{CTM}=H(y,p_{c,t}) LCTM=H(y,pc,t)其中 y y y表示指示细胞是否与文本匹配的标签

下游任务

零样本分类

基于细胞数据和文本的对齐表示空间,LangCell可用于零样本细胞注释(图3)。具体而言,对于给定的单细胞 c c c N N N个候选文本描述 { t ( i ) } i = 1 N \left\{t^{(i)}\right\}^N_{i=1} {t(i)}i=1N,我们通过比较它们在共享嵌入空间中的余弦距离来获得 l o g i t s 1 logits_1 logits1,并通过比较细胞文本匹配模块给出的分数来获得 l o g i t s 2 logits_2 logits2。在实际应用中,由于 l o g i t s 2 logits_2 logits2的计算速度较慢,我们只为 l o g i t s 1 logits_1 logits1得分较高的候选者计算 l o g i t s 2 logits_2 logits2。然后两者相加。

微调

还可以在细胞编码器后添加分类或者回归head,用于在下游任务微调,这样的模型统称为LangCell-CE。

fig3

  • 图3:LangCell在零样本细胞注释中的应用。LangCell利用细胞和文本数据的共享嵌入空间获得相似性得分,通过匹配模块获得细胞-文本匹配得分,并综合考虑这些得分,得到最终的分类logits。

数据集构建与预训练

作者建立了scLibrary,这是一个全面的数据集,包括大约2750万对scRNA-seq数据和相关的文本描述。该数据集来源于CELLxGENE数据库,作者在该数据库中获得了原始计数矩阵格式的scRNA-seq数据和相应的元数据。接下来,从元数据中选择了8个可能包含重要见解的信息,并使用这些条目生成OBO Foundry多视图文本描述。具体而言,所选条目包括化验、细胞类型、发育阶段、组织信息、器官信息、疾病信息以及捐赠者的性别和种族。

预训分为两个阶段。在第一阶段,使用Geneformer初始化细胞编码器参数,仅使用 L M G M L_{MGM} LMGM L C − C L_{C−C} LCC损失函数进行单模态训练。在第二阶段,使用PubMedBERT初始化文本编码器参数,并使用所有四个损失函数进行多模态训练。两个阶段分别训练三个epochs。

比较LangCell和Cell2Sentence

LangCell和Cell2Sentence各自具有功能上的特点。Cell2Sentence还不能支持零样本场景,虽然C2S是设计为元数据+细胞基因排序构成LLM微调模板,但其在实验中覆盖的数据集不是最广泛的,所以在面对新细胞类型时不能识别出来。当然,Cell2Sentence最大的特点是自然语言可交互,这是LLM+指令微调的必然结果。

LangCell不能做到自然语言交互,但是其架构类似CLIP,变成了一个基于深度学习的检索任务,来自AIR的另一个方法是DrugCLIP。从目前发展看来,包括过去的开放词汇表目标检测等任务均基于CLIP,这是实现零样本的一类方法。因此LangCell的最大特点是支持零样本分类。注意在不同的数据集上,为了零样本分类,我们依然需要提供当前数据集下每个细胞类型的文本以供检索。

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

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

相关文章

小项目——MySQL集训(学生成绩录入)

ddl语句 -- 创建学生信息表 CREATE TABLE students (student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 学生ID,name VARCHAR(50) NOT NULL COMMENT 学生姓名,gender ENUM(男, 女) NOT NULL COMMENT 性别,class VARCHAR(50) NOT NULL COMMENT 班级,registration_date DATE CO…

【杂记-浅谈EBGP外部边界网关协议、IBGP内部边界网关协议】

一、EBGP概述 EBGP,External Border Gateway Protocol,即外部边界网关协议,EBGP主要用于在不同自治系统(AS)之间交换路由信息,每个AS都有一个独特的AS号码,用于区分不同的自治系统。EBGP通过AS…

Redis实战—基于setnx的分布式锁与Redisson

本博客为个人学习笔记,学习网站与详细见:黑马程序员Redis入门到实战 P56 - P63 目录 分布式锁介绍 基于SETNX的分布式锁 SETNX锁代码实现 修改业务代码 SETNX锁误删问题 SETNX锁原子性问题 Lua脚本 编写脚本 代码优化 总结 Redisson 前言…

C++泛型编程之模板的使用

文章目录 1.模板的概念1.函数模板2.类模板3.模板特化4.模板元编程 2.模板的使用1.函数模板的使用2.类模板的使用3.模板特化4.模板参数推导5.普通函数和函数模板的调用规则1. 非模板函数优先2. 最佳匹配原则3. 显式模板参数指定4. 函数模板特化5. 重载决议示例 7.注意事项8.类模…

v-for中为什么要使用key

在Vue中,v-for指令用于循环遍历数组或对象,并为每个元素或属性生成相应的DOM元素或组件实例。当使用v-for循环渲染时,Vue会尽量复用已有的元素,而不是重新创建。为了实现这个复用机制,Vue会根据每个元素的key来跟踪它们…

基于STM32的温湿度检测TFT屏幕proteus恒温控制仿真系统

一、引言 本文介绍了一个基于STM32的恒温控制箱检测系统,该系统通过DHT11温湿度传感器采集环境中的温湿度数据,并利用TFT LCD屏幕进行实时显示。通过按键切换页面显示,通过按键切换实现恒温控制箱的恒温控制。为了验证系统的可靠性和稳定性&…

MongoDB的核心点是什么,选择是否使用!

MongoDB概述 定义: MongoDB是一个文档数据库,设计目的在于简化应用程序的开发和扩展。起源: 由DoubleClick创始人Dwight Merriman和Kevin O’Connor于2007年启动,以应对大规模流量需求。 MongoDB发展历程 开发背景: 由于关系型数据库无法满足DoubleCl…

在 TS 中使用 Manifold 建模

一 Manifold 是什么 1.1 简介 Manifold 是一个几何处理库,专注于高效、可靠的布尔运算和几何操作。它主要用于3D建模和计算几何领域,提供了高性能的几何算法,适用于需要精确几何计算的应用场景。 1.2 主要特点 高效的布尔运算&#xff1a…

Lombok的hashCode方法

Lombok对于重写hashCode的算法真的是很经典,但是目前而言有一个令人难以注意到的细节。在继承关系中,父类的hashCode针对父类的所有属性进行运算,而子类的hashCode却只是针对子类才有的属性进行运算,立此贴提醒自己。 目前重写ha…

png格式快速压缩该怎么做?在电脑压缩png图片的方法

png格式的图片如何快速压缩变小呢?现在网络的不断发展,图片是日常用来分享展示内容的一种常用手段,其中使用最多的一种图片格式就是png,png格式具有无损压缩支持透明底的特性,在很多的场景下都会使用。 现在图片的清晰…

本周AI动态:生成型AI的命运掌握在法院手中

本周AI领域发生了音乐公司指控两家开发AI歌曲生成器的初创公司Udio和Suno侵犯版权的事件。 美国音乐唱片行业协会(RIAA)周一宣布,由索尼音乐娱乐公司、环球音乐集团、华纳唱片公司等发起的诉讼已经提起。诉讼声称,Udio和Suno在未…

乒乓征途:开球网 跨越积分鸿沟的热爱与挑战

乒乓征途:跨越积分鸿沟的热爱与挑战 在乒乓球这项集速度、技巧与策略于一体的运动中,我以一名业余爱好者的身份,勇敢地踏上了开球网这一竞技的广阔舞台。这里,积分不仅是衡量实力的标尺,更是通往更高层次比赛的通行证…

贷款承诺状态映射参数表,用于加工的提示信息

在设计贷款承诺状态映射参数表时,目的是将贷款的不同状态映射为相应的提示信息,以便于系统能够自动生成和发送通知给相关的借款人或银行员工。以下是一个简化的参数表示例,用于指导贷款状态的加工和提示信息生成: | 状态代码 |…

Arduino - 线性执行器(支撑或滑杆)

Arduino - 线性执行器(支撑或滑杆) Arduino - 执行器 In this tutorial, we are going to learn: 在本教程中,我们将学习: How linear actuator works 线性执行器的工作原理How to make linear actuator extend or retract. 如何使线性执行器伸展或缩…

speakTTS文字转语音播放功能

场景: speak-tts 文字转换语音的使用播放、暂停、恢复 安装 npm install speak-tts 引入 import Speech from ‘speak-tts’ 需求: 1.多条播报内容需要一条一条的播报 一进入页面就开始播报(数组的形式 后台返回) 2.暂停之后 在点…

Java AWT基础—创建一个简单的应用程序

目录 背景: 代码展示: 代码详解: AWT和Swing的区别: 总结: 背景: 在Java中,AWT(Abstract Windows Toolkit)是最早的图形月用户界面(GUI1)工具包,虽然随着Swing的出现,AWT的使用有所减少,但了解AWT基…

百元蓝牙耳机哪款性价比高?盘点性价比高的百元蓝牙耳机品牌

在如今快节奏的生活中,蓝牙耳机已经成为人们日常生活中不可或缺的配件。然而,市面上百元左右性价比高的蓝牙耳机琳琅满目,消费者往往难以选择到一款质量好、耐用的产品。我们希望可以为广大消费者提供一些参考和建议,接下来&#…

基于51单片机电子称—串口显示

基于51单片机电子称设计 (仿真+程序) 功能介绍 具体功能: 1.矩阵键盘组成按键,输入价格结算、打印; 2.用滑动变阻器和ADC0832模拟称重; 3.LCD1602可以显示重量、单价和总价; 4.…

spring03-aop

spring aop: 只能增强方法,,spring aop 底层是动态代理,,,动态代理的本质是生成一个子类,,重写这个方法,进行增强,,所以final修饰的类和方法,&…

0121__线程 thread_once

线程 thread_once_thraed once-CSDN博客