论文阅读:A fast, scalable and versatile tool for analysis of single-cell omics data

Zhang, K., Zemke, N.R., Armand, E.J. et al. A fast, scalable and versatile tool for analysis of single-cell omics data. Nat Methods 21, 217–227 (2024).

论文地址:https://doi.org/10.1038/s41592-023-02139-9

代码地址:https://github.com/kaizhang/SnapATAC2/


摘要

单细胞组学技术在复杂组织中基因调控研究领域带来了革命性进展。分析这些数据集的一大计算挑战在于,将大规模、高维数据投影到低维空间的同时,保留细胞之间的相对关系。这种低维嵌入对于分解细胞异质性和重建细胞类型特异的基因调控程序至关重要。然而,传统的降维技术在计算效率和全面处理不同分子模式下的细胞多样性方面面临挑战。为此,我们引入了一种非线性降维算法并将其整合到Python包SnapATAC2中。该算法不仅能够更精确地捕捉单细胞组学数据的异质性,还能确保运行效率和内存使用的优化,其性能随细胞数量线性扩展。我们的算法在多种单细胞组学数据集上表现出卓越的性能、可扩展性和多功能性,包括单细胞转座酶可及染色质测序(scATAC-seq)、单细胞RNA测序(scRNA-seq)、单细胞Hi-C以及单细胞多组学数据集。这充分表明了其在推动单细胞分析领域发展的实用价值。

引言

单细胞组学技术的快速发展,使得对基因组中编码的基因调控程序的分析达到了前所未有的分辨率和规模。单细胞基因组、转录组、开放染色质图谱、组蛋白修饰、转录因子结合位点、DNA甲基化和染色质结构等的分析,为理解细胞身份和调控机制提供了宝贵的见解。然而,单细胞组学数据的极大规模和复杂性常常带来显著的计算挑战,迫切需要开发高效、可扩展且鲁棒性强的数据分析方法。

分析单细胞组学数据的一个关键步骤是将高维数据投影到低维空间,同时保留细胞之间的相对关系,这一过程被称为降维。降维对于后续分析(如聚类、批次效应校正、数据整合和可视化)的成功至关重要。有效的降维技术是可视化不同细胞群体、识别稀有细胞类型以及描绘细胞类型特异性转录调控程序的基础。目前,单细胞组学降维算法主要分为线性和非线性两类。线性降维算法如主成分分析(PCA),被SCANPY和Seurat用于单细胞RNA测序(scRNA-seq)数据分析;潜在语义索引(LSI)被ArchR和Signac用于单细胞开放染色质测序(scATAC-seq)数据分析。这些算法因其计算效率和可扩展性而广受欢迎,但在处理具有复杂非线性结构的数据集(如单细胞Hi-C和单细胞多模态组学数据集)时并不理想。

非线性降维方法则更擅长捕捉复杂且常常是非线性的细胞关系。例如,潜在狄利克雷分布(LDA)被用于scATAC-seq和scHi-C数据;基于拉普拉斯的算法被用于scRNA-seq和scATAC-seq数据;各种用于scRNA-seq、scATAC-seq和scHi-C数据的神经网络模型。这些非线性降维方法已成为单细胞数据可视化的标准方法,例如t分布邻域嵌入(t-SNE)和统一流形近似与投影(UMAP)尽管最近对其可靠性和有效性提出了一些质疑。尽管非线性方法在处理复杂结构和低维流形投影方面表现出色,但通常计算效率较低且可扩展性有限。例如,LDA依赖于马尔科夫链蒙特卡罗算法进行模型训练,收敛速度慢,计算成本高且难以并行化,使其难以应用于大型数据集。基于拉普拉斯的技术(如我们之前的SnapATAC工作)需要计算所有细胞对之间的相似性矩阵,导致内存使用随细胞数量呈二次增长。深度神经网络模型虽然性能强大,但训练成本高,通常需要图形处理单元(GPU)等专用硬件支持。

