社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Nat. Biotechnol. | 用于单细胞组学数据概率分析的Python库

DrugAI • 3 年前 • 339 次点击  

编译 | 林荣鑫

审稿 | 程昭龙,王静

本文介绍由美国加州大学伯克利分校计算生物学中心的Nir Yosef为通讯发表在 Nature Biotechnology 的研究成果:本文作者提出了scvi-tools,这是一个用于对单细胞组学数据进行深度概率分析的 Python 库。此工具主要作用是整合多种概率模型,并解决不同概率模型之间接口不一致的问题。它集成了多种高效的概率方法,涵盖多项基本分析任务,可通过标准化、易于使用的界面访问并接入到Scanpy、Seurat和Bioconductor工作流程中。通过这种标准化方式,开发人员能够在不同模型之间开发新功能。它还为以scvi-tools为基础的可扩展软件构建块提供了一个开发环境,在该环境中,可以有效地开发、基准测试和部署用于单细胞组学的新概率模型。

1

背景

单细胞数据的分析方法通常用于解决降维、细胞聚类、细胞状态注释、去除噪声、差异表达分析、基因表达空间模式识别以及多模态组学数据的联合分析等计算任务。大多数分析方法是基于似然模型来表示数据的变化,这些模型称之为“概率模型”。概率模型为捕捉生物系统中的不确定性提供了原则性的方法,且便于分析产生组学数据的多种变异来源。


目前有几个障碍影响了概率模型在单细胞组学数据分析中的应用。第一个障碍与用户实现和运行此类模型的难度有关。由于概率模型通常使用 Python机器学习库来实现,因此用户通常需要与比传统分析环境中级别更低的接口和对象进行交互。


第二个障碍与新概率模型的开发有关。从开发人员的角度来看,为了支持概率模型,需要实现许多必要的例程,包括数据处理、张量计算、处理设备管理的训练例程以及底层优化、抽样和数值程序。尽管目前更高级别的机器学习包可以自动执行其中一些例程,但这些包不能无缝地处理单细胞组学数据。


2

方法

为解决上述障碍,作者提出了 scvi-tools。从终端用户的角度来看,scvi-tools 为许多单细胞数据分析任务提供了标准化的访问方法。在分析流程中,scvi-tools 位于初始质量控制 (QC) 驱动的预处理的下游,其输出可以利用通用的单细胞分析工具进行解释(图 1a)。在 scvi-tools 中实现的14 个模型通过带注释的数据集(AnnData)格式与 Scanpy 进行交互,且所有模型共享一致的用户界面(图 1b)。scvi-tools 库还具有与 R 交互的接口,因此每个模型都可以在 Seurat 或Bioconductor 管道中使用。

图1 scvi-tools用户视角


适用于多种组学数据的 scvi-tools 具有两个新功能。第一个功能是它可以同时消除由多个干扰因素造成的噪声,包括离散(例如,批次类别)和连续(例如,线粒体读数百分比)因素。作者用scvi-tools对果蝇翅膀发育的 scRNA-seq 数据集进行处理,可以消除该数据集因细胞周期、性别和折叠而产生的大量噪声。第二个功能是扩展了几种 scvi-tools 集成方法,通过最近提出的 scArches 神经网络架构将新的“查询”数据迭代地集成到预训练的“参考”模型中。此功能的优点在于能够将新样品纳入分析而无需重新处理整组样品。


从开发人员的角度来看,scvi-tools 提供了一组构建块,可以轻松实现新模型并以最小的代码开销修改现有模型(图 2a、b)。这些构建块使用流行的库,并通过神经网络组件和 GPU 加速促进概率模型设计。这使得开发人员可以将主要精力放在概率模型的开发上,而不是数据管理、模型训练和用户界面代码上。同时,作者展示了如何通过重新实现 Stereoscope 将这些构建块用于高效的模型开发,在这个过程中,作者还展示了如何将代码的复杂度降低(图 2c、d、e)。

图2 scvi-tools API和Stereoscope的复现


3

总结

在 scvi-tools 的开发过程中,研究目标是在对概率模型的构建和部署时缩小单细胞数据分析模型与现代机器学习框架两者之间的差距。因此,开发人员可以在继续依赖流行的机器学习库的同时,构建可供终端用户立即使用的概率模型。作者提供了一系列关于使用scvi-tools 构建模型的教程,介绍了数据管理、模块构建和模型开发的步骤。还在 GitHub 上构建了一个模板库,使开发人员能够快速创建一个使用单元测试、自动化文档和流行代码样式库的Python包。此模板库演示了如何将 scvi-tools 构建块用于外部模型部署。大多数使用 scvi-tools 构建的模型将以这种方式部署为独立的包,同时遵守标准的 API 和编码约定,这使得新用户更容易访问。


scvi-tools 仍在积极开发中,未来将会不断发展,并会增加对新模型、新工作流程和新功能的支持。这些资源将通过促进新模型的原型制作,为概率分析软件的部署创建标准和加强科学发现来服务于单细胞组学数据分析。

参考资料

Gayoso, A., Lopez, R., Xing, G. et al. A Python library for probabilistic analysis of single-cell omics data. Nat Biotechnol (2022). https://doi.org/10.1038/s41587-021-01206-w

scvi-tools 使用文档:https://scvi-tools.org/


数据

https://doi.org/10.6084/m9.figshare.14374574.v1


代码

https://github.com/YosefLab/scvi-tools

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127394
 
339 次点击