《Brief Bioinform》: 鼠脑单细胞与Stereo-seq数据整合算法评估

一、写在前面

基因捕获效率、分辨率一直是空间转录组细胞类型识别的拦路虎,许多算法能够整合单细胞(single-cell, sc)或单细胞核(single-nuclear, sn)数据与空间转录组数据,从而帮助空转数据的细胞类型注释。此前我们介绍过近年新出炉的Stereo-seq平台,这一新兴技术相关的分析思路及工具支持仍有所欠缺,因此本文的作者评估了9种单细胞数据与stereo-seq空转数据进行mapping的算法,以帮助大家提示stereo-seq数据处理的准确性与效率。原文引用信息:

Tao Q, Xu Y, He Y, Luo T, Li X, Han L. Benchmarking mapping algorithms for cell-type annotating in mouse brain by integrating single-nucleus RNA-seq and Stereo-seq data. Brief Bioinform. 2024 May 23;25(4):bbae250. 

如果想系统性的学习空间转录组数据分析也可以看这里:

空间转录组学习手册合辑

Stereopy空间转录组学习手册

Squidpy空间转录组学习手册

Scanpy空间转录组学习手册

Seurat空间转录组学习手册

一文搞定空间转录组与单细胞测序的整合分析

CellChat空转细胞通讯合辑

SeekSpace| 会单细胞就会空间转录组

二、背景介绍

哺乳动物的脑组织具有极高的异质性以及复杂的细胞类型(神经元、免疫细胞、血管细胞等等)组成,较为传统的技术例如免疫荧光或原位杂交技术无法同一时间内注释出所有细胞类型,因此,脑组织常作为空间转录组想要占领的测试高地:长脑子了!时空转录组揭示大脑再生机制。stereo-seq凭借分辨率高(0.22μm)、视场大(芯片大小可定制)、无需预先设置探针等特点被广泛应用于生命科学研究的各个领域之中。但实战过程中,"cellbin"的划分细胞策略容易遇到体积小的细胞捕获到的分子数量不足、"square bin"划分细胞不能满足单细胞分辨率的尴尬。因此实际分析过程中stereo-seq与其它空间转录组数据一样需要依赖单细胞水平的数据的mapping帮助完成注释过程。目前能够完成这一过程的软件众多:DestVI可以通过基因的"罚分"来完成参考单细胞数据与空转数据的神经网络构建;RCTD利用最大相似度预测各spot的细胞占比(能够减少平台不同带来的影响);SpatialDWLS本质上利用阻尼加权最小二乘回归,通过整合富集分析以及Giotto提供的差异分析来完成mapping过程;大家熟悉的神包Seurat能够通过最近临近法整合多来源的细胞;Tangram能够梯度优化的计算连哥哥数据集间的KL离散度与余弦相似性;SpatialID利用转化学习训练深度神经网络模型生成各细胞在空转中分布的可能性;SpatialID利用每个数据集的高变基因构建系统模型,输出全局最优的转化矩阵可能性;Spann也能够优化转化模型,使得临近的的样本具有相同的细胞类型。此前也有过空转与单细胞数据整合的工具benchmarking(空间转录组与单细胞转录组整合分析工具大比拼),但新出现的stereo-seq在之前并没有被纳入考察目标之中,并且这些工具的benckmarking大都依赖高质量的”groudtruth“,而stereo-seq能够使用不同大小的bin size来互相做校验,显然对于这些工具来说也是一个良好的测试数据集。

三、主要结果

如Figure1 A的流程图所示,作者通过已注释的snRNA-seq数据生成了一个拟空间数据作为background,然后收集了八个包含对应脑区位置(例如海马体、小脑、嗅球、皮质等)的snRNA-seq数据与stereo-seq数据。作者主要从square bin 50(大约25μmX25μm)与cell bin(利用ssDNA划分生成的细胞单位)的各算法效果,可以明显看出,Bin50的spot数量要明显小于Cellbin,但nFeature和nCount方面前者更高,换句话说,在这些数据中Bin50的尺寸要大于Cellbin(Biomamba目前处理过的数据也基本都是这个情况)。

图片

Figure 1

在完成了四个脑区数据的注释(Figure 2A-B)之后,使用各mapping算法工具处理拟空间数据与stereo-seq空转数据,并对每个spot中细胞比例进行皮尔森相关系数计算(Figure 2C),肉眼可见Cell2location(基于Python)与RCTD(基于R)的相关系数又高又稳(这两个包的教程可见:一文搞定空间转录组与单细胞测序的整合分析)。在合并相同细胞类型的表达矩阵后,作者对stereo-seq细胞表达矩阵与snRNA-seq的细胞表达矩阵进行相关性系数分析(Figure 2D),可以看出RCTD这次遥遥领先,其余软件除了Tangram外表现都很差。

图片

Figure 2