在本研究中,我们提出了一种非线性降维算法,能够在解析复杂组织的细胞组成时兼顾计算效率和准确性。我们的关键创新在于使用矩阵无关的谱嵌入算法,将单细胞组学数据投影到保留数据内在几何特性的低维空间。不同于传统的谱嵌入方法(需要构建图拉普拉斯矩阵,存储需求随细胞数量呈二次增长),我们的算法通过使用Lanczos算法隐式操作拉普拉斯矩阵,避免了这一计算昂贵的步骤。这一策略显著降低了时间和空间复杂度,使其随单细胞数据的细胞数量线性扩展。

为了评估算法的准确性和实用性,我们在包含不同实验方案、物种和组织类型的多种数据集上进行了广泛的基准测试。结果表明,我们的矩阵无关谱嵌入算法在速度、可扩展性和解析细胞异质性方面均优于现有方法。此外,我们展示了该算法可扩展到多种单细胞组学数据的分子模式,利用来自不同单细胞组学数据类型的互补信息揭示细胞异质性。

我们将这些算法改进实现为一个Python包SnapATAC2。这是对原始SnapATAC的重大升级,提供了显著的改进,包括更快的速度、更低的内存使用、更可靠的性能以及面向多种单细胞组学数据的综合分析框架。SnapATAC2可从 https://github.com/kaizhang/SnapATAC2/ 免费获取。

SnapATAC2 工作流程概览

SnapATAC2 是一种全面且高性能的单细胞组学数据分析解决方案。与原版 SnapATAC 相似,SnapATAC2 提供了丰富的功能,覆盖 scATAC-seq 数据分析流程的多个阶段。此外,SnapATAC2 的设计具有高度灵活性,可适用于多种单细胞组学数据类型。例如,其降维子程序不仅可用于 scATAC-seq 数据,还能适配 scRNA-seq、单细胞 DNA 甲基化和 scHi-C 数据,体现了其强大的适应性。

为了提升性能和可扩展性,SnapATAC2 使用了 Rust 编程语言来执行计算密集型子程序,并提供了 Python 接口以实现便捷的安装和友好的用户体验。这种组合使得 SnapATAC2 能高效处理大规模单细胞组学数据,同时适用于不同研究背景的用户。此外,为了进一步提高在处理大规模单细胞数据时的可扩展性,SnapATAC2 尽可能采用磁盘数据结构和外存算法,使其在分析大型数据集时不至于过度占用系统资源。

SnapATAC2 具有模块化和可定制性,用户可以根据特定需求调整分析流程,同时还能与 scverse 生态系统中的其他软件包(如 SCANPY 和 scvi-tools)无缝集成,从而增强其适用性和功能性。

SnapATAC2 包括四个主要模块:预处理嵌入/聚类功能富集分析以及多模态组学分析(如图 1a 所示)。

  • 预处理模块 负责处理原始 BAM 文件、评估数据质量、生成计数矩阵以及识别双重细胞,为后续分析奠定了坚实基础。
  • SnapATAC2 的核心是其 嵌入/聚类模块,其中引入了一种新的降维算法,用于识别独特的细胞簇并揭示生物学模式。
  • 功能富集模块 提供了详细的数据解读,包括差异可及性分析和基序分析。
  • 多模态组学分析模块 则允许研究人员整合多种生物数据,分析复杂且多面的生物学数据集,并构建基因调控网络以加深对生物学机制的理解。

讨论

在本研究中,我们介绍了用于分析多种单细胞组学数据的工具 SnapATAC2。相比现有的降维方法,SnapATAC2 在准确性、抗噪性和可扩展性方面表现更为出色,为研究者提供了强大的工具来通过单细胞基因组学、转录组学和表观基因组学分析探究基因调控程序。

SnapATAC2 的一个显著优势是其与单细胞分析生态系统中广泛使用的软件工具的无缝兼容性。通过采用 AnnData 数据格式,SnapATAC2 能轻松与 SCANPY、scvi-tools 和 SCENIC+ 等成熟软件包集成。这一功能对于需要进行专业分析(如数据插补或轨迹推断)的研究者尤为有利,从而进一步增强了 SnapATAC2 的核心功能。

