Nat. Mach. Intell. | 通过深度神经网络联合建模多个切片来构建一个三维全生物体空间图谱

今天为大家介绍的是来自Angela Ruohao Wu 和Can Yang团队的一篇论文。空间转录组学(ST)技术正在革新探索组织空间结构的方式。目前,ST数据分析通常局限于单个二维(2D)组织切片,这限制了我们理解在三维(3D)空间中发生的生物过程的能力。在这里,作者介绍了STitch3D,这是一个统一的框架,它整合多个ST切片以重建3D细胞结构。通过联合建模多个切片并将其与单细胞RNA测序数据整合,STitch3D同时识别出具有一致基因表达水平的3D空间区域,并揭示了3D细胞类型分布。

a16d2e0d1f02f021a9113d5db00209ef.png

每个单独的组织切片描述了一个二维的转录组景观,多个切片的联合建模则提供了描绘生物系统三维画面的机会。以下两个三维组织分析任务十分重要。第一个任务是识别生物学上可解释的具有相似基因表达的三维空间区域,以揭示组织结构。然后,结果可以进行如检测与区域相关的具有三维空间模式的基因等下游分析。第二个任务是通过整合多个ST切片和单细胞RNA测序(scRNA-seq)图谱来推断三维细粒度的细胞类型分布。现有的下一代测序ST技术可以检测空间点内的全基因组基因表达,但每个点通常包含多个细胞,导致分辨率相对较低。利用来自scRNA-seq图谱的信息,三维细胞类型解卷积任务解析空间点中的细胞类型混合物,从而实现三维重建的更高分辨率,允许洞察特定细胞类型富集区域的生物功能。在文中,作者介绍了STitch3D,用于使用多个切片描述三维组织结构。它以统一的框架解决上述两个三维分析任务,提供三维组织结构的补充视图。通过有效地模拟来自多个切片的基因表达和空间位置,STitch3D可以区分切片间的生物变异和批处理效应,并整合跨切片的信息来组装强大的三维组织模型。

模型部分

8ec0f0b5d19fb763fab2a69905256046.png
图 1

STitch3D是一种基于深度学习的方法,它使用多个二维切片来重建三维组织结构(见图1)。STitch3D的输入是多个切片和一个匹配的单细胞RNA测序(scRNA-seq)。预处理步骤包括通过对齐切片来建立三维空间点坐标,并构建全局三维邻域图。在这些步骤之后,STitch3D被训练以整合所有切片的信息。引入了一个共享的潜在空间来提取有意义的生物变异,并促进批处理效应的移除。在潜在空间中,每个点都有其表示,这用于共同执行空间域识别和细胞类型解卷积任务。STitch3D通过基于图注意力的网络将多个切片的点的基因表达和空间信息映射到共享的潜在空间,该网络利用了点的三维邻域图。此外还引入一个判别网络以从潜在表示中推断细胞类型比例。在整合多个切片的有效批处理效应建模下,STitch3D被训练以通过结合估计的细胞类型比例和细胞类型特异性基因表达谱来重建基因表达。

基准测试

9a3d123f1ab06daf2bf592e32bb6e215.png
图 2

作者首先使用DLPFC数据集评估了STitch3D在空间域检测方面的表现。数据集标记了六层切片(L1-L6)和白质(WM)。当应用于每个单独的切片时,STitch3D稳定地恢复了层结构。在多切片分析中应用时,STitch3D产生了跨切片一致的结果,促进了三维重建。STitch3D的结果与原数据相比具有相似的模式,表明其可靠性(图2a,b)。为了定量评估,作者将数据标记视为真实情况。STitch3D的多切片结果与其单切片结果相比,获得了更高的ARI分数,表明STitch3D能够跨切片借用信息(图2e)。作者还将STitch3D与包括BayesSpace、SpaGCN和STAGATE在内的空间域识别方法进行了比较。与STitch3D不同,这些方法在检测皮质层方面显示出较差的能力(图2e)。STitch3D在三维空间区域识别方面的优势归因于其能在共享潜在空间中有效整合切片(图2d)。接下来,作者评估了STitch3D的细胞类型解卷积性能,STitch3D在多切片分析中比单切片结果获得了更高的AUC分数(图2f)。

重建鼠脑

82d425f81ea827882f4757c7b7087270.png
图 3

