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

news2024/10/5 13:49:56

细胞身份包括细胞的各种语义,包括细胞类型、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.coloradmin.cn/o/1868997.html

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

相关文章

文献解读-基因编辑-第十二期|《CRISPR-detector:快速、准确地检测、可视化和注释基因组编辑事件引起的全基因组范围突变》

关键词:基因组变异检测;全基因组测序;基因编辑; 文献简介 标题(英文):CRISPR-detector: fast and accurate detection, visualization, and annotation of genome-wide mutations induced by g…

IDEA 安装与激活详细教程最新(附最新激活码)2099年亲测有效!

我们先从 IDEA 官网下载 IDEA 2024.1 版本的安装包,下载链接如下: https://www.jetbrains.com/idea/download/ 点击下载(下载Ultimate版),静心等待其下载完毕即可。 激活方式: 正版专属激活码领取

自定义APT插件导致IDEA调试时StreamTrace(跟踪当前流链)报internal error(内部错误)

IDEA里面debug的时候,针对stream流提供了流追踪调试功能,方便大家调试stream流代码。 最近改其他人代码,需要用到这个,发现提示内部错误。 然后百度一圈发现没啥解决方案,就自己看IDEA的日志,看看是什么引…

css控制整个div下的所有元素中的文字放大缩小

css控制文字放大缩小 话不多说,直接上代码,我用了最简单粗暴的方法,找个下面所有的元素,然后遍历放大所有文字 add() {var div this.$refs[myDiv];var elements div.querySelectorAll("*");for (var i 0; i < elements.length; i) {var fontSize parseInt(win…

FineReport填报列权限控制

近期换东家啦&#xff0c;又回归使用帆软啦&#xff0c;对于填报报表列权限的控制我这边顺带记录一下 首先讲解下场景&#xff1a;填报报表需要不同角色决定对不同列是否有填写或者查看权限 以填写权限为例&#xff0c;首先考虑用到的是 帆软自带的权限编辑&#xff0c;其次考虑…

如何不改变 PostgreSQL 列类型#PG培训

开发应用程序并在其背后操作数据库集群时&#xff0c;会遇到一个意想不到的问题是实践与理论、开发环境与生产之间的差异。这种不匹配的一个完美例子就是更改列类型。 #PG考试#postgresql培训#postgresql考试#postgresql认证 关于如何在 PostgreSQL&#xff08;以及其他符合 SQ…

使用API有效率地管理Dynadot域名,为文件夹中的域名设置域名转发

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

鸿蒙开发系统基础能力:【@ohos.wallpaper (壁纸)】

壁纸 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import wallpaper from ohos.wallpaper;WallpaperType 定义壁纸类型。 系统能力: 以下各项对应的系统能力均为SystemCapability…

悬浮翻译工具有哪些?来看看这几款悬浮翻译工具吧

沉浸式观影时&#xff0c;却被那些叽里呱啦的外文台词搞得头大如斗&#xff1f; 别焦虑&#xff0c;就算没有现成的字幕&#xff0c;我们也能自己生成&#xff01;如何做到&#xff1f;交给悬浮翻译器&#xff0c;这些软件能实时捕获那些耳边飘过的异国语言&#xff0c;巧妙地…

#### 广告投放 ####

以巨量引擎为例&#xff1a; 计费模式 eCPM&#xff08;expected Cost Per Mile&#xff0c;估计千次展示收入&#xff09; 概括&#xff1a; ecpm为千次展示的预估收益&#xff0c;是广告平台用来给广告排序的指标。 注意是展示而不是千次点击收益&#xff0c;展示了可能不…

WPF 模仿迅雷客户端界面开发

官方&#xff1a; 模仿&#xff1a; 代码粗糙&#xff0c;用于学习WPF界面&#xff0c;尽量满足官方样式与动画&#xff0c;涉及到一些自定义控件&#xff0c;后续持续完善。 演示视频后期完善后补充。 gitee:ThunderboltInterface: 迅雷界面模仿

软件开发不用代码签名证书行吗?

一、代码签名是什么&#xff1f; SSL证书和代码签名证书虽然都属于数字证书的范畴&#xff0c;但它们各自服务于不同的目的和应用场景。 1、SSL证书 SSL证书主要用于保障Web通信的安全&#xff0c;确保客户端&#xff08;通常是浏览器&#xff09;与服务器之间的数据传输加密…

技术贴 | RNA甲基化修饰m6A的检测——MeRIP-seq

01 m6A是什么 目前在细胞RNA中已经识别到了超过100种化学修饰&#xff0c;其中RNA甲基化修饰在生命活动中有着非常重要的作用(Xu et al 2020)。RNA甲基化是指在甲基转移酶的催化下&#xff0c;在RNA分子上的某一个原子上添加一个甲基基团(CH3)。RNA甲基化修饰类型有很多&#…

pyspark从0开始的入门教程

Apache Spark 简介 Apache Spark 是一种分布式处理系统&#xff0c;用于在大型数据集上执行大数据和机器学习任务。 作为数据科学爱好者&#xff0c;您可能熟悉在本地设备上存储文件并使用 R 和 Python 等语言进行处理。但是&#xff0c;本地工作站有其局限性&#xff0c;无法…

【oracle】oracle索引分裂

本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 一、索引分裂概述 Oracle数据库中的索引分裂是数据库维护和性能管理中的一个重要概念&#xff0c;特别是在处理大量数据插入、更新和…

TikTok达人合作ROI分析:品牌如何评估带货效果

在当今的数字营销时代&#xff0c;TikTok已经成为品牌推广和消费者互动的重要平台。通过与TikTok达人的合作&#xff0c;品牌可以有效地提升其市场影响力和销售额。其中&#xff0c;评估这些合作的投入产出比&#xff08;ROI&#xff09;对于品牌来说是至关重要的。本文Nox聚星…

生命在于学习——Python人工智能原理(2.4.2)

四、Python的程序结构与函数 4.4 函数 函数能将代码划分为若干模块&#xff0c;每一个模块可以相对独立的实现某一个功能&#xff0c;函数有两个主要功能&#xff0c;分别是降低编程难度和实现代码复用&#xff0c;函数是一种功能抽象&#xff0c;复用它可以将一个复杂的大问…

JavaScript的学习之图片的切换

目录 一、寻找素材 二、编写简单的静态html页面 代码示例 效果展示 三、JS功能的实现 JS代码 完整代码 效果展示 一、寻找素材 随便去网上找几张图片素材 二、编写简单的静态html页面 代码示例 <!doctype html> <html><head><meta charset"…

【SpringBoot】SpringBoot使用mail实现登录邮箱验证

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、前期准备 1 开启邮箱服务 2 SpringBoot导入依赖 3 创建application.yml配置文件 4 创建数据库文件 5 配置redis服务 二、验证邮件发送功能 三、注册功能实现邮箱验证 1 创建User实体类 2 创建UserPa…

基于SpringBoot+vue闲置物品交易网站详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…