接下来作者开始了实战部分,成年脑矢状面脑组织HIP的snRNA-seq与stereo-seq的运行结果如图3A所示,通过作者的生物学知识基础,可以发现RCTD与SpatialDWLS对主要的细胞类型如CA1、CA2、CA3分布的预测较为精准,而其它软件存在边界不清晰、注释不准确的现象。作者引入了ASS来评估细胞距离及相关性,结果显示RCTD(在多个数据集及分bin方法中均表现上乘)与SpatialDWLS表现最优,而Spatial-ID与DestVI垫底(Figure 3B-C)。在注释结果的细胞类型中可见,RCTD与SpatialDWLS能够预测到占比非常小的细胞类型,而DestVI这种仅能够预测到占比比较大的细胞类型。

ASS公式如下,感兴趣的同学可以看一下原文了解详细参数含义:

图片

图片

Figure3

在小脑数据的layer的识别上来说,RCTD与SpatialDWLS无论是在cell bin还是在bin50均能够精准的分配出符合其空间位置的细胞类型(Figure 4A),而其它工具都或多或少的丢失了一些layer,例如Cell2location没有识别出Purkinje cell layer。

图片

Figure 4

四、最后聊聊

这篇文章想提供给大家的信息很简单,如果你想用R语言处理stereo-seq,你就用RCTD,如果你想用python处理stereo-seq,你就用SpatialDWLS。值得一提的是,以上的结果都是作者使用脑部数据测试得到的结果,其它的组织器官可能会遇到不同的情况。并且,作为一个benchmarking的文章,作者并没有给出计算效率的评估,要知道,不同算法/工具对于相同输入数据的计算时间可能会相差数千倍。最重要的是作者提出了Accuracy scoring system(ASS)这一概念来评估各工具对空间转录组mapping的效果。本篇文章的代码链接如下,大家可以自行学习体会一番:https://github.com/qyTao185/Benchmarking-Mapping-Algorithms.git

如果你的计算机不足以支持该工具的计算,可按需选用适合自己的计算资源:

共享(经济实惠):有root权限的共享服务器

独享(省电省心):生信分析不求人

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

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

相关文章

camera功能真的那么难用吗

背景 Android开发工作过程中,经常需要用到camera相关能力,比如:人脸识别,ai识别,拍照预览,摄像头录制等等需求。都需要使用到camera,且需要拿到camera的预览数据。但是每次开发这块代码都比较繁…

USART 串口通信全解析:原理、结构与代码实战

文章目录 USARTUSART简介USART框图USART基本结构数据帧起始位侦测数据采样波特率发生器串口发送数据 主要代码串口接收数据与发送数据主要代码 USART USART简介 一、USART 的全称与基本定义 英文全称 USART:Universal Synchronous Asynchronous Receiver Transmi…

LeetCode 152. 乘积最大子数组 - 动态规划解法详解

文章目录 问题描述解题思路动态规划状态定义状态转移方程完整代码实现复杂度分析示例解析关键点说明总结问题描述 给定一个整数数组 nums,请找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组对应的乘积。 示例: 输入: [2,3,-2,4] 输出: 6 解…

Python: 操作 Excel折叠

💡Python 操作 Excel 折叠(分组)功能详解(openpyxl & xlsxwriter 双方案) 在处理 Excel 报表或数据分析时,我们常常希望通过 折叠(分组)功能 来提升表格的可读性和组织性。本文将详细介绍如何使用 Python 中的两个主流 Excel 操作库 —— openpyxl 和 xlsxwriter …

28、元组的遍历

const_cast 只能用于指针或引用类型&#xff0c;而不能用于基本类型如 int。 在的代码中&#xff0c;试图将 i 转换为 const_cast<int>(i)&#xff0c;这是不合法的。 可以使用模板函数来获取元组中的元素&#xff0c;而不是使用 const_cast。以下是修正后的代码&#x…

sendDefaultImpl call timeout(rocketmq)

rocketmq 连接异常 senddefaultimpl call timeout-腾讯云开发者社区-腾讯云 第一种情况&#xff1a; 修改broker 的配置如下&#xff0c;注意brokerIP1 这个配置必须有&#xff0c;不然 rocketmq-console 显示依然是内网地址 caused by: org.apache.rocketmq.remoting.excep…

【仿生机器人】仿生机器人智能架构:从感知到个性的完整设计

仿生机器人智能架构&#xff1a;从感知到个性的完整设计 仿生机器人不仅需要模拟人类的外表&#xff0c;更需要具备类人的认知、情感和个性特征。本研究提出了一个综合性的软件架构&#xff0c;实现了从环境感知到情感生成、从实时交互到人格塑造的完整智能系统。该架构突破了…

Spring Boot微服务架构(十一):独立部署是否抛弃了架构优势?

