分子条形码技术的最新进展使得在单细胞水平进行下一代转录组测序成为可能,例如10× Genomics Chromium和DropSeq。此外,CITE-seq 的出现使得可以在对单个细胞进行转录组分析的基础上同时对表面蛋白进行分析。同时,为了表征 DNA 和蛋白质谱,一个名为 Tapestri 的平台于 2017 年推出。该平台同时分析预先定义的 DNA 变异和细胞表面蛋白面板。通过利用从 Tapestri 平台收集的数据,研究人员可以识别异质组织内的独特细胞群。
软件背景
为了处理包含单细胞 RNA 和蛋白质数据的 CITEseq 数据,可以使用多个开源软件包,包括 Seurat、CITEfuse、iCluster、iCluster+等。为了在 Tapestri 平台中预处理原始测序数据,已经开发了 Tapestri Pipeline 软件(https://portal.missionbio.com/)用于生成变异调用和蛋白质表达计数。对于下游分析,Mission Bio 开发了一个 Python 库 Mosaic(https://missionbio.github.io/mosaic/)。此外,还有一款名为 Tapestri Insight 的 GUI 软件支持 Tapestri DNA 数据分析。然而,Tapestri Insights 的局限性在于它不支持蛋白质数据分析。Optima是一个用于 Tapestri 平台的开源 R 包,用于综合单细胞多组学数据分析。Optima 旨在简化 Tapestri 平台生成的多组学数据的预处理、分析和可视化工作流程。
输入数据
optima 包中的核心对象是 optima 对象。该对象存储单个生物样本的所有数据矩阵,包括 DNA(DNA 变体的扩增子测序数据)、CNV(拷贝数变异)和蛋白质。该对象还存储所有元数据,包括细胞条形码、扩增子名称面板以及用于跟踪标准化/过滤状态的元数据等。直接调用时,此对象会显示对象的汇总统计信息。经过 Tapestri 管道软件的初步预处理后,将生成一个 .h5 文件,应将其用作 optima 包的输入文件。可以使用readHdf5()函数将此文件作为 optima 对象读入 R 环境。
-
DNA分析
一旦创建了 optima 对象,就开始分析 DNA 测序数据。DNA 分析侧重于单核苷酸变异的变异等位基因频率。第一步是使用 filterVariant ()函数过滤 DNA 变异数据。从 .h5 文件导入几个因素,包括测序深度、基因型质量等,并用于此过滤步骤。如果太多基因座未通过 QC,则会删除该细胞/变异。过滤后,DNA 数据将用于细胞克隆识别。为了识别克隆,可以选择在getClones()函数中使用非监督聚类方法 dbscan。聚类结果将存储在 optima 对象中包含的细胞标签向量中。如果更喜欢使用领域知识来手动分配细胞标签,他们可以通过生成自己的标签并将其分配给 optima 对象中的细胞标签向量来实现。要在热图中可视化变异等位基因频率,可以使用drawHeatmap()函数。首先根据细胞标签对行进行排序,即可生成热图。要可视化不同细胞中单个变异的变异等位基因频率,可以使用plotVariantFeature()函数。基于 VAF 的颜色叠加将在降维图上生成。如果有兴趣获取变异的注释,可以使用annotateVariant()函数。通过从 MissionBio 的 API 获取数据,此函数将所有变异 ID 作为输入并返回包含变异详细信息的 R data.frame。 -
CNV分析
分析 DNA 测序数据后,下一步是分析 CNV。分析 CNV 数据的主要目标是计算每个 CNV 扩增子的倍性。输入基于每个 CNV 位点的对齐读取数量/计数。为了校正 CNV 计数的列向和行向变化,用户可以使用 normalizeCNV ()函数。标准化后,可以使用calculatePloidy()函数计算倍性。首先将参考细胞类型定义为二倍体细胞,然后使用其他细胞类型的标准化计数除以每个 CNV 扩增子的平均计数。数值代表每个细胞中每个扩增子的倍性。 -
蛋白质分析
除了 DNA 测序数据,Tapestri 平台还量化细胞表面蛋白。当抗体与特定表面蛋白结合时,会生成蛋白质的原始数据。为了处理此类数据,optima在normalizeProtein()函数中使用中心对数比变换方法。数据转换后,可以选择使用降维方法通过reduceDim()函数在 2D 空间中可视化细胞。此外,可以使用drawHeatmap()函数在热图中可视化所有标准化蛋白质计数。要可视化不同细胞中单一蛋白质的标准化蛋白质表达,可以使用plotProteinFeature()函数。基于标准化蛋白质计数的颜色叠加将在降维图上生成。最后,通过使用细胞标签和findSignature()函数,可以识别与所有其他细胞类型相比在一种细胞类型中表达不同的蛋白质。这种比较是使用 t 检验完成的。结果是一个 R 数据框,其中包含使用 Benjamini–Hochberg FDR 方法调整多重比较后按最小P值排序的所有蛋白质。
分析结果
一个 optima 对象存储一个生物样本的所有数据矩阵。在此示例数据集中,四个细胞混合为一个生物样本。使用readHdf5()函数将此数据集导入 R 后,将存储为 optima 对象。调用时,此对象显示汇总统计信息。更具体地说,它包含 1313 个细胞、27 719 个变体、127 个 CNV 和 10 个蛋白质。用户可以提供从他们的 Tapestri 管道输出生成的自己的 .h5 文件。使用四细胞混合物示例,使用 filterVariant ()函数执行过滤。我们从 1313 个细胞开始,过滤后剩下 1271 个细胞。同时,过滤后保留了 29 个变体。使用get Clones()函数识别细胞克隆后,在数据集内识别了六个簇/细胞克隆。在 optima 对象中的细胞标签向量中,每个细胞克隆都用数值 1、2、3、4、5 和 6 标记。然后使用这些信息通过 DNA 测序数据生成热图(图 1B)。对于 CNV 分析,使用normalizeCNV()函数计算标准化计数,并使用calculatePloidy()函数计算倍性。对于calculatePloidy()函数的应用,细胞类型“1”被设置为二倍体细胞类型。为了可视化每个扩增子的倍性,我们生成了散点图(图 1C)。所有细胞类型 1 扩增子的倍性值都是 2。这是因为细胞类型 1 被指定为二倍体细胞。对于细胞类型 2,倍性范围在 0 到 3 之间。蛋白质分析从使用norma lizeProtein()函数进行数据标准化开始。然后使用标准化的蛋白质计数在二维空间中投影细胞,并根据每个数据点的细胞类型标签对其进行着色。目视检查图 1D后,可以发现存在四个突出的簇,每个簇都显示出具有相同颜色的点占主导地位,表示每个簇内的细胞类型分配一致。通过将一种细胞类型与其他细胞类型的蛋白质表达水平进行比较,findSignature()函数会返回一个差异表达蛋白质表,并对多重比较进行了 p 值调整(图 1E)。为了可视化“CD11b”蛋白的表达水平,plotProteinFeature()函数。该函数返回一个散点图,其中所有细胞投影在二维空间中。每个细胞根据 CD11b 蛋白表达水平着色(图 1F)。
欢迎大家留言讨论,如果对结果或者方法实现有疑问的可以联系管理员进行解决:kriswcyYQ。