COMPASS -单细胞的组合多功能性分析

凯文·乌西,林恩和格雷格·菲纳克
2022-04-26

简介

流式细胞术和其他单细胞技术的快速发展使单个细胞的高维、多参数、高通量测量成为可能。许多关于细胞群体异质性的问题现在可以解决,因为这些新技术允许对抗原特异性t细胞进行单细胞分析。不幸的是,目前还缺乏充分利用这些复杂数据的计算工具。COMPASS是一个统计框架,能够对抗原特异性t细胞亚群进行无偏倚分析。COMPASS使用贝叶斯分层框架来建模所有观察到的细胞子集,并选择最有可能是抗原特异性的,同时正则化多参数空间中经常出现的小细胞计数。该模型为每个细胞亚群和每个样本提供了特异性的后验概率,可用于分析受试者对感染或疫苗接种等外部刺激的免疫反应。

例子

我们将使用一个模拟数据集来说明指南针包中。

首先,我们将概述用于构造的组件COMPASSContainer,用于保存ICS实验数据的数据结构。我们将首先初始化一些用于生成模拟数据的参数。

library(COMPASS) set.seed(123) n <- 100 ##样本数量k <- 6 ##标记数量sid_vec <- paste0("sid_", 1:n) ##样本id;用于表示样本的唯一名称iid_vec <- rep_len(paste0("iid_", 1:(n/10)), n) ##单个id

COMPASSContainer由三个主要组件组成数据,总数计数,以及元数据.接下来我们将描述这些组件的R结构。

数据

这是一个矩阵列表,每个矩阵代表一个从特定样本中提取的细胞群。每一行是一个单独的细胞,每一列是一个标记(细胞因子),每个基质元素是与特定细胞和标记相关的强度测量。只包括表达至少一种标记的细胞。

data <- replication (n, {nrow <- round(runif(1) * 1E4 + 1000) ncol <- k vals <- rexp(nrow * ncol, runif(1, 1E-5, 1E-3)) vals[vals < 2000] <- 0 output <- matrix(vals, nrow, ncol) output <- output[apply(output, 1, sum) > 0,] colnames(output) <- paste0("M", 1:k) return(output)}) names(data) <- sid_vec head(data[[1]])
## m1 m2 m3 m4 m5 m6 ## [1,] 0.000 2989.978 0.000 2121.293 0.000 3119.056 ## [2,] 0.000 2631.113 0.000 3423.290 3559.051 0.000 ## [3,] 0.000 2970.300 0.000 3520.768 0.000 3351.278 ## [4,] 0.000 0.000 3004.248 0.000 0.000 0.000 ## [5,] 0.000 0.000 2364.512 0.000 5174.260 3715.566 ## [6,] 3449.089 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

计数

这是一个命名的整数向量,表示从中的每个样本中恢复的细胞总数数据

counts <- sapply(data, nrow) + round(rnorm(n, 1E4, 1E3)) counts <- setNames(as.integer(counts), names(counts)) head(counts)
## sid_1 sid_2 sid_3 sid_4 sid_5 sid_6 ## 12911 15610 17694 17256 11453 12499

元数据

这是一个data.frame中的每个示例关联元数据信息数据/计数.我们假设每个样品都要经过以下两种处理中的一种控制而且治疗

meta <- data.frame(sid=sid_vec, iid=iid_vec, trt=sample(c("Control", "Treatment"), n, TRUE)) head(meta)
sid iid trt ## 1 sid_1 iid_1控制## 2 sid_2 iid_2控制## 3 sid_3 iid_3治疗## 4 sid_4 iid_4治疗## 5 sid_5 iid_5控制## 6 sid_6 iid_6治疗

一旦我们有了这些组件,我们就可以构造COMPASSContainer

CC <- COMPASSContainer(data=data, counts=counts, meta=meta, individual_id="iid", sample_id="sid")

我们可以看到一些关于我们的基本信息COMPASSContainer

CC
##一个COMPASSContainer,包含10个个体的100个样本,包含6个标记的数据。
总结(CC)
##一个COMPASSContainer,包含10个个体的100个样本,包含6个标记的数据。元数据描述100个样本上的3个变量。列为:## ## sid iid trt

块CC-basics的图

拟合的指南针模型是非常容易的,一旦数据已经插入COMPASSContainer对象。为了指定模型,用户需要指定识别接受积极刺激的样本和接受消极刺激的样本的标准。在我们的数据中,我们可以这样指定它。(因为MCMC是用来对后验数据进行抽样的,这是一个缓慢的过程,所以为了本文的目的,我们将自己限制在少量的迭代中。)

指南针是设计用模型拟合语句给出详细的输出,以便用户比较他们对数据的期望是什么指南针函数是做模型拟合,以尽量减少潜在的误差。