作者展示了STitch3D如何准确重建复杂的成年小鼠大脑三维结构。这里的三维重建任务具有挑战性,因为它要求方法考虑数十个切片中的批处理效应,并区分细微的细胞亚型差异。STitch3D基于综合点表示将大脑划分为有序的三维域。例如被标记为簇1、2和5的三个层状结构域形成了等皮层区域(图3a-c)。这些簇在轨迹推断中显示出强连通性。然后,在这些簇中进行的假时分析显示了所有切片中与皮层生成一致的模式(图3j)。利用参考中的细粒度细胞类型特征,STitch3D揭示了三维细胞类型分布。例如,它准确重建了在角回(CA)和齿状回(DG)的四种海马神经元类型的分布(图3e,f)。这些分布正确地与参考图谱中标注的海马区域CA1、CA2、CA3和DG相匹配(图3d)。STitch3D还捕获了皮层层中兴奋性神经元的分布,以及其他主要区域亚型。对于方法之间的定量比较,作者使用了四种海马神经元类型的估计比例来恢复CA1、CA2、CA3和DG区域,并使用ROC分析与区域注释进行了比较。类似的分析也针对2-3层和5-6层中的两种皮层神经元类型进行(图3g)。STitch3D的单切片分析已经显示出与其他方法相比整体更好的AUC分数。通过跨切片借用信息,STitch3D在其多切片分析中实现了更好的准确度。

HER2阳性乳腺癌数据

ee30fddfa0343322e55357f880a53182.png
图 4

作者分析了HER2阳性乳腺癌数据,展示了STitch3D在分析异常组织中生物学发现方面的能力。除了正常组织数据外,作者还将STitch3D应用于在结核分枝杆菌诱导后的小鼠淋巴结数据和小鼠皮肤伤口愈合期间的数据,以展示其捕捉微观层面对干扰的反应的能力。在将STitch3D应用于来自八名患者的肿瘤样本后,计算了全局细胞类型共定位情况。作者在所有样本中发现了一些一致的结果,例如,两种与癌症相关的成纤维细胞(CAFs)之间的负空间相关性。此外,还发现间充质干细胞和炎症样CAFs(MSC/iCAF-like)与包括B细胞、T细胞和浆细胞在内的免疫细胞共定位,与肌成纤维样CAFs(myCAF-like)的模式不同。然后,作者重点关注了E患者的结果。在三个切片中,第一个切片由病理学家注释。使用STitch3D,三个切片被很好地整合(图4a),这说明模型能够将病理学家的注释转移到未标记的切片上(图4b)。STitch3D还识别了六个空间区域(图4a,d)。具体来说,簇2-5恢复了侵袭性癌症区域,STitch3D确实发现癌上皮细胞在这些簇中与其他区域相比富集(图4e,f)。癌上皮细胞比例与乳腺癌标记物ERBB2表达之间的高相关性支持了STitch3D的结果(图4c)。此外,两种CAF亚型的分布模式显示出不同(图4e),这与它们的细胞类型比例负相关性一致。接下来,作者研究了癌区域的异质性。簇4和5都显示出癌上皮细胞的富集。然而,簇4显示出B细胞和T细胞的更高富集,而簇5显示出癌上皮细胞的更高富集(图4f)。作者对这些簇进行了差异表达分析,随后进行了GO分析(图4g,h)。这些富集的生物学过程之间的区别表明这两个区域的差异,凸显了它们各自不同的微环境。

参考资料

Wang, G., Zhao, J., Yan, Y. et al. Construction of a 3D whole organism spatial atlas by joint modelling of multiple slices with deep neural networks. Nat Mach Intell 5, 1200–1213 (2023). 

https://doi.org/10.1038/s42256-023-00734-1

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

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

相关文章

php hyperf 读取redis,存储到数据库

背景说明 小白:伟哥,java中的set是无序的,Redis中可以带顺序吗? 伟哥:可以, 不过不叫set了,叫zset。 概述 SortedSet又叫zset,它是Redis提供的特殊数据类型,是一种特殊…

CLIP 对比学习 源码理解快速学习

最快的学习方法,理清思路,找视频讲解,看源码逻辑: CLIP 源码讲解 唐宇 输入: 图像-文本成对配对的数据 训练模型的过程(自己理解): 怎么做的?:利用数据内部…

S32K一运行IDE挂掉

早上还好好的,到了下午突然间就出问题了,一Debug就挂,整个IDE动不了。 查了这个地址,也没啥问题。查下smartgit看看源代码具体改了什么,发现一大堆配置文件被动了,应该不小心打开这个pe配置,导致…

城市智能图书柜需求说明书

1. 简介 1.1 项目概括 本项目主要实现智能图书柜对图书的借出、还回、续借、查询、上下架、盘点的功能,对于读者,可以进行读者证的办理,读者信息的录入和完善。 1.2 项目背景 ​ 目前大量读者距离图书馆较远,无法方便、快捷地…