SnapATAC2 的关键创新在于其 基于矩阵自由光谱嵌入算法的降维方法。尽管已有许多算法被提出用于加速光谱嵌入,但 SnapATAC2 的算法独树一帜,因为它不依赖于子采样或近似计算,而是提供精确解。该算法不仅在细胞聚类和异质性识别方面优于现有方法,还保持了计算效率,非常适合于大规模单细胞组学数据分析。此外,我们通过将该矩阵自由光谱嵌入算法应用于多种单细胞数据类型(包括 scATAC-seq、scRNA-seq、单细胞 DNA 甲基化、scHi-C 和单细胞多组学数据),验证了其通用性。

算法局限性
目前,矩阵自由光谱嵌入算法仅基于余弦相似度计算。然而,对于某些数据类型,研究者可能更倾向于使用其他度量方法来量化细胞间的相似性。例如,我们的研究发现,对于在转录组和表位索引实验中使用的蛋白表达数据,欧几里得距离能够提供更准确的结果。未来的开发可以扩展矩阵自由算法以适应其他相似性度量方法。一种潜在的解决方案是利用一小组标记点将数据转化为稀疏特征向量,然后应用可扩展的矩阵自由光谱嵌入算法。

综上,SnapATAC2 在单细胞数据分析领域代表了一项重要进展,为研究表观基因组学提供了一种易于使用、可扩展且高性能的解决方案。随着持续的开发与优化,SnapATAC2 有潜力成为单细胞多组学数据分析的通用工具,最终推动新的生物学发现的实现。


模型的创新点在于在降维计算阶段降低了计算复杂度且具有可扩展性,后续将关注具体的计算复杂度

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

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

相关文章

Hive离线数仓结构分析

Hive离线数仓结构 首先,在数据源部分,包括源业务库、用户日志、爬虫数据和系统日志,这些都是数据的源头。这些数据通过Sqoop、DataX或 Flume 工具进行提取和导入操作。这些工具负责将不同来源的数据传输到基于 Hive 的离线数据仓库中。 在离线…

设计模式之 模板方法模式

模板方法模式是行为型设计模式的一种。它定义了一个算法的骨架,并将某些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。 模板方法模式的核心在于: 封装算法的骨架:通过父类中的模板方…

【分治】--- 快速选择算法

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 🏠 颜色划分 📌 题目解析 颜色分类 本题要求我们原地对元数组划分0,1,2三个区域,也就是不能使用辅助数组&#xf…

万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统

万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统 哈喽小伙伴们还,我是Stark-C~ 最近苹果Mac mini 2024款在政府补贴的加持下,仅需3500块钱左右就能到手确实挺香的。我看很多评论区的小伙伴跃跃欲试,但是也有不少之前从未体…

C++设计模式行为模式———状态模式

文章目录 一、引言二、状态模式三、总结三、总结 一、引言 状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。其实现可完成类似有限状态机的功能。换句话说,一个对象可以处…

vscode自动打印日志插件

自动日志工具(Auto Logger Log) 概述 自动日志工具(Auto Logger Log) 是一款 VS Code 扩展,用于简化生成调试日志的过程。它可以为选中的变量自动生成打印语句,帮助开发者快速记录和调试代码。该扩展支持多…

优雅的不等式——Hard

上一文《Easy》末尾出现了又要我们证明的例子,Hard难度就是继续答题答下去 其实一样可以用那篇文章https://zhuanlan.zhihu.com/p/669285539中的式子继续算下去,但是有三个系数,实在是太费时间和人力了 翻到下面的第十九种类型,可…

虚拟局域网PPTP配置与验证(二)

虚拟局域网PPTP配置与验证(二) windows VPN客户端linux 客户端openwrt客户端性能验证虚拟局域网PPTP配置与验证(一)虚拟局域网PPTP配置与验证(二) : 本文介绍几种客户端连接PPTP服务端的方法,同时对linux/windows/openwrt 操作系统及x86、arm硬件平台下PPTP包转发性能进…

Move 合约部署踩坑笔记:如何解决 Sui 客户端发布错误Committing lock file

Move 共学活动:快速上手 Move 开发 为了帮助更多开发者快速了解和掌握 Move 编程语言,Move 共学活动由 HOH 社区、HackQuest、OpenBuild、KeyMap 联合发起。该活动旨在为新手小白提供一个良好的学习平台,带领大家一步步熟悉 Move 语言&#…