适合<- COMPASS(CC, treatment=trt == " treatment ", control=trt == " control ", iterations=100)
“治疗”组共有10个人的57个样本。
##每个个体有多个样本;这些将被聚合。
“对照组”共有10个人的43个样本。
##每个个体有多个样本;这些将被聚合。
该模型将在10个配对样本上运行。
##类别过滤器没有删除任何类别。
##总共有64个类别要测试。
##初始化参数…
##计算初始参数估计…
保持100次迭代。我们将每8次迭代精简一次。
##燃烧100次迭代…
采样800次迭代…
# #完成了!
计算比例的后验差,后验对数比…
# #完成了!

安装后指南针模型中,我们可以用多种方式检查输出:

# #提取功能,多官能度分数描述# #罗盘内纸——这些措施的整体水平# #“功能”的细胞,这表明与# #在免疫反应细胞的亲和力FS < - FunctionalityScore(适合)PFS <——PolyfunctionalityScore(适合)# #获得后差异,后日志比率从COMPASSResult文章<——后(适合)# #情节的热图意味着响应的概率,要可视化每个类别图的表达式中的差异##(适合)
##“阈值”过滤器已删除10个类别:## M1&!M2&!M3&!M4&M5&!M6, !狭义货币供应量m1及广义货币供应量m2, m3 ! M4&M5& !M6,狭义货币供应量m1及广义货币供应量m2 ! m3, m4 !M5&M6, m1 ! m2和m3, m4 !M5&M6, ! m1, m2 ! M3&M4& !M5&M6,狭义货币供应量m1及广义货币供应量m2 ! M3&M4& m5 !M6, M1&M2&M3& ! M4&M5& !M6, m1, m2和m3, m4 !M5&M6, m1, m2 ! M3&M4& !M5&M6, M1&M2&M3& !M4&M5&M6

块图指南针检查

##可视化后验差异,用热图图记录差异(适合,测量=PosteriorDiff(适合),阈值=0)
##“阈值”过滤器已删除10个类别:## M1&!M2&!M3&!M4&M5&!M6, !狭义货币供应量m1及广义货币供应量m2, m3 ! M4&M5& !M6,狭义货币供应量m1及广义货币供应量m2 ! m3, m4 !M5&M6, m1 ! m2和m3, m4 !M5&M6, ! m1, m2 ! M3&M4& !M5&M6,狭义货币供应量m1及广义货币供应量m2 ! M3&M4& m5 !M6, M1&M2&M3& ! M4&M5& !M6, m1, m2和m3, m4 !M5&M6, m1, m2 ! M3&M4& !M5&M6, m1 ! m2, m3 ! m4 ! m5 !M6

块图指南针检查

plot(fit, measure=PosteriorLogDiff(fit), threshold=0)
##“阈值”过滤器已删除10个类别:## M1&!M2&!M3&!M4&M5&!M6, !狭义货币供应量m1及广义货币供应量m2, m3 ! M4&M5& !M6,狭义货币供应量m1及广义货币供应量m2 ! m3, m4 !M5&M6, m1 ! m2和m3, m4 !M5&M6, ! m1, m2 ! M3&M4& !M5&M6,狭义货币供应量m1及广义货币供应量m2 ! M3&M4& m5 !M6, M1&M2&M3& ! M4&M5& !M6, m1, m2和m3, m4 !M5&M6, m1, m2 ! M3&M4& !M5&M6, m1 ! m2, m3 ! m4 ! m5 !M6

块图指南针检查

指南针还打包了一个Shiny应用程序,用于交互式可视化的匹配生成指南针调用。可以通过调用shinyCOMPASS函数。

shinyCOMPASS(适合,刺激=“治疗”,未刺激=“对照”)

与flowWorkspace的互操作

flowWorkspace是一个用于管理和生成从流式细胞术实验中获得的数据门的包。结合openCyto,用户可以通过灵活定义的门控模板自动门控数据。

指南针附带一个实用函数,用于从数据中提取数据flowWorkspaceGatingSet对象,为多功能性细胞因子数据的数据管理和分析提供了无缝的工作流程。可以使用COMPASSContainerFromGatingSet,并备有适当的文件COMPASSContainerFromGatingSet ?.例如,研究人员可能首先对他的数据进行门控,以便找到CD4 +细胞,然后打开一些标记,或者细胞因子CD4 +细胞,以识别表达不同标记组合的细胞。

已使用flowJo并对分析他们的数据感兴趣指南针可以通过首先加载和解析他们的工作空间flowWorkspace,然后生成COMPASSContainer通过COMPASSContainerFromGatingSet

引用

林,L. Finak, G. Ushey, K. Seshadri C.等。COMPASS识别与临床结果相关的t细胞亚群。自然生物技术(2015)。doi: 10.1038 / nbt.3187

Greg Finak, Andrew McDavid, Pratip Chattopadhyay, Maria Dominguez, Steve De Rosa, Mario Roederer, Raphael Gottardo。应用于疫苗研究的单细胞分析混合模型。生物统计学2014 1月;15(1):87-101

h