Python---多任务的介绍

1. 提问 利用现学知识能够让两个函数或者方法同时执行吗? 不能,因为之前所写的程序都是单任务的,也就是说一个函数或者方法执行完成另外一个函数或者方法才能执行,要想实现这种操作就需要使用多任务。 多任务的最大好处是充分利用CPU资源&…

《PySpark大数据分析实战》-14.云服务模式Databricks介绍基本概念

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

centos安装opencv并在springboot中使用

使用conda安装opencv,并在docker运行的容器中使用,这里以运行则springboot应用的容器为例 步骤一:安装 在conda中安装 # 安装依赖 conda install numpy matplotlib# 安装opencv conda install -c conda-forge opencv # 或者制定版本 conda…

记一次java for循环改造多线程的操作

背景 今天在开发质量平台时需要获取某些数据,要请求公司某个工程的OpenAPI接口A。此接口为返回通用数据的接口,且接口本身的RT都在2~3秒之间。使用该接口,需要进行两次循环获取,然后对返回数据进行处理组装&#xff0…

【NI-RIO入门】扫描模式

于NI KB摘录 所有CompactRIO设备都可以访问CompactRIO扫描引擎和LabVIEW FPGA。 CompactRIO 904x 系列是第一个引入 DAQmx 功能的产品线。 扫描引擎(IO 变量) – 主要为迁移和初始开发而设计。控制循环频率高达 1 kHz1,性能控制器上的频率更…

kill编译异常处理

当kill编译时出现如下警告 Build target Target 1 linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_LCD_SHOWCHAR?LCD1602 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_LCD_SHOWSTRING?LCD…

代码随想录第三十五天(一刷C语言)|整数拆分不同的二叉搜索树

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、整数拆分 思路:参考carl文档。 1、确定dp数组以及下标的含义:分拆数字i,可以得到的最大乘积为dp[i]。 2、确定递推公式:从1遍历j&#…

Nginx location+Nginx rewrite(重写)(新版)

Nginx locationNginx rewrite(重写) Nginx locationNginx rewrite(重写)一、location1、常用的Nginx 正则表达式2、location的类型3、location 的匹配规则4、location 优先级5、location 示例说明5.1只修改网页路径5.2修改nginx配置文件和网页路径5.3一般前缀5.4正则匹配5.5前缀…

C# WPF上位机开发(usb设备访问)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前很多嵌入式设备都支持usb访问,特别是很多mcu都支持高速usb访问。和232、485下个比较,usb的访问速度和它们基本不在一个…

miRMaker

Introduction 除了miRNA表达数据,各种miRNA相关的知识也强有力地支持了对miRNA功能相互作用的理解。 那些具有许多共同调控靶基因或疾病的miRNAs可能具有相似的功能 一些方法通过考虑实验验证的miRNA-靶标关系来评估miRNA相互作用,评估miRNA功能相互作…

自清洗过滤器工作原理尺寸选型参数,内部结构,压差开关如何调节

​ 1:全自动自清洗过滤器设备介绍 全自动反冲洗过滤器是水净化过程中不可缺少的处理手段,用于拦截水中的各种杂质,以净化水质或保护系统中其他设备的正常工作。普通网式过滤器因其结构简单、过滤效果好、阻力小而广泛应用于水源过滤、工业循…

【Android Studio】各个版本下载地址

下载地址: https://developer.android.com/studio/archive?hlzh-cn

如何用 Cargo 管理 Rust 工程系列 丁

以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/PP9b5cSNd-7IqgNovcrB0A 优化输出 前面已经对 cargo package 工程编译输出了好多遍,发现编译结果打印的信息都包含了这个 unoptimize…

c语言:[输出函数]与[输入函数]|要点简述

一、【输出函数】 printf() 与 puts()的不同点 1、printf()函数 printf()支持单个字符%c的输出,以及字符串%s的输出。 (1)如果是以%c的形式输出,是一个字符一个字符的输出。因此,要用一个循环语句,把字符逐个输出。 (2)而用%…

Unity与Android交互通信系列(2)

在上一篇文章中,我们介绍了Unity和Android交互通信的原理及在Unity中直接调用Java代码的方式,但没有给出代码示例,下面通过实际例子演示上篇文章中AndroidJavaClass、AndroidJavaObject两个类的基本用法,由于交互通信涉及到两端&a…

查看知乎数学公式Tex源码的方法

首先使用F12打开开发者工具,再使用元素选择器选中要查看的公式。 在源码对应位置附近可以看到一个类型为 math/tex 的 script,如果没找到可以展开目录查找。