在线书籍:https://osca.bioconductor.org
1. 数据结构
Bioconductor 采用了一种称为S4
的灵活的面向对象范式,可以使用丰富且用户友好的方式将多个对象组件封装到单个实例中。
Bioconductor 使用 SingleCellExperiment 类来存储单细胞测序数据(single-cell assay data)和元数据(metadata)。计数矩阵之类的原始数据以一个或多个矩阵的形式存储在 assay 组件中,其中行代表特征(例如基因和转录本),列代表细胞。此外,基本数据的低维形式和描述细胞或特征属性的metadata也可以存储在 SingleCellExperiment 对象中。通过 SingleCellExperiment,可以将与 scRNA-seq 实验相关的所有数据和结果存储在单个实例中。通过单细胞数据和结果的标准化存储,Bioconductor 促进了单细胞分析程序包之间的交互性,并促进了复杂分析工作流程的开发和使用。
2. 数据处理
该部分旨在描述大多数 scRNA-seq 分析所共有的前期分析步骤。这些基本步骤遵循通用的分析流程:
(1) 预处理原始测序数据,生成行为基因(或转录本),列为每个细胞的表达计数矩阵,并创建 SingleCellExperiment对象;
(2) 对数据进行质控,去除可能会干扰下游分析的低质量细胞;
(3) 对原始计数进行标准化标准化以消除细胞和基因特异性偏好;
(4) 进行特征选择筛选生物学相关基因进行下游分析;
(5) 应用降维方法压缩数据并降噪;
(6) 如果需要,整合多批次 scRNA-seq 数据。
2.1 预处理
对于 scRNA-seq 数据,预处理包括将测序 reads 与参考转录组进行比对和定量,获得每个细胞和每个基因的表达值计数矩阵。尽管多种命令行软件形式的预处理方法已经存在,scPipe
和scruff
等 Bioconductor 软件包提供了完全用 R 编写的预处理工作流程。对于使用命令行的预处理软件,DropletUtils
和tximeta
等 Bioconductor 软件包可以读入各种命令行软件工具如 Cell Ranger
(10X Genomics), Kallisto-Bustools
和 Alevin
的结果。值得注意的是,伪对齐(pseudo-alignment )方法(例如 Alevin 和 Kallisto)可以显著减少计算时间和运行内存。
在上述所有工作流程中,最终结果是将计数矩阵导入 R 并创建 SingleCellExperiment 对象。对于特定的文件格式,我们可以使用 DropletUtils
(用于 10X 数据)或 tximeta
(用于伪对齐方法)包中的专用方法。
2.2 质量控制
造成 scRNA-seq 数据中的低质量文库可能有多种原因,如解离时的细胞损伤或文库制备失败(例如逆转录或 PCR 扩增异常)。这些通常表现为“细胞”总数低、表达的基因数少、线粒体基因表达比例高。这些低质量的文库可能会导致下游分析中获得误导性结果。详见Quality control of scRNAseq data。
对于基于液滴的实验步骤(droplet-based protocols),通常只保留包含且只包含一个细胞的液滴所生成的数据。DropletUtils
包根据观察到的每个液滴的表达谱与周围溶液的表达谱来区分空(只含溶液中 RNA )液滴和含细胞的液滴。它还可以去除基于液滴的实验中由于 barcode 序列错误产生的假细胞。同样,scran
或scds
包可以通过比较实验检测到的液滴与模拟的 doublets 液滴的表达谱来识别可能包含多个细胞(doublets)的液滴。
在排除空液滴并识别潜在的双细胞后,包含潜在受损细胞或测序覆盖度较差的液滴将被过滤掉。文库大小(定义为每个细胞所有相关基因的总计数之和)是一个常用的过滤指标。 具有较小文库大小的细胞更可能是低质量细胞,这可能是因为在 RNA 制备过程中的某个步骤如细胞裂解、不成功的 cDNA 捕获和扩增等造成了 RNA 丢失。另一个指标是每个细胞中表达的基因的数量, 定义为该细胞中具有非零计数的内源基因的数量。表达基因很少的细胞可能是转录本群体没有被成功捕获。线粒体基因组中基因的表达比例也是一个指标,因为线粒体基因比例高可能是因为细胞损伤造成细胞质RNA丢失,而线粒体因为体积大于单个转录物分子不太可能通过细胞膜上的孔逸出。 Scater
软件包简化了这些指标的计算。
2.3 标准化
scRNA-seq 数据不同文库之间存在覆盖率的系统差异,例如测序深度差异。这通常是由于细胞之间 cDNA 捕获或 PCR 扩增效率不同而引起的,而这又是由于起始 RNA 量低引起获得一致性文库困难所导致的。标准化的目的是消除这些系统差异,使它们不干扰聚类或差异表达分析时细胞之间表达谱的比较。
我们先只考虑在单个 scRNA-seq 实验中降低系统差异的方法,因为它们造成数据的偏好性的原因相 似。例如,测序深度的变化将所有基因的表达计数按一定因子进行缩放。如在scater
中所实现的文库大小归一化是最简单的策略。尽管此方法假设任何一对细胞之间的差异表达基因(DEG)上下调平衡 (基因整体表达量不变),但是标准化准确性通常不是 scRNA-seq探索性分析的主要考虑因素,因为 它们对簇聚类的影响很小。
但是,准确的标准化在解释每个基因的统计数据如差异基因分析时非常重要。当在一个给定的 scRNA-seq 数据集中存在多种细胞类型时,最经常观察到表达偏差是表达变化对数值的偏移。通过反卷积进行归一化可以克服这一点,方法是合并许多细胞中的计数数据增加计数的大小以进行准确的 size factor 估计,然后将其解卷积为基于细胞的因子以对每个细胞进行标准化(如在 scran 中实现).
另外,BASiCS, zinbwave 和 MAST 提供了基于模型的标准化方法,不仅可以处理此类文库大小或组成偏差,还可以针对已知的协变量或其他可能干扰生物学上有意义的变异的技术因素进行校正。 这些方法支持更复杂的标准化策略,例如数据的非线性转换。有关此主题可参考如下文献。
2.4 缺失数据填充 (imputation)
数据插补方法可以用来解决单细胞测序数据的稀疏性问题。由于 scRNA-seq 实验经常无法测量到某些基因的表达,从而导致数据表中零值过多,为此开发了零膨胀模型(zero-inflated models)。但是,其效果取决于检测方法或 protocol 的类型,尚无适应所有数据的最优工具。此外,研究表明,scRNA-seq 数据的插补方法会导致假阳性结果,并降低了细胞类型特异性标记基因鉴定的可重复性。
2.5 特征选择
scRNA-seq 数据的探索性分析通常旨在表征细胞间的异质性。诸如聚类和降维之类的分析会根据细胞的基因表达谱进行比较。但是,在这些计算中选择哪些基因用于下游分析影响重大。 特征选择方法旨在识别能对研究的生物系统提供有用信息的基因,同时删除导致随机噪声的基因。 通过只对此类基因进行分析,可以在排除混淆信息的基础上保留有意义的生物学结构。此外, 只关注转录组的这一子集可以显著减小数据集的大小,从而提高下游分析的计算效率。
特征选择的最简单方法是根据基因在整个细胞群体中的表达来选择变化最大的基因。这基于一个假设,真正的生物学差异导致的基因表达变化大于其他仅受技术噪声影响或无关的生物因素引起的表达变化。但是,对数转换无法实现完美的方差稳定化(variance stabilization)。这意味着相比生物异质性,基因的丰度对其程度影响更大。因此,特征选择计算每个基因的方差时通常需要对均值-方差关系进行建模。软件包scran
,BASiCS
和scFeatureFilter
都采用这种方法。
另外,还有可以替代方差的度量标准,例如基于基因的偏离度(deviance)选择特征基因,该方法评估每个基因与细胞间恒定表达的零模型(null model)的拟合程度。与基于方差的特征选择方法不同,偏离度的计算是根据原始的唯一分子标识符(UMI)计数完成的,因此该方法对标准化带来的错误不太敏感。偏离度可以使用 glmpca
软件包进行计算。
2.6 降维
降维旨在减少数据中独立维度的数量。如果不同的基因受同一生物学过程的影响,它们的表达就会存在相关性,这使得降维是可行的。因此,我们不需要单独存储每个基因的信息,而是可以将多个基因的信息压缩成一个特征存储。降维方法在保留数据集中最有意义的信息结构基础上实现了数据的降维。降维的一个额外好处是降低了噪音,它可以把多个基因(比如,跟某一个通路相关的基因)用类似平均值的操作整合在一起,获得的特征可以反应更精确的表达变化模式。降维后下游分析中的计算工作也减少了,因为只需要针对几个维度而不是数千个基因进行计算。效果更好的降维方案(aggressive dimensionality reduction schemes)可以在二维或三维空间对数据进行可视化以帮助解释结果。
scRNA-seq 数据降维的常见第一步是主成分分析(PCA)。PCA 在高维空间中鉴定可捕获数据变异最大的轴(也成为主成分,PC)。前几个主成分维度捕获了数据集中主要的异质性的信息,因此可以有效的降维。这利用了 PCA 成熟的理论特性,即对于给定的矩阵,由前几维 PC 形成的低阶近似矩阵是原始数据的最佳表示。鉴于此属性,使用前几维 PC(或任何类似的低秩近似表示)执行的计算(诸如聚类之类的下游分析)将充分利用数据压缩和去噪的优势。
无论采用哪种方法,用于可视化的降维必然涉及信息丢失并改变细胞之间的距离。因此,直接分析用于绘图的低维坐标是不明智的。相反,这些图应仅只用于解释或传达基于更精确的、更多维度的定量分析结果。这样可以保证分析充分利用了压缩到二维空间时丢失的信息。假如二维图上呈现的细胞分布与使用更多数目的 PC 进行聚类获得的结果之间存在差异,应倾向于相信后者的结果。
SingleCellExperiment 类具有一个专用存储空间 reducedDims 用于存储降维后的数据。scater
软件包提供了多个用于降维分析的便捷函数,可以进行主成分分析(PCA),t-SNE(t-Distributed Stochastic Neighbor Embedding),以及 UMAP(Uniform Manifold Approximation and Projection)分析。destiny
包提供了 Diffusion map 降维方法。zinbwave
和 glmpca
程序包分别使用零膨胀 (zero-inflated)负二项模型和多项式模型进行基于模型的降维分析,优势是在模型中可以考虑混杂因素的影响。
2.7 数据整合
由于技术限制(logistical constraints),大型 scRNA-seq 项目通常需要分多个批次生成数据。但是,不同批次的处理通常会遇到无法控制的差异,例如操作员操作独特性或试剂质量的差异等。这导致在不同批次的细胞中观察到的表达发生系统性差异。此外,随着 scRNA-seq 数据的普及和参考数据集的普及,在整合分析中不可避免地会遇到这种混杂变量的影响。在这个情况下,批次效应可能是数据异质性的主要驱动力,会掩盖相关的生物学差异并使结果的解释变得复杂。
尽管可以使用广义线性模型来整合不同的数据集,但在 scRNA-seq 分析中,这些方法可能不是最佳的。因为它们基于一个假设,即不同批次的细胞中细胞群体的组成是已知的或相同的。为了克服这一限制,研究者开发了不基于细胞群体构成的先验知识的特制方法用于单细胞数据的批次校正。这便利了 scRNA-seq 数据的探索性分析,因为这些先验知识通常是不可用的。
在批次校正之前,最好先检查是否有批次影响。基于特征基因的对数表达值进行 PCA 分析,再使用基于图的聚类方法展示群体结构。理想情况下,每个聚类簇都应包含来自各个重复 scRNA-seq 数据集的细胞。然而,如果细胞簇只包含单个批次的细胞,则表明批次效应把本来相同类型的细胞错误地区分开了。诸如 t-SNE 和 UMAP 之类的方法也会显示出来自不同批次的细胞之间的差异,这与聚类结果是一致的。值得注意的是,如果某个批次确实包含独特的细胞亚群时,这种依赖于混合程度的可视化诊断可能并不有效,但是仍然是有用的近似方法。
诸如 scMerge
、scmap
之类的包可以使用先验细胞标记(请参阅“注释”部分)进行有监督的整合分析,用以指导对基因表达值进行任何批次校正或调整较低维度的展示形式。另一方面,诸如相互最近邻(MNN,mutual nearest neighbours)之类的无监督方法会从彼此相邻的邻居集合中识别 不同批次中成对的细胞。然后,MNN 对中的细胞之间的差异可以用作批次效应的估计值,将其相减得出批处理校正值。实际上,通过调整最近邻居的数量值 k,可以调整批次校正的强弱,其中,较 高的 k 值会导致批次之间子群体的匹配更加广泛(generous matching)。这种基于 MNN 的方法在 batchelor 软件包中有实现。
批次校正的成功取决于生物异质性信息的保留,因为可以设想一种校正方法将所有细胞简单地聚集在一起,虽然实现了细胞的完美混合,但丢弃了感兴趣的生物信息。为此,CellMixS
软件包可用于评估批次之间的细胞混合程度。另一个有用的评估方法是将数据合并后的聚簇结果与每个批次数据 分别获得的聚簇结果相比较。理想情况下,我们应该看到多对一的映射关系,跨批次聚簇结果嵌套 在批次内聚类结果,这表明任何批次内结构都在校正后得以保留。统计量如兰德指数(Rand index)可用于评估聚类结果(兰德指数越大聚类效果越好)。
3. 下游统计分析
因研究目标或实验手段的不同,下游分析的方法和工作流程的选择也差异很大。数据前期处理后, 可以使用 Bioconductor 中能够处理SingleCellExperiment 类并且可以处理大量细胞的工具进行具体 的生物探索分析。在线图书中提供了用于下游分析和可视化的分析流程和案例研究。
3.1 聚类
在 scRNA-seq 数据分析中使用经验性的聚类方式定义具有相似表达谱的细胞为一簇。这使我们可以用更容易理解的离散标记来描述种群异质性,而不是试图理解细胞自身所处的高维流形。在 基于差异表达获得的标记基因进行注释后,可以将簇视为更抽象的生物学概念(例如细胞类型或状态)的代名词。
值得强调的是细胞簇与细胞类型之间的区别。前者是一种经验称谓,而后者是一个生物学事实(尽管定义有些模糊)。因此,需要认识到聚类,其实像显微镜一样,只是探索数据的一个工具。更改聚类参数可以类比于放大和缩小分辨率来调整观察的粒度,并尝试使用不同的聚类算法来获得数据的其它查看角度。
基于图的聚类方法是对大型 scRNA-seq 数据集进行聚类分析的一种灵活且扩展性强的技术。在一个高维空间中,每个点(也就是一个细胞)与其最近的邻居相连构成一幅网络图。边基于相连的细胞的相似性加权,连接越相似的细胞的边的权重越高。louvain 和 leiden 等算法可以用来鉴定细胞簇。
BiocNeighbors 提供了用于精确和近似最近邻检测的分析工具,并通过 scran 构建实际连接图形。 值得注意的是,对于大型 scRNA-seq 数据集,近似 NN 方法以可接受的准确性损失为代价极大地缩短了运行时间,并具有平滑噪声和稀疏性的额外优势。替代方法包括 SIMLR 软件包,它使用多个 kernal 来学习最适合数据的细胞距离度量方式,并可用于聚类和降维。对于大数据,mbkmeans 软件包实现了 k-means 算法的高速版本。最后,SC 和 clusterExperiment 程序包构建了基于多重参
数的一致性聚类比较分析。
许多这些程序包都可以对聚类结果进行定量和视觉评估,此外,还专门设计有用于数据可视化和评估的其它程序包(例如clustree)。另外可以通过一些度量参数(例如簇模块性或轮廓系数silhouette coefficient)来独立评估聚类结果。
3.2 差异表达
差异基因表达(DGE)分析可用于识别驱动簇分离的标记基因。这些标记基因使我们能 够根据其功能注释为每个簇赋予生物学意义。在最明显的情况下,每个簇的标记基因与已经注释的特定细胞类型相关,从而让聚类结果等同于细胞类型鉴定结果。同时还可以应用相同原理检测更细微的差异,例如激活状态或分化状态之间的比较。DGE 分析用于细胞类型注释的替代方案是基因集富集分析,该分析将基因归类到先验的基因模块或生物途径,以便于进行生物解释。我们将在“注释”部分中讨论此主题。
在差异表达方法中,有两种通用方法很突出。第一种方法是把最初广泛应用于普通转录组测序的 R 包(如edgeR
,DESeq2
和limma-voom
)等通过各种方法(例如通过创建伪普通转录组图谱)改造后应用于 scRNA-seq 分析。或者,诸如 zinbwave 之类的方法在离散度估计和模型拟合步骤中减轻在 scRNA-seq数据中大量零的权重,然后再进行差异分析,也可以促进普通转录组差异基因分析方法应用于 scRNA-seq 数据。第二类方法是专门针对单细胞数据的特征开发的,其使用的统计方法直接对 scRNA-seq 数据常见的大量零值直接建模。这些方法将基因表达明确地分为两个部分:离散部分(描述零与非零表达的基因的比例)以及连续部分(基因表达定量水平)。尽管本文提到的所有方法都可以对”连续部分”进行差异分析,但是只有第二类方法可以明确地对“离散部分”进行建模(explicitly model),从而对表达频率的差异进行统计分析。为此,MAST
软件包使用了 hurdle model(Hurdle 模型是二分类模型与零截尾模型的联合,它可通过对两部分分别进行极大似然估计而得到参数估计值)。而scDD
,BASiCS
和SCDE
分别使用贝叶斯混合和层级模型。这些方法可以提 供更广泛的检测功能,并且可以直接用于 SingleCellExperiment 类中包含的 scRNA-seq 数据。
有关 DE 分析和上述各种软件包的比较分析的更多详细信息下下列文章。
3.3 轨迹分析
细胞异质性还可以建模为一个连续的生物过程,如细胞分化。轨迹分析(或伪时间推断)是专门针对单细胞降维分析的一个特殊应用,它使用系统发育方法来沿着(通常是时间连续性的)轨迹对细胞进行排序,如随时间的发育。推断的轨迹可以识别细胞状态之间的过渡、分化过程或动态细胞过程中导致的二分事件。
轨迹推断的最新方法的改进在最大程度地减少了用户输入参数,并且可以基于各种拓扑结构进行差 异基因表达分析(例如 Monocle
,LineagePulse
和 switchde
)。此外,用于轨迹推断的多个 Bioconductor 软件包(例如slingshot
,TSCAN
,Monocle
,cellTree
和MFA
)最近被证明具有出色的性能。由于对于同一个数据集,不同的方法可能产生截然不同的结果,因此一系列的方法和参 数设置需要进行比较测试以评估其鲁棒性(robustness)。
4. 注释
scRNA-seq 数据分析中最具挑战性的任务可以说是聚类簇注释。获得细胞簇方法非常直接,但是要
确定每个簇代表的细胞类型或细胞状态则更加困难。完成这个工作需要弥合当前数据集和先验生物学知识之间的鸿沟,而后者并不总能以一致和定量的方式获得。因此,对 scRNA-seq 数据的注释通常是手动的,并且是分析流程中的常见瓶颈。
为了加快此步骤,可以应用各种计算方法利用先验信息为新的 scRNA-seq 数据集赋予生物意义。先验信息的最明显来源是与特定生物学过程相关的认证基因集(例如,来自GO或 KEGG 通路信息)。另一种方法是将表达谱与已发布的经过领域专家做过注释的参考数据集直接进行比较。
基因集富集
经典基因集富集(GSE)方法的优点是不需要参考表达值。当处理来自文献或其他定性形式的生物学知识的基因集时,这特别有用。在细胞注释时,通常在一组细胞(或簇)上执行 GSE 分析以识别这些细胞富集的基因集或生物通路。然后可以根据富集的通路推导细胞类型(或状态)。
Bioconductor 提供了专用软件包从数据库(如 MSigDB、KEGG、Reactome、GO)中获得预定义的基因特征信息。EnrichmentBrowser 简化了从此类数据库收集基因集的过程。最初为普通转录组数据开发的基因集富集分析方法也可应用于 scRNA-seq 数据中特定基因模块的富集。 EnrichmentBrowser
,EGSEA
和 fgsea
软件包分别提供了一些经典 GSE 分析的工具。在 MAST
、AUCell
和 slalom
中也有进行 GSE 分析的方法。
自动化细胞注释
从概念上讲,最直接的注释方法是将单细胞表达谱与先前注释的参考数据集进行比较。然后,根据最相似的参考样本或某些其他相似性指标,将生物标签分配给待确认的细胞。这是 一个常见的分类问题,可以通过标准的机器学习技术如随机森林和支持向量机来解决。任何公开且带有标签的 RNA-seq 数据集(普通或单细胞的)都可以用作参考,其可靠性在很大程度上取决于给参考集细胞进行注释的原始作者的专业性。
SingleR
方法提供了一种用于细胞类型注释的自动化系统。SingleR 基于具有最高 Spearman 相关性的参考样本标记细胞,因此可以认为是 k-近邻分类的排序变体。为了减少噪声,SingleR 可以识别两组细胞之间的标记基因,并仅使用那些标记基因来计算相关性。程序包中包含许多内置参考数据集,这些数据集来自多个项目,包括免疫基因组计划(ImmGen),ENCODE 和免疫细胞表达数据 库(DICE)。
5. Accessible analysis 分析工具易用性
随着对单细胞测序数据的分析兴趣日益浓厚,Bioconductor 不仅开发了分析数据的方法和软件,而且还优先考虑使数据本身和数据分析工具更易于用户和开发人员使用。具体而言,社区提供了数据包,其中包含公开可用的已发布数据和模拟数据,以及交互式数据可视化工具。这样可以使单细胞数据和数据分析工具更易于访问,使研究人员可以在自己的工作中利用这些资源并使数据分析民主化(democratizes data analysis)。
基准测试
随着新的单细胞检测、统计方法和相应软件的开发,方便数据集的发布、再现现有分析以及实现新工具与现有工具的比较变得越来越重要。Bioconductor 收集了一系列数据包,着重于提供可以直接用于分析的带有版本信息的数据,以及可用于复制手稿图形和展示数据特征的手册。
为了便于查询 Bioconductor 上已发布的数据包,ExperimentHub 包允许使用标准化接口以编程方式访问已发布的数据集。值得注意的是,scRNAseq 软件包可以从各种来源获得校正过的高质量 scRNA-seq 数据集。另外,模拟数据集对评判软件也很有帮助。
另外,splatter 包可以模拟包含多种细胞类型、批次效应、不同水平的 drop-out 事件、差异基因表 达和轨迹的模拟 scRNA-seq 数据集。splatter 包使用自己的模拟策略框架,并整合其它不同模型的模拟策略以提供全面的单细胞模拟数据资源。
为了提高评估单细胞方法性能的基准比较的可重复性,Bioconductor 开发了存储不同方法比较结果 的基本架构。SummarizedBenchmark 和 CellBench 软件包提供了用于存储元数据(方法参数和软件包版本)和评估指标的接口。
交互式数据可视化
网络技术的成熟为交互式数据探索开辟了新的途径,而 R 包 shiny 则有助于开发丰富的图形用户界面。iSEE 和 singleCellTK 软件包为通过 Internet 浏览器对 scRNAseq 数据集进行交互可视化提供了全功能的应用程序,消除了对编程经历的需求。如果实例托管在 Web 上,则无需编程经验。这两个软件包都直接与 SingleCellExperiment 数据容器连接以便促进 scRNA-seq 分析结果的交流。
5. 展望
自从基因组学问世以来,Bioconductor 项目就已经通过 R 统计编程语言拥抱了开源和开放软件的开 发。Bioconductor 已建立协调包版本和代码审查的最佳实践。除了社区贡献的软件包,核心开发团队(https://www.bioconductor.org/about/core-team)开发并维护必要的基础架构,并审核提交的软件包,以确保它们满足一套指导原则和保证各个软件包之间的兼容性。这些软件包被组织到 BiocViews 中,一个按任务或技术对软件包进行分类的主题注释库。例如,单细胞分析主题在视图 SingleCell 下标记。最重要的是,更广泛的 Bioconductor 社区(包括论坛、Slack 或邮件列表)是代码共享和技术帮助中无私的典范。这些实践共同产生了高质量、维护良好的软件包,为生物学研究提供了一个统一而稳定的分析环境。
最近,Bioconductor 社区开发了最新的计算方法、数据结构和交互式数据可视化工具用于分析从单细胞实验中获得的数据。新兴的单细胞技术,包括表观基因组学、T细胞和B细胞文库、空间转录组谱分析和基于测序的蛋白质谱分析,希望能推动计算生物学的发展。特别是,支持多组学分析的技术正在迅速发展,Bioconductor 为研发用于此类技术分析的统计方法奠定了必要的基础。
此外,Bioconductor 的标准化数据容器可实现 Bioconductor 软件包以及与其他软件之间的互操作性。可以将存储在 SingleCellExperiment 中的数据转换为 Seurat、Monocle 和 Python 的 scanpy 可用的格式,从而可以使用最能满足当前分析目标的工具。实际上,R 与其他编程语言有着很长的互操作性历史。有四个例子,Rcpp 用于将 C++编译后的代码集成到 R 软件包中,rJava 软件包用于 从 R 中调用 Java 代码的,R 中的.Fortran()函数可以调用Fortran 代码,reticulate 包与 Python 互通。
这种互操作性使常见的机器学习框架(例如 TensorFlow/Keras)可以直接在 R 中使用。
对于新手来说,Bioconductor 中能进行大量单细胞分析的数量众多的程序包可能令人望而生畏。为了解决单细胞分析中越来越多软件包的选择问题,我们总结并强调了当前最先进的数据基础架构、 方法和软件,并按照典型的单细胞分析流程组织了这些软件包。最后,我们开发了在线的配套书籍,其中提供了有关各个分析主题的更详细信息以及完整的代码流程 (https://osca.bioconductor.org)。随着新软件包的出现,这套在线书籍将会被不断更新和维护,促进 Bioconductor 资源更方便使用。