论文模型设置与实验数据:scBERT

Yang, F., Wang, W., Wang, F. et al. scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data. Nat Mach Intell 4, 852–866 (2022). https://doi.org/10.1038/s42256-022-00534-z

论文地址:scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data | Nature Machine Intelligence

论文代码:https://github.com/TencentAILabHealthcare/scBERT


目录

摘要

scBERT 模型概述

a. 无标签数据的自监督学习与任务特定数据的微调

b. scBERT 嵌入示意图

数据集

代码细节


摘要


基于单细胞RNA测序(scRNA-seq)数据对细胞类型进行注释是研究疾病进展和肿瘤微环境的前提。现有的注释方法通常存在缺乏精心整理的标记基因列表、处理批次效应不当以及难以利用潜在基因-基因交互信息的问题,削弱了这些方法的泛化性和鲁棒性。作者开发了一种基于预训练深度神经网络的模型,即单细胞双向编码表示转换器(scBERT),以克服这些挑战。遵循BERT的预训练和微调方法,scBERT通过在大量未标记的scRNA-seq数据上进行预训练,获得了对基因-基因交互的通用理解;然后将其转移到未知和用户特定的scRNA-seq数据的细胞类型注释任务中进行有监督的微调。广泛而严格的基准研究验证了scBERT在细胞类型注释、新型细胞类型发现、对批次效应的鲁棒性和模型解释性方面的卓越表现。

scBERT 模型概述

a. 无标签数据的自监督学习与任务特定数据的微调

在自监督预训练阶段,无标签数据来自于 PanglaoDB。将掩码表达嵌入和基因嵌入作为输入并输入到 Performer 模块中。通过重构器生成输出,对被掩码的基因的输出用以计算重构损失。在监督微调阶段,将任务特定的 scRNA-seq 数据输入到预训练的编码器中。输出表示经过一维卷积层和分类器,生成细胞类型预测结果。符号 "⊕" 表示逐元素加法。
Performer 编码器 是在预训练和微调阶段共享的组件,而重构器和分类器在预训练和微调阶段分别独立使用。

b. scBERT 嵌入示意图

预处理后的 scRNA-seq 数据首先被转换为离散化表达值,非零表达值会被随机掩码。以第一个基因为例,其基因嵌入 EG1(通过 gene2vec 得到的基因身份嵌入,归入第一分箱)和表达嵌入 EB2(基因表达值归入第二分箱并被转换为与 EG1 相同的维度)被求和后输入到 scBERT 中,生成基因的表示。
这些表示随后用于预训练或微调阶段。

BERT 的启发


最初的 BERT 模型提出了一种革命性的技术,通过预训练生成通用的语言知识,并利用微调将知识迁移到不同配置的下游任务中。受此启发,我们开发了一种新颖且统一的架构——scBERT(如图 1),专注于 scRNA-seq 数据。scBERT 在多种来源的数百万无标签 scRNA-seq 数据上进行预训练,学习通用的 scRNA-seq 知识,然后通过简单地接入分类器并基于参考数据集监督微调参数,完成细胞类型的分配。

模型优势

  • 预训练:帮助模型学习基因-基因相互作用的一般语法,从而消除数据集间的批次效应,提高模型的泛化能力(扩展数据图 1a)。
  • 微调:确保每个基因的输出嵌入能够编码与参考数据集转录组特征更相关的上下文信息。通过挖掘高级隐式模式,scBERT 为查询细胞计算其属于参考数据集中任何细胞类型的概率(扩展数据图 1b)。如果没有细胞类型能被高置信度分配,查询细胞会被标记为“未分配”,以避免错误标注并支持发现新的细胞类型。

创新设计