介绍一下strupr(arr);(c基础)

hi , I am 36 适合对象c语言初学者 strupr(arr)&#xff1b;函数是把arr数组变为大写字母 格式 #include<string.h> strupr(arr); 返回值为arr 链接分享一下arr的意义(c基础)(必看)(牢记)-CSDN博客 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #incl…

进程间通信5:信号

引入 我们之前学习了信号量&#xff0c;信号量和信号可不是一个东西&#xff0c;不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的&#xff0c;无法预测信号可以临时保存下来&#xff0c;之后再处理信号是异步发送的…

浅谈网络 | 传输层之套接字Socket

目录 基于 TCP 协议的 Socket 程序调用过程基于 UDP 协议的 Socket 程序函数调用过程服务器如何接入更多的项目构建高并发服务端&#xff1a;从多进程到 IO 多路复用 在前面&#xff0c;我们已经介绍了 TCP 和 UDP 协议&#xff0c;但还没有实践过。接下来这一节&#xff0c;我…

Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图

用户打开 PDF 文档时&#xff0c;他们会看到 PDF 的初始视图。默认情况下&#xff0c;打开 PDF 时不会显示书签面板或缩略图面板。在本文中&#xff0c;我们将演示如何设置文档属性&#xff0c;以便每次启动文件时都会打开书签面板或缩略图面板。 Spire.PDF for .NET 是一款独…

FileLink内外网文件共享系统与FTP对比:高效、安全的文件传输新选择

随着信息技术的不断进步&#xff0c;文件传输和共享已经成为企业日常工作中不可或缺的一部分。传统的FTP&#xff08;File Transfer Protocol&#xff09;协议在一定程度上为文件共享提供了便利&#xff0c;但随着企业对文件传输的需求越来越复杂&#xff0c;FileLink内外网文件…

神经网络归一化方法总结

在深度学习中&#xff0c;归一化 是提高训练效率和稳定性的关键技术。以下是几种常见的神经网络归一化方法的总结&#xff0c;包括其核心思想、适用场景及优缺点。 四种归一化 特性Batch NormalizationGroup NormalizationLayer NormalizationInstance Normalization计算维度…

ORB-SLAM2源码学习:Initializer.cc:Initializer::ComputeF21地图初始化——计算基础矩阵

前言 在平面场景我们通过求解单应矩阵H来求解位姿&#xff0c;但是我们在实际中常见的都是非平面场景&#xff0c; 此时需要用基础矩阵F求解位姿。 1.函数声明 cv::Mat Initializer::ComputeF21(const vector<cv::Point2f> &vP1, const vector<cv::Point2f>…

离散化 C++

题目 解题思路 将所有对坐标的访问用map映射到一个新的坐标轴上再在新的坐标轴上进行加法用前缀和快速求出区间的和 代码实现 #include<iostream> #include<algorithm> #include<unordered_map>using namespace std;typedef pair<int, int> PII;con…

uniop触摸屏维修eTOP40系列ETOP40-0050

在现代化的工业与商业环境中&#xff0c;触摸屏设备已成为不可或缺的人机交互界面。UNIOP&#xff0c;作为一个知名的触摸屏品牌&#xff0c;以其高性能、稳定性和用户友好性&#xff0c;广泛应用于各种自动化控制系统、自助服务终端以及高端展示系统中。然而&#xff0c;即便如…

机器学习与图像处理中上采样与下采样

一、机器学习中的上采样 目的&#xff1a;在机器学习中&#xff0c;上采样用于处理不平衡数据集&#xff0c;即某些类别的样本数量远多于其他类别。上采样的目标是通过增加少数类样本的数量来平衡类别分布&#xff0c;从而提高模型对少数类的识别能力。 1.随机过采样&#xff0…

Unity中动态生成贴图并保存成png图片实现

实现原理&#xff1a; 要生成长x宽y的贴图&#xff0c;就是生成x*y个像素填充到贴图中&#xff0c;如下图&#xff1a; 如果要改变局部颜色&#xff0c;就是从x1到x2(x1<x2),y1到y2(y1<y2)这个范围做处理&#xff0c; 或者要想做圆形就是计算距某个点&#xff08;x1,y1&…