用于流式细胞术数据中细胞群鉴定的混合组分合并

格雷格·菲纳克,拉斐尔·戈塔多

2022-11-01

许可

在艺术许可下,您可以自由使用和重新发布此软件。

  1. 格雷格·菲纳克,阿里·巴沙提,瑞安·布林克曼,还有拉斐尔·戈塔多。混合组分在流式细胞术中鉴定细胞群的研究。生物信息学进展《中华人民大学学报》,2009年第1卷,第247646期,12页。doi: 10.1155 / 2009/247646

概述

我们应用聚类合并方法对流式细胞术数据中的细胞群进行自动门控。混合模型的最大BIC模型拟合准则通常高估了流式细胞术数据中细胞群(即簇)的数量,因为精确模拟分布所需的混合组分的数量通常大于不同细胞群的数量。基于熵的模型拟合准则,如ICL,可以更好地估计聚类数量,但往往不能很好地拟合底层分布。我们结合这两种方法,合并混合成分从最大BIC拟合基于熵准则。这种方法允许多个混合成分表示相同的细胞亚群。合并的集群本身是混合物,并由其组成模型参数的加权组合进行总结。结果是一个混合模型,它保留了最大BIC解的良好模型拟合特性,但组分的数量更接近地反映了不同细胞亚群的真实数量。

安装

flowMerge需要几个包预安装完整的功能。具体地说,flowClustflowCoreflowViz而且(用于并行计算)应该被安装和功能。

示例:应用于Rituximab数据集的集群合并

核心功能

为了证明其功能,我们使用来自药物筛选项目的流式细胞术数据集来识别能够增强治疗性单克隆抗体Rituximab抗淋巴瘤活性的药物。数据集是类的对象flowFrame;它由八个变量组成,其中只有两个散射变量(FSC.HSSC.H)和两个通道进行氟铬测量(FL1.HFL3.H)都对这个实验感兴趣。flowMerge包可以在对flowClust的调用输出时调用,也可以在flowFrame直接通过并行化方法pFlowMerge,它自己会调用flowClust但是扔掉中间结果。下面的代码将以并行方式使用flowClust对一个到10个集群建模,选择最佳BIC解,合并最佳BIC解中的聚类,根据熵准则选择最佳合并解,然后绘制结果图。该功能封装在pFlowMerge函数,并使用额外的并行化.此外,如果传递给pFlowMerge的snow集群对象为空,则调用非并行版本的flowMerge。

flowClust。保留区flowClust对象,其中包含5集群解决方案。我们提取每个溶液的内部BICflowMerge函数BIC

在这里,我们提取了K=4时的最大BIC解。在最大BIC解决方案上运行聚类合并算法之前,我们必须创建一个flowObj对象的flowClust结果和flowFrame数据。然后运行合并函数在flowObj然后从合并的结果中提取聚类熵ENT函数。合并的群集解决方案列表输入到fitPiecewiseLinreg函数。该函数拟合熵与聚类数量的分段线性回归,并在适当的情况下定位变化点的位置。模型选择是通过BIC准则完成的。可以选择绘制拟合结果。

接下来,我们提取合并的解,其中簇的数量等于通过找到的变更点的位置fitPiecewiseLinreg.这是基于熵准则的最优合并解。解可以用情节方法。

我们看到,与最大BIC溶液或最大ICL溶液相比,合并溶液更适合淋巴细胞群。此外,与ICL溶液相比,碎片和粒细胞也能清晰识别。我们可以提取淋巴细胞群,只在淋巴细胞的荧光通道上重新运行flowClust和flowMerge。

淋巴细胞的数量介于碎片和粒细胞之间。我们可以很容易地通过检查三个总体的平均数来选择它。我们只对荧光通道感兴趣,所以我们用[]继承自flowClust.最后,另一个呼叫flowClust对淋巴细胞亚群进行一轮聚类。

#>异常值识别规则:90%分位数

我们通过选择最佳拟合合并解决方案并将其与最大BIC和最大ICL解决方案进行比较来完成分析。使用snow包的并行计算第一节中描述的方法被包装在一个单独的函数调用中,具有利用并行处理功能的额外好处包装,以加快模型的拟合使用flowClust.这个函数pFlowMerge可以传递多个流帧的形式为一个流集,或一个流帧列表,以及集群对象,以及所需的常用参数集flowClust来指定模型。该调用使每个模型的多个模型的计算并行flowFrame.例如,如果有人想拟合所有模型,从一个集群模型到十个流帧的十个集群模型,这些模型将分布在定义的处理器数量中集群对象。每个处理器将被分配单个流帧和模型组合的计算,直到所有处理器都被占用。这大大加快了高通量分析设置中的计算速度。

得到的模型对每个模型的最大BIC解进行评估flowFrame时,在每个最大BIC解上运行归并算法,找到示例中描述的最优归并解并返回给用户。非并行版本可以通过pFlowMerge调用,参数' ' cl "等于NULL。

最近的更新

flowMerge算法已更新以提高速度,并且现在支持并行化foreach软件包安装完成。FlowMerge现在也支持马氏距离度量和熵的合并。这些参数可以通过可选参数指定给合并算法度规论点(公制= c(“熵”、“mahalanobis”)合并()函数。默认是使用“熵”。

我们增加了一些新的特征,用于绘制合并种群的树,并根据标记表达突出显示节点/种群。以上荧光标记:

#>有向边的graphNEL图#>节点数= 5 #>边数= 4

带有虚线边界的圆形节点表示合并的集群。椭圆节点表示最佳拟合模型中所选择的总体。方形节点显示完整合并到单个集群的其余部分。红色表示该标记的高表达,蓝色/绿色表示低表达。请注意,它在数据范围的0到1之间进行了规范化。

即将到来的改进

FlowMerge正在进行持续的可用性改进,特别是在并行计算框架方面。将输出优点和其他统计数据,以便用户监视合并算法在处理大型数据集时的成功或失败。在多个样本中对淋巴细胞群进行半监督选择的框架也在研究中。pFlowMerge不做任何复杂的内存管理,因此,如果你有一个大的数据集,我们建议将它一块一块地馈送到pFlowMerge,这取决于你的机器/集群可用的RAM数量。

常见问题

问:如何使用pFlowMerge?

答:pFlowMerge的实现是为了并行化流集或流帧列表的计算,而不是一个流帧中的多个集群。例如,如果数据flowSetflowFrames而且cl是一个10个节点的集群,然后运行pFlowMerge (cl flowSet varNames = c(“A”、“B”、“c”),K = 1:10)会分配10个flowFrames横跨十个节点,每个节点将评估模型K = 1:10集群。如果你想并行化K = 1:10如果需要跨多个节点进行集群计算,则需要使用功能直接,如:clusterMap (cl,函数(…)(flowClust(…)),列表(flowFrame) varNames =列表(c(“A”、“B”、“c”),K = 1:10).这将分布的计算flowFrame对于每一个值K = 1通过K = 10组件横跨十个节点的cl.的添加试着()包装器确保即使单个模型未能收敛给定的值,函数也将返回K.或者,如果你想做上面的一个flowSet的每个元素都需要复制flowSetK $ _{马克斯\(}次,其中' K\)_{马克斯$}是要计算的模型组件的总数flowFrame.再举一个例子:clusterMap (cl,函数(…)(flowClust(…)),代表(如(flowSet,“列表”),每个=长度(Kvector)), varNames =列表(c(“A”、“B”、“c”)),K = Kvector).请记得确保flowClust加载到节点上的每个R工作环境中,通过调用clusterEvalQ (cl,库(flowClust))”。