相比于原始 BERT 模型,scBERT 引入了一些创新设计,以增强其在细胞类型注释任务中的表现:

  1. 嵌入设计

    • BERT 的嵌入包括 token 嵌入位置嵌入,而 scBERT 的嵌入设计在借鉴 BERT 的基础上结合了基因领域的特点。
    • token 嵌入:BERT 中的 token 是离散变量(代表单词),而 scBERT 的输入是连续变量(代表单细胞中基因的表达值),并伴有生物学和技术噪声。我们借鉴 NLP 中的词袋技术,将基因表达值分箱为离散值,不仅减少了数据噪声,还保留了基因表达频率的信息。
    • 基因嵌入:由于基因的绝对位置无意义,scBERT 使用 gene2vec 生成的嵌入作为基因身份的相对嵌入,捕获基因的共表达关系。共表达的基因会具有更相似的嵌入表示,这种分布式表示有助于描述基因-基因相互作用(扩展数据图 1c)。
  2. 去除数据预处理的依赖

    • 当前的大多数单细胞方法需要在原始数据上进行预处理(如高变基因选择、手动标记基因选择或 PCA),由于这些方法无法高效建模高维数据,不可避免地引入人工偏差或过拟合问题,严重影响模型的泛化能力。
    • scBERT 通过 Transformer 的大感受野高效利用 scRNA-seq 数据中的全局信息,捕获长距离基因-基因相互作用,从而学习细胞的综合全局表示。
    • 为克服 Transformer 输入序列长度(512)的限制,scBERT 使用 Performer 替代原始 BERT 中的 Transformer 编码器,从而扩展模型至超过 16,000 个基因输入。这种设计允许全基因水平的解释,无需使用高变基因或降维操作,让具有判别力的基因和交互关系自然显现(扩展数据图 1d)。


通过以上设计,scBERT 实现了基因表达模式和长程依赖的无偏数据驱动发现,并提供了稳定且鲁棒的性能,而无需依赖超参数调节(扩展数据图 1e)。这种特性使得 scBERT 成为细胞类型注释任务中的强大工具,同时支持探索新的细胞类型。

数据集

由于模型训练分为两个阶段:无标签数据的自监督学习特定任务数据的微调,因此这两个阶段使用的数据集来源不同,以避免数据泄漏。在第一阶段,大量无标注数据用于学习通用模式;而在第二阶段,则需要带有高质量标注的细胞标签的特定任务数据,以系统评估 scBERT 和其他 SOTA 方法的性能。

为此,我们选择了以下数据集:

  • 提供高度可信的细胞类型标注,
  • 且已被大多数细胞类型标注方法广泛引用,用于性能评估的 scRNA-seq 数据集。
Panglao 数据集

