# #加载所需的包:flowWorkspaceData

介绍openCyto

1。介绍

openCyto包的目的是便于自动化控制方法以连续的方式模拟手动控制方案。

1.1。手动控制

传统上,科学家们已经绘制盖茨为每个样本在每个2 d预测(2通道)内flowJo。或画出的模板门的示例复制到另一个样本,然后手动检查每个样品上的门在必要时做调整。方法是费时和主观的,因此不适合高通量流血细胞计数器或生成的大型数据集cross-lab数据分析。

这是一个xml工作区(手动控制计划)出口flowJo

flowDataPath < -系统。文件(“extdata”,包=“flowWorkspaceData”) wsfile < -列表。文件(flowDataPath,模式= "手册。xml”,满wsfile = TRUE)
# # [1]“/ home / biocbuild / bbs - 3.4 - bioc / R /图书馆/ flowWorkspaceData / extdata / manual.xml”

通过使用flowWorkspace包,我们可以加载到R,

ws < - openWorkspace (wsfile)

应用(parseWorkspace)手动门中定义的xml原始的FSC文件,

gs < - parseWorkspace (ws name =“t细胞”,子集= 1,isNcdf = TRUE)

然后想象控制层次结构

gh < - gs[[1]]阴谋(gh)

plot-manual-GatingHierarchy阴谋的一部分盖茨:

plotGate (gh)

plot-manual-gates阴谋的一部分这是一种控制方案T细胞委员会试图识别T细胞亚类。我们可以实现相同的结果通过使用这个包提供的自动浇注管道。

1.2。自动控制


flowCore,flowStats,flowClust和其他包提供了许多不同的浇注方法检测细胞数量和自动画出大门。

flowWorkspace包提供了GatingSet作为一种高效的数据结构来存储,查询和可视化分层的数据。

利用这些工具,openCyto包可以创建的自动浇注管道控制模板,它本质上是同样的分层控制方案所使用的生物学家和科学家。

2。创建控制模板

2.1。模板格式

首先,我们需要描述传播的控制层次结构表(纯文本格式)。这个扩展清单必须有以下列:

2.2。示例模板

这是控制模板的一个例子。

库(openCyto)库(data.table) gtFile < -执行(“extdata / gating_template / tcell。csv”,包= " openCyto”) dtTemplate < -从文件中读dtTemplate (gtFile,自动启动= 1 l)
# #别名流行家长dim gating_method # # 1: nonDebris nonDebris根FSC-A mindensity # # 2:汗衫背心nonDebris FSC-A, FSC-H singletGate # # 3:淋巴结淋巴汗衫FSC-A, SSC-A flowClust # # 4: cd3 cd3淋巴cd3 mindensity # # 5: * cd4 - / + cd8 + / - cd3 cd4, cd8 mindensity # # 6:激活cd4 CD38 + HLA + cd4 + cd8 - CD38 HLA后挡板# # 7:激活cd8 CD38 + HLA + cd4-cd8 + CD38、HLA后挡板# # 8:CD45_neg CD45RA - cd4 + cd8 - CD45RA mindensity # # 9: CCR7_gate CCR7 + CD45_neg CCR7 flowClust # # 10: CCR7 + / * -CD45RA cd4 + cd8 + / -, CCR7 CD45RA refGate # # 11: CCR7 + / * -CD45RA + / - cd4-cd8 + CCR7 CD45RA mindensity # # gating_args collapseDataForGating groupBy # # 1: # # 2: NA NA NA NA # # 3: K = 2,目标= c (1) e5, 5 e4) NA NA # # 4:真正的4 # # 5:gate_range = c (1、3) # # 6: NA NA NA NA # # 7:托尔= 0.08 NA NA # # 8: gate_range = c (2、3) NA NA # # 9:底片= 1,pos = 1 NA NA # # 10: CD45_neg: CCR7_gate NA NA # # 11: NA NA # # preprocessing_method preprocessing_args # # 1: NA # # 2: NA # # 3: # # 4: prior_flowClust NA NA # # 5: NA # # 6: standardize_flowset NA # # 7: standardize_flowset NA # # 8: NA # # 9: NA # # 10: NA # # 11: NA

通常是每一行对应一个细胞的人口和人口的控制方法,用于获取。我们将试图解释如何创建这个浇注模板基于逐行手动控制方案。

2.2.1。“nonDebris”

dtTemplate [1]
# #别名流行家长dim gating_method gating_args # # 1: nonDebris nonDebris根FSC-A mindensity # # collapseDataForGating groupBy preprocessing_method preprocessing_args # # 1: NA NA NA

2.2.2。“汗衫”

dtTemplate [2]
# #别名流行家长dim gating_method gating_args # # 1:汗衫背心nonDebris FSC-A, FSC-H singletGate # # collapseDataForGating groupBy preprocessing_method preprocessing_args # # 1: NA NA NA

2.2.3。“淋巴细胞”

dtTemplate [3]
# #别名流行家长dim gating_method gating_args # # 1:淋巴结淋巴汗衫FSC-A, SSC-A flowClust K = 2,目标= c (1) e5, 5 e4) # # collapseDataForGating groupBy preprocessing_method preprocessing_args # # 1: NA NA prior_flowClust NA

2.2.4。“cd3 +”(Tcell)

dtTemplate [4]
# #别名流行家长dim gating_method gating_args collapseDataForGating # # 1: cd3 cd3淋巴cd3 mindensity真正的# # groupBy preprocessing_method preprocessing_args # # 1: 4 NA

它是相似的nonDebris门,除了我们指定collapseDataForGating作为真正的告诉管道崩溃所有样品在一个和适用mindensity倒塌的数据CD3维度。门一旦生成,它是复制的所有样品。这仅仅是有用的,当每个样本没有足够的事件来推断出门口。我们这样做的目的只是为了证明概念。

2.2.5。CD4和CD8

第四行指定流行作为cd4 + / cd8 + / -,这将扩大到6行。

dtTemplate [5]
# #别名流行家长dim gating_method gating_args # # 1: * cd4 - / + cd8 + / - cd3 cd4, cd8 mindensity gate_range = c (1、3) # # collapseDataForGating groupBy preprocessing_method preprocessing_args # # 1: NA NA NA

前两行两个1 d盖茨将生成的gating_method在每个维度(cd4cd8)独立:

# #别名流行家长dim gating_method # # 1: cd4 + cd4 + / nonDebris /背心/淋巴/ cd3, cd4 mindensity # # 2: cd8 + cd8 + / nonDebris /背心/淋巴/ cd3 cd8 mindensity # # gating_args collapseDataForGating groupBy preprocessing_method # # 1: gate_range = c (1、3) # # 2: gate_range = c (1、3) # # preprocessing_args # # 1: # # 2:

另一个4行4rectangleGate年代,对应于4象限在二维投影(cd4和cd8)。

# #别名流行家长dim gating_method # # 1: cd4 + cd8 + cd4 + cd8 + / nonDebris /背心/淋巴/ cd3, cd4, cd8 refGate # # 2: cd4-cd8 + cd4-cd8 + / nonDebris /背心/淋巴/ cd3, cd4, cd8 refGate # # 3: cd4 + cd8 - cd4 + cd8 - / nonDebris /背心/淋巴/ cd3, cd4, cd8 refGate # # 4: cd4-cd8 - cd4-cd8 nonDebris /背心/淋巴/ cd3, cd4, cd8 refGate # # gating_args # # 1: / nonDebris /背心/淋巴/ cd3 / cd4 +: / nonDebris /背心/淋巴/ cd3 / cd8 + # # 2: / nonDebris /背心/淋巴/ cd3 / cd4 +: / nonDebris /背心/淋巴/ cd3 / cd8 + # # 3: / nonDebris /背心/淋巴/ cd3 / cd4 +: / nonDebris /背心/淋巴/ cd3 / cd8 + # # 4: / nonDebris /背心/淋巴/ cd3 / cd4 +: / nonDebris /背心/淋巴/ cd3 / cd8 + # # collapseDataForGating groupBy preprocessing_method preprocessing_args # # 1: # # 2: # # 3: # # 4:

我们在这里看到的,“refGate”gating_method表明,构造基于门坐标之前的两个1 d盖茨。这些1 d盖茨这样认为“参考门”所提到的冒号分开别名字符串gating_args:“cd4 +, cd8 +”

或者,我们可以扩大它在传播这6行明确表。但这方便表示建议除非用户希望可以更精确地控制的控制是如何实现的。例如,有时我们需要使用不同的gating_methods生成1 d盖茨cd4cd8。或cd8门需要依赖cd4门,也就是说。的c8 +cd4 +(或cd4 -)而不是cd3。有时我们想要定制的别名除了quadrant-like名称(x + y +)自动生成。(例如控制模板的五行)

3所示。负载控制模板

后浇注模板中定义的扩散板,它可以加载到R:

gt_tcell < - gatingTemplate gt_tcell (gtFile,自动启动= 1 l)
# # - - -浇注模板:违约和29 # #人口定义的

除了看传播表,我们可以通过可视化检查控制计划:

情节(gt_tcell)

plot-gt阴谋的一部分我们可以看到,上述控制方案已经扩大了我们。所有的彩色的箭头的来源人口和灰色箭头的来源参考人口(/门)。

4所示。运行控制管道

一旦我们满意控制模板,我们可以把它应用到实际的流数据。

4.1。加载原始数据

首先,我们原始的FCS文件加载到RncdfFlow: read.ncdfFlowSet(它使用更少的内存flowCore: read.flowSet)。

fcsFiles < -列表。文件(模式= " CytoTrol ", flowDataPath全= TRUE) ncfs < - read.ncdfFlowSet ncfs (fcsFiles)
# #的ncdfFlowSet 2样本。# # NCDF文件:/ tmp / RtmpbsSIZ3 / ncfs2ce541952552。数控# #一个类的对象“AnnotatedDataFrame”# # rowNames: CytoTrol_CytoTrol_1。fcs CytoTrol_CytoTrol_2。fcs # # varLabels:名字# # varMetadata: labelDescription # # # #列名:# # FSC-A, FSC-H, FSC-W, SSC-A, B710-A, R660-A, R780-A, V450-A, V545-A, G560-A G780-A,时间

4.2。补偿

然后,补偿数据。如果我们有补偿控制(即单彩色样本),我们可以计算补偿矩阵flowCore:溢出函数。这里我们简单地使用补偿矩阵中定义flowJo工作区

compMat < - getCompensationMatrices (gh) ncfs_comp < -补偿(ncfs compMat)

这里是一个例子显示了补偿结果:compensate_plot阴谋的一部分

4.3。转换

所有的彩色通道需要转换前适当控制。在这里,我们使用flowCore: estimateLogicle这样做logicle转换。

chnls < -参数(compMat) transFuncts < - estimateLogicle (ncfs[[1]],渠道= chnls) ncfs_trans < -变换(ncfs_comp transFuncts)

这里是一个例子显示转换结果:transformation_plot阴谋的一部分

4.4。创建“GatingSet”

一旦数据预处理,它可以加载到GatingSet对象。

gs < - GatingSet (ncfs_trans) getNodes (gs [[1]])
# #[1]“根”

作为getNodes显示,只有一个节点在这一点上。

4.5。选通

现在我们可以控制模板应用到数据:

门(gt_tcell, gs)

可选地,我们可以运行的管道平行加速控制。如。

门(gt_tcell、gs、mc.cores = 2, parallel_type =“多核”)

4.6。隐藏节点

浇注后,有一些额外的数量的管道(如自动生成。refGate)。

情节(gs [[1]])

plot_afterGating阴谋的一部分我们可以隐藏这些人群:如果我们不感兴趣

dodesToHide < - c (cd8 +、cd4 +、“cd4-cd8——”, cd4 + cd8 +、cd4 + cd8 - / HLA +, cd4 + cd8 - / CD38 +”、“cd4-cd8 + / HLA +”、“cd4-cd8 + / CD38 +”、“CD45_neg / CCR7_gate”、“cd4 + cd8 - / CD45_neg”、“cd4-cd8 + / CCR7 +”、“cd4-cd8 + / CD45RA +”)拉普兰人(dodesToHide,函数(thisNode) setNode (gs、thisNode假))

4.7。重命名节点

和重命名的人群:

setNode (gs、“cd4 + cd8 -”,“cd4”) setNode (gs、“cd4-cd8 +”“cd8”)

4.7。可视化

情节(gs [[1]])

plot_afterHiding阴谋的一部分

plotGate (gs [[1]])

plotGate_autoGate阴谋的一部分

4.8。应用控制方法没有csv模板

有时它会很有帮助(尤其是与一个已经封闭的数据)能够与他GatingSet直接交互,而不需要编写完成csv浇注模板。

5。结论

openCyto包允许用户指定他们的控制方案和门的数据在一个数据驱动的时尚。它使科学家们从labor-intensitive手动控制例程和增加的速度以及reproducibilty和客观的数据分析工作。