Spring Boot 的独立部署&#xff08;即打包为可执行 JAR/WAR 文件&#xff09;本身并不会直接丧失架构优势&#xff0c;但其是否体现架构价值取决于具体应用场景和设计选择。以下是关键分析&#xff1a; 一、独立部署与架构优势的关系 内嵌容器的优势保留 Spring Boot 独立部署…

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…

2025年6月3日面试总结

1. 面试官问一台机器内存或者磁盘占用99% 再点一下就挂了&#xff0c;个人刚开始反应内存不足加内存&#xff0c;磁盘不足加磁盘&#xff0c;还有啥办法&#xff0c;有些时候没干过的事一定要大胆&#xff0c;敲命令都敲不成&#xff0c;只能换磁盘了和加内存了&#xff0c;要么…

从上下文学习和微调看语言模型的泛化:一项对照研究

大型语言模型表现出令人兴奋的能力&#xff0c;但也可以从微调中表现出令人惊讶的狭窄泛化。例如&#xff0c;他们可能无法概括为简单的关系反转&#xff0c;或者无法根据训练信息进行简单的逻辑推理。这些未能从微调中概括出来的失败可能会阻碍这些模型的实际应用。另一方面&a…

解决cocos 2dx/creator2.4在ios18下openURL无法调用的问题

由于ios18废弃了旧的openURL接口&#xff0c;我们需要修改CCApplication-ios.mm文件的Application::openURL方法&#xff1a; //修复openURL在ios18下无法调用的问题 bool Application::openURL(const std::string &url) {// NSString* msg [NSString stringWithCString:…

Go 语言并发编程基础:Goroutine 的创建与调度

Go 语言的并发模型是其最显著的语言特性之一。Goroutine 是 Go 实现并发的核心机制&#xff0c;它比线程更轻量&#xff0c;调度效率极高。 本章将带你了解 Goroutine 的基本概念、创建方式以及背后的调度机制。 一、什么是 Goroutine&#xff1f; Goroutine 是由 Go 运行时&a…

网页绘制表格

说明&#xff1a; border"1"&#xff1a;设置表格边框宽度为 1 像素&#xff08;可调整数值改变边框粗细&#xff09;。cellspacing"0"&#xff1a;设置单元格间距为 0&#xff08;去除边框间的空白间隙&#xff09;。<thead>&#xff1a;定义表头区…

Python爬虫实战:研究Unirest库相关技术

一、引言 在当今信息爆炸的时代,网络数据的获取与分析变得尤为重要。Python 作为一种功能强大且易于学习的编程语言,在网络爬虫领域有着广泛的应用。Unirest 库是一个轻量级的 HTTP 客户端库,它提供了简洁的 API,使得发送 HTTP 请求变得更加容易。本论文将详细分析如何使用…

二、【ESP32开发全栈指南:ESP32 GPIO深度使用】

GPIO&#xff08;通用输入输出&#xff09; 是ESP32最基础却最核心的功能。本文将带你深入ESP32的GPIO操作&#xff0c;通过按键读取和LED控制实现物理按键→ESP32→LED的完整信号链路。 一、ESP32 GPIO核心特性速览 34个可编程GPIO&#xff08;部分引脚受限&#xff09;输入模…

调用.net DLL让CANoe自动识别串口号

1.前言 CANoe9.0用CAPL控制数控电源_canoe读取程控电源电流值-CSDN博客 之前做CAPL通过串口控制数控电源&#xff0c;存在一个缺点&#xff1a;更换电脑需要改串口号 CSDN上有类似的博客&#xff0c;不过要收费&#xff0c;本文根据VID和PID来自动获取串口号&#xff0c;代码…

SpringBoot十二、SpringBoot系列web篇之过滤器Filte详解

一、前言 JavaWeb三大组件Servlet、Filter、Listener&#xff0c;其中之一便是过滤器Filter。 其实&#xff0c;Filter我们平常用的不多&#xff0c;一般多为项目初期搭建web架构的时候使用&#xff0c;后面用的就少了&#xff0c;在日常业务开发中不太可能碰到需要手写Filte…

Java实现飞机射击游戏:从设计到完整源代码

JAVA打飞机游戏毕业设计 一、游戏概述 本游戏基于Java Swing开发&#xff0c;实现了经典的飞机射击游戏。玩家控制一架战斗机在屏幕底部移动&#xff0c;发射子弹击落敌机&#xff0c;同时躲避敌机攻击。游戏包含多个关卡&#xff0c;随着关卡提升&#xff0c;敌机速度和数量…

通俗易懂linux环境变量

如果想要清楚的了解环境变量&#xff0c;我觉得我们需要先大致搞清楚一个简单的事——什么是会话&#xff1f; 会话大致是什么&#xff1f; 在这里我们的目的是更好的理解环境变量&#xff0c;所以适当讲解一下会话即可。通常我们都是用xshell连接远程服务器&#xff0c;都会打…