Panglao 数据集来自 PanglaoDB 网站 (https://panglaodb.se/)。PanglaoDB 集成了 209 个来源于不同实验平台的人类单细胞数据集,覆盖 74 种组织,共计 1,126,580 个细胞。本研究中,在第一阶段预训练时使用了 PanglaoDB 的 scRNA-seq 数据。由于采用自监督学习策略,此阶段未使用任何标注或细胞标签,模型输入仅需基因及其表达水平数据。

Zheng68k 数据集

Zheng68k 是一个经典的 PBMC 数据集,由 10X CHROMIUM 平台生成,广泛用于细胞类型注释性能评估。该数据集包含约 68,450 个细胞,分为 11 种亚型,包括:

  • CD8+ 细胞毒性 T 细胞 (30.3%)
  • CD8+/CD45RA+ 初始细胞毒性细胞 (24.3%)
  • CD56+ NK 细胞 (12.8%)
  • CD4+/CD25 调节性 T 细胞 (9.0%)
  • CD19+ B 细胞 (8.6%)
  • 其他稀有类型细胞。

该数据集中细胞类型分布不均,部分细胞类型间高度相关,使区分变得困难。

胰腺数据集

胰腺数据集包括 Baron、Muraro、Segerstolpe 和 Xin 数据集,统一了细胞类型标签,包含四种细胞类型。具体来源:

  • Baron 数据集:从 GEO 下载 (GSE84133),实验方法为 inDrop
  • Muraro 数据集:从 GEO 下载 (GSE85241),实验方法为 CEL-Seq2
  • Segerstolpe 数据集:从 ArrayExpress 下载 (E-MTAB-5061),实验方法为 Smart-Seq2
  • Xin 数据集:从 GEO 下载 (GSE81608),实验方法为 SMARTer

这些数据集基于不同实验平台生成 (补充表 1)。

MacParland 数据集

MacParland 数据集来自人类肝组织,包含 20 种肝细胞类型,由 10X CHROMIUM 平台对 8,444 个细胞进行转录组测序生成。数据从 GEO 下载 (GSE115469),并根据作者提供的方法生成细胞类型注释。

心脏数据集

心脏数据集包括两个部分:

  • 大规模心脏数据集 (用于预训练):含 451,513 个细胞,来自四个平台 (Harvard-Nuclei、Sanger-Nuclei 等),从 HCA 数据门户 下载。
  • Tucker 数据集 (用于评估):含 287,269 个细胞,从 Broad Institute 下载。
肺部数据集

该数据集来自人类肺组织,分析与 COVID-19 相关的疾病机制。包含来自 12 位供体的样本,由 10X Genomics 测序生成,数据量为 39,778 个细胞 (九种细胞类型)。数据下载自 Figshare。

人类细胞图谱数据集

人类细胞图谱数据集包含 15 个主要器官 (如皮肤、心脏、肝脏) 中的 27 种细胞类型,共计 84,363 个细胞,由 HiSeq X Ten 测序生成。数据下载自 GEO (GSE159929)。


本研究中使用的所有数据均为公开数据,其使用方法在方法部分有详细说明。

  • Panglao 数据集:从 PanglaoDB 下载。
  • Zheng68k 数据集:从 10x Genomics 官网的“Fresh 68K PBMCs”部分 下载(编号:SRP073767)。
  • 胰腺数据集:从 Hemberg Lab 的 GitHub 页面 下载,包括以下数据:
    • Baron 数据集(编号:GSE84133)
    • Muraro 数据集(编号:GSE85241)
    • Segerstolpe 数据集(编号:E-MTAB-5061)
    • Xin 数据集(编号:GSE81608)。
  • MacParland 数据集:从 NCBI GEO 数据库 下载(编号:GSE115469)。
  • 心脏数据集:从以下链接下载:
    • Human Cell Atlas 数据库
    • Broad Institute 数据库。
  • COVID-19 肺部数据集:从 Figshare 下载。
  • 成人 Human Cell Atlas 数据集(包含15个主要器官):从 NCBI GEO 数据库 下载(编号:GSE159929)。

数据预处理

对于以基因表达矩阵形式提供的数据:

  1. 进行了 log 归一化 (大小因子为 10,000)。
  2. 质量控制:过滤表达基因少于 200 的细胞异常值。

对于 scBERT 的输入,未进行维度缩减或高变基因选择,scBERT 可处理超过 20,000 个基因并保持完整基因级解释能力。


对比方法

基准测试实现了三类注释方法的 SOTA 算法:

  1. 基于标记基因:SCINA、Garnett 和 scSorter。
  2. 基于相关性:Seurat、SingleR、CellID 和 scmap。
  3. 监督学习:scNym 和 SciBet。

以下为部分算法简述:

  • scNym:半监督方法,利用目标数据进行领域适配,性能优异但需重新训练。
  • SciBet:监督学习方法,通过 E 检验筛选基因,构建多项式模型进行分类。
  • Seurat:流行的单细胞分析管道,通过参考数据集进行样本映射。
  • SingleR:基于参考数据集,迭代计算 Spearman 系数以区分细胞类型。
  • CellID:无聚类方法,提取细胞基因特征。
  • scmap:通过余弦和欧几里得距离映射细胞类型。
  • SCINA:假设标记基因的双峰分布以注释细胞类型。
  • Garnett:基于用户定义的细胞层次结构和标记基因,通过弹性网络回归注释。
  • scSorter:结合标记基因与 HVG 聚类,注释细胞类型。

后续将复现实验并执行模型代码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP三次握手的过程是怎样的?

一开始,客户端和服务端都处于CLOSE状态。先是服务端主动监听某个端口,处于LISTEN状态。 (1)第一次握手 客户端会随机初始化序号(client_isn),将此序号填入TCP首部的32位序号字段中&#xff0c…

Java核心知识详解:String类、StringBuffer、数组及日期时间的全面解析

🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 标题 Java核心知识详解:String类、StringBuffer、数组及日期时间的全面解析 摘要 在Java中…

【MATLAB源码-第218期】基于matlab的北方苍鹰优化算法(NGO)无人机三维路径规划,输出做短路径图和适应度曲线.

操作环境: MATLAB 2022a 1、算法描述 北方苍鹰优化算法(Northern Goshawk Optimization,简称NGO)是一种新兴的智能优化算法,灵感来源于北方苍鹰的捕猎行为。北方苍鹰是一种敏捷且高效的猛禽,广泛分布于北…

SplatFormer: Point Transformer for Robust3D Gaussian Splatting 论文解读

目录 一、概述 二、相关工作 1、NVI新视角插值 2、稀疏视角重建 3、OOD-NVS 4、无约束重建下的正则化技术 5、基于学习的2D-to-3D模型 6、3D点云处理技术 三、SplatFormer 1、Point Transformer V3 2、特征解码器 3、损失函数 四、数据集 五、实验 一、概述 该论…

Azkaban部署

首先我们需要现在相关的组件,在这里已经给大家准备好了相关的安装包,有需要的可以自行下载。 只需要启动hadoop集群就可以,如果现在你的hive是打开的,那么请你关闭!!! 如果不关会造成证书冲突…

目标检测模型优化与部署

目录 引言数据增强 随机裁剪随机翻转颜色抖动 模型微调 加载预训练模型修改分类器训练模型 损失函数 分类损失回归损失 优化器算法思路 RPN (Region Proposal Network)Fast R-CNN损失函数 部署与应用 使用 Flask 部署使用 Docker 容器化 参考资料 引言 目标检测是计算机视觉…

Charles抓包工具-笔记

摘要 概念: Charles是一款基于 HTTP 协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果来达到分析抓包的目的。 功能: Charles 是一个功能全面的抓包工具,适用于各种网络调试和优化场景。 它…

java: itext8.05 create pdf

只能调用windows 已安装的字体,这样可以在系统中先预装字体,5.0 可以调用自配文件夹的字体文件。CSharp donetItext8.0 可以调用。 /*** encoding: utf-8* 版权所有 2024 ©涂聚文有限公司 言語成了邀功盡責的功臣,還需要行爲每日來值班…

Kafka 生产者优化与数据处理经验

Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

C高级学习笔记

……接上文 硬链接和软连接(符号链接) 硬链接 硬链接文件可以理解为文件的副本(可以理解为复制粘贴) ln 根据Linux系统分配给文件的inode(ls -li)号进行建立,没有办法跨越文件系统 格式:ln 被链接的文件&am…

Java基于SpringBoot+Vue的藏区特产销售平台

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

vim 分割窗口后,把状态栏给隐藏

一、基本环境 主机MacOs Sonoma 14.7主机终端Iterm2虚拟机Parallels Desktop 20 for Mac Pro Edition 版本 20.0.1 (55659)虚拟机-操作系统Ubuntu 22.04 最小安装 二、分割窗口后的截图,红色线条部分就是状态栏 分割后个布局是:顶部1行高度窗口&#x…

【数据结构】【线性表】栈的基本概念(附c语言源码)

栈的基本概念 讲基本概念还是回到数据结构的三要素:逻辑结构,物理结构和数据运算。 从逻辑结构来讲,栈的各个数据元素之间是通过是一对一的线性连接,因此栈也是属于线性表的一种从物理结构来说,栈可以是顺序存储和顺…

OpenOCD之J-Link下载

1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐) 下载方式 ①官方网址:https://visualgdb.com/UsbDriverTool/ ②笔者的CSDN链接&…

【JavaEE初阶 — 多线程】定时器的应用及模拟实现

目录 1. 标准库中的定时器 1.1 Timer 的定义 1.2 Timer 的原理 1.3 Timer 的使用 1.4 Timer 的弊端 1.5 ScheduledExecutorService 2. 模拟实现定时器 2.1 实现定时器的步骤 2.1.1 定义类描述任务 定义类描述任务 第一种定义方法 …

ssm168基于jsp的实验室考勤管理系统网页的设计与实现+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:实验室考勤管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本实验室考勤管…

原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型

无论是在什么手机机型下,自定义的导航都和右侧的胶囊水平一条线上。如图下 以上图iphone12,13PRo 以上图是没有带黑色扇帘的机型 以下是调试器看的wxml的代码展示 注意:红色阔里的是自定义导航(或者其他的logo啊,返回之…

Python 获取微博用户信息及作品(完整版)

在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…

springcloud alibaba之shcedulerx实现分布式锁

文章目录 1、shcedulerx简介2、基于mysq分布式锁实现3、注解方式使用分布式锁4、编码方式使用分布式锁 1、shcedulerx简介 springcloud alibaba shcedulerx看起来有点像xxl job那样的任务调度中间件,其实它是一个分布式锁框架,含有两种实现一种基于DB实…

【LLM训练系列02】如何找到一个大模型Lora的target_modules

方法1:观察attention中的线性层 import numpy as np import pandas as pd from peft import PeftModel import torch import torch.nn.functional as F from torch import Tensor from transformers import AutoTokenizer, AutoModel, BitsAndBytesConfig from typ…