编译
林荣鑫
审稿
程昭龙,王静
本文介绍由美国加州大学伯克利分校计算生物学中心的NirYosef为通讯发表在NatureBiotechnology的研究成果:本文作者提出了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管道中使用。
图1scvi-tools用户视角
适用于多种组学数据的scvi-tools具有两个新功能。第一个功能是它可以同时消除由多个干扰因素造成的噪声,包括离散(例如,批次类别)和连续(例如,线粒体读数百分比)因素。作者用scvi-tools对果蝇翅膀发育的scRNA-seq数据集进行处理,可以消除该数据集因细胞周期、性别和折叠而产生的大量噪声。第二个功能是扩展了几种scvi-tools集成方法,通过最近提出的scArches神经网络架构将新的“查询”数据迭代地集成到预训练的“参考”模型中。此功能的优点在于能够将新样品纳入分析而无需重新处理整组样品。
从开发人员的角度来看,scvi-tools提供了一组构建块,可以轻松实现新模型并以最小的代码开销修改现有模型(图2a、b)。这些构建块使用流行的库,并通过神经网络组件和GPU加速促进概率模型设计。这使得开发人员可以将主要精力放在概率模型的开发上,而不是数据管理、模型训练和用户界面代码上。同时,作者展示了如何通过重新实现Stereoscope将这些构建块用于高效的模型开发,在这个过程中,作者还展示了如何将代码的复杂度降低(图2c、d、e)。
图2scvi-toolsAPI和Stereoscope的复现
3
总结
在scvi-tools的开发过程中,研究目标是在对概率模型的构建和部署时缩小单细胞数据分析模型与现代机器学习框架两者之间的差距。因此,开发人员可以在继续依赖流行的机器学习库的同时,构建可供终端用户立即使用的概率模型。作者提供了一系列关于使用scvi-tools构建模型的教程,介绍了数据管理、模块构建和模型开发的步骤。还在GitHub上构建了一个模板库,使开发人员能够快速创建一个使用单元测试、自动化文档和流行代码样式库的Python包。此模板库演示了如何将scvi-tools构建块用于外部模型部署。大多数使用scvi-tools构建的模型将以这种方式部署为独立的包,同时遵守标准的API和编码约定,这使得新用户更容易访问。
scvi-tools仍在积极开发中,未来将会不断发展,并会增加对新模型、新工作流程和新功能的支持。这些资源将通过促进新模型的原型制作,为概率分析软件的部署创建标准和加强科学发现来服务于单细胞组学数据分析。
参考资料
Gayoso,A.,Lopez,R.,Xing,G.etal.APythonlibraryforprobabilisticanalysisofsingle-cellomicsdata.NatBiotechnol().