酵母控制

R粘土莱特

2021-11-04

这个描述走过可视化和创建门集和方案用于测量的动态响应酵母合成信号通路通过流式细胞术。

出芽酵母文化包含一个广泛的细胞大小和粒度由于芽生长和疤痕。大小和粒度大致衡量向前端散射面积参数,FSC-A SSC-A。在这个描述这些参数将interchangeably-i.e使用破折号和点。FSC-A = FSC。a R代码中FSC-A读为“FSC - A”。

让我们读一些示例数据,看看FSC。一个vs SSC。情节通常的样子。

数据< -read.flowSet(路径=执行(“extdata”,“ss_example”,包=“flowTime”),alter.names =真正的)注释< -read.csv(执行(“extdata”,“ss_example.csv”,包=“flowTime”))adat < -annotateFlowSet(yourFlowSet =数据,annotation_df =注释,mergeBy =“名称”)

我们将使用阴谋流数据ggcyto包,盖茨和定义我们将使用flowStats,flowClustopenCyto包。建立我们的门设置我们将使用flowWorkspace包,自动导入的openCyto。加载这些,我还将注释掉一些线连接你相关的片段在这些包,供您参考。

#库(BiocManager) BiocManager::安装(“openCyto”)# BiocManager::安装(“ggcyto”)图书馆(“openCyto”)图书馆(“ggcyto”)# >加载所需的包:ncdfFlow# >加载所需的包:RcppArmadillo# >加载所需的包:黑洞# >加载所需的包:flowWorkspace# >作为改善flowWorkspace的一部分,一些行为# > GatingSet对象已经发生了改变。详情请阅读部分# >题为“cytoframe和cytoset类”包小插图:# ># >装饰图案(“flowWorkspace-Introduction”、“flowWorkspace”)图书馆(“flowClust”)# ># >附加包:“flowClust”# >以下对象是蒙面的包:图形:# ># >盒子# >以下对象是蒙面从“包:基地”:# ># >地图#小插图(“flowWorkspace-Introduction”、“flowWorkspace”)#小插图(HowToAutoGating,包=“openCyto”)

现在是情节我们想做什么呢?FSC。一个vs SSC。一个,大概代表每个细胞的大小和粒度(或事件)。

autoplot(数据(21:24),x =“FSC-A”,y =“SSC-A”)

注意大多数事件都是集群原点很近,但是FSC一些异常事件。和/或SSC。值的10倍,平均伸出我们的轴。收集的一些事件在媒体上可能是垃圾!碎片,细胞碎片,死细胞,废料、杂物、灰尘,谁知道呢。我们不希望包括在我们的分析,我们只想测量细胞。

血细胞计数允许我们理性地从我们的数据删除噪音,只有选择细胞内边界称为门。我们可以定义盖茨在任何参数空间和几乎任何区域内空间。我们可以应用一系列的盖茨为了我们想要分析定义特定的细胞。

所以在这种情况下,我们想要删除这些高FSC-A事件,因为它们是不太可能的细胞。门高FSC-A垃圾,我们可以定义一个FSC的垂直线。轴,只有发扬大多数细胞在左边的这条线。定义这条线的位置通过创新的方式我们可以测量事件的百分比,瞄准一个特定的数字,通常99%或99.5%,但这将取决于你的条件和设备。

我们只使用低99分位数的数据来定义我们的门自动通过openCyto: gate_quantile函数。我们可以使用autoplot函数多少事件分发我们的尾巴了。

碎片< -gate_quantile(fr =数据[[3]],频道=“FSC.A”,聚合氯化铝=0.99,filterId =“碎片”)autoplot(数据[[3]],x =“FSC-A”)+geom_gate(碎片)

我们也可以把这门其他轴,并创建一个表总结事件的比例在这门数帧。

autoplot(数据(21:24),x =“FSC-A”,“SSC-A”)+geom_gate(碎片)

toTable(总结(过滤器(数据(c(3,21:24)),!碎片)))# >筛选总结框架“A03.fcs”# >不是碎片+:833年824事件(98.92%)# ># >筛选总结框架“F01.fcs”# >不是碎片+:833年828事件(99.40%)# ># >筛选总结框架“F02.fcs”# >不是碎片+:833年828事件(99.40%)# ># >筛选总结框架“F03.fcs”# >不是碎片+:833年829事件(99.52%)# ># >筛选总结框架“F04.fcs”# >不是碎片+:833年828事件(99.40%)# >样本人口百分比计算真假p q# > 1 A03。fcs不是碎片+ 98.91957 833 824 9 0.9891957 - 0.010804322# > 2 F01。fcs不是碎片+ 99.39976 833 828 5 0.9939976 - 0.006002401# 3 F02 >。fcs不是碎片+ 99.39976 833 828 5 0.9939976 - 0.006002401# > 4 F03。fcs不是碎片0.9951981 - 0.004801921 + 99.51981 833 829 4# > 5 F04。fcs不是碎片+ 99.39976 833 828 5 0.9939976 - 0.006002401

虽然这门决定基于一个计算(或帧)看起来不坏也许是好来定义盖茨基于整个flowSet覆盖范围的菌株之间的表型多样性,生长条件,和时间。要做到这一点,让我们做一个大框架包含整个flowSet。

#初始化单帧数据1。帧< -数据[[1]]#填满单帧exprs流中的每一帧的数据集exprs(数据1。帧)< -fsApply(数据、函数(x) {x < -exprs(x)返回(x)})autoplot(数据1。框架,x =“FSC-A”,“SSC-A”)

我们也想删除垃圾的低端FSC和SSC鳞片。为了更好地查看是怎么回事的起源这个情节我们可以使用日志或biexponential变换,但最有用的变换是logicle变换,这是一个泛化的双曲正弦变换。我们可以画出如此规模的数据通过简单地增加scale_x_logicle

autoplot(数据1。框架,x =“FSC-A”,“SSC-A”)+scale_x_logicle()+scale_y_logicle()

让我们继续和这个变换应用到数据,这样我们可以构建一个门移除碎片。

chnls < -c(“FSC.A”,“SSC.A”,“FSC.H”,“SSC.H”)反式< -estimateLogicle(数据1。框架,渠道=chnls)inv.trans < -inverseLogicleTransform(反式)数据1。帧< -变换(数据1。帧,反式)autoplot(数据1。框架,x =“FSC-A”,“SSC-A”)

现在,而不是基于分位数定义被切断,我们可以定义一个椭圆代表我们整个flowSet包含95%的数据。我们将使用gate_flowclust_2d函数。

酵母< -gate_flowClust_2d(数据1。框架,xChannel =“FSC.A”,yChannel =“SSC.A”,K =1,分位数=0.95,最小值=c(0,0))# >警告:“gate_flowClust_2d”是弃用。# >使用“gate_flowclust_2d”代替。# >看到帮助(弃用)# >之前规范当usePrior =没有没有影响使用串行版本的flowClust # >autoplot(数据1。框架,x =“FSC-A”,y =“SSC-A”)+geom_gate(酵母)

在我们整个flowSet应用这门,我们需要改变整个flowSet,或反向变换我们创建的门。我们还将反向变换单帧数据集,所以我们可以用它来做一个单线态门。

酵母< -变换(酵母、inv.trans)数据1。帧< -变换(数据1。帧,inv.trans)
autoplot(数据(c(1,8,16,24,32)),“FSC.A”,“SSC.A”)+geom_gate(酵母)

#看不见(捕捉。输出(我们必须使用这个防止总结#印刷f < -总结(过滤器(数据、酵母)#))# >筛选总结框架“A01.fcs”# > defaultEllipsoidGate +: 821(98.56%)的833事件# ># >筛选总结框架“A02.fcs”# > defaultEllipsoidGate +: 819(98.32%)的833事件# ># >筛选总结框架“A03.fcs”# > defaultEllipsoidGate +: 816(97.96%)的833事件# ># >筛选总结框架“A04.fcs”# > defaultEllipsoidGate +: 822(98.68%)的833事件# ># >筛选总结框架“B01.fcs”# > defaultEllipsoidGate +: 812(97.48%)的833事件# ># >筛选总结框架“B02.fcs”# > defaultEllipsoidGate +: 817(98.08%)的833事件# ># >筛选总结框架“B03.fcs”# > defaultEllipsoidGate +: 807(96.88%)的833事件# ># >筛选总结框架“B04.fcs”# > defaultEllipsoidGate +: 813(97.60%)的833事件# ># >筛选总结框架“C01.fcs”# > defaultEllipsoidGate +: 823(98.80%)的833事件# ># >筛选总结框架“C02.fcs”# > defaultEllipsoidGate +: 816(97.96%)的833事件# ># >筛选总结框架“C03.fcs”# > defaultEllipsoidGate +: 817(98.08%)的833事件# ># >筛选总结框架“C04.fcs”# > defaultEllipsoidGate +: 820(98.44%)的833事件# ># >筛选总结框架“D01.fcs”# > defaultEllipsoidGate +: 812(97.48%)的833事件# ># >筛选总结框架“D02.fcs”# > defaultEllipsoidGate +: 817(98.08%)的833事件# ># >筛选总结框架“D03.fcs”# > defaultEllipsoidGate +: 813(97.60%)的833事件# ># >筛选总结框架“D04.fcs”# > defaultEllipsoidGate +: 822(98.68%)的833事件# ># >筛选总结框架“E01.fcs”# > defaultEllipsoidGate +: 818(98.20%)的833事件# ># >筛选总结框架“E02.fcs”# > defaultEllipsoidGate +: 820(98.44%)的833事件# ># >筛选总结框架“E03.fcs”# > defaultEllipsoidGate +: 822(98.68%)的833事件# ># >筛选总结框架“E04.fcs”# > defaultEllipsoidGate +: 813(97.60%)的833事件# ># >筛选总结框架“F01.fcs”# > defaultEllipsoidGate +: 821(98.56%)的833事件# ># >筛选总结框架“F02.fcs”# > defaultEllipsoidGate +: 817(98.08%)的833事件# ># >筛选总结框架“F03.fcs”# > defaultEllipsoidGate +: 818(98.20%)的833事件# ># >筛选总结框架“F04.fcs”# > defaultEllipsoidGate +: 820(98.44%)的833事件# ># >筛选总结框架“G01.fcs”# > defaultEllipsoidGate +: 823(98.80%)的833事件# ># >筛选总结框架“G02.fcs”# > defaultEllipsoidGate +: 826(99.16%)的833事件# ># >筛选总结框架“G03.fcs”# > defaultEllipsoidGate +: 816(97.96%)的833事件# ># >筛选总结框架“G04.fcs”# > defaultEllipsoidGate +: 823(98.80%)的833事件# ># >筛选总结框架“H01.fcs”# > defaultEllipsoidGate +: 820(98.44%)的833事件# ># >筛选总结框架“H02.fcs”# > defaultEllipsoidGate +: 809(97.12%)的833事件# ># >筛选总结框架“H03.fcs”# > defaultEllipsoidGate +: 818(98.20%)的833事件# ># >筛选总结框架“H04.fcs”# > defaultEllipsoidGate +: 822(98.68%)的833事件#现在我们可以打印我们的总结表toTable(f)# >样本人口百分比计算真假p# > 1 A01。fcs defaultEllipsoidGate 0.9855942 + 98.55942 833 821 12# > 2 A02。fcs defaultEllipsoidGate 0.9831933 + 98.31933 833 819 14# 3 A03 >。fcs defaultEllipsoidGate 0.9795918 + 97.95918 833 816 17# > 4 A04。fcs defaultEllipsoidGate 0.9867947 + 98.67947 833 822 11# > 5 B01。fcs defaultEllipsoidGate 0.9747899 + 97.47899 833 812 21# > 6 B02。fcs defaultEllipsoidGate 0.9807923 + 98.07923 833 817 16# > 7 B03。fcs defaultEllipsoidGate 0.9687875 + 96.87875 833 807 26# > 8当。fcs defaultEllipsoidGate 0.9759904 + 97.59904 833 813 20# > 9 C01。fcs defaultEllipsoidGate 0.9879952 + 98.79952 833 823 10# > 10二氧化碳。fcs defaultEllipsoidGate 0.9795918 + 97.95918 833 816 17# 11 C03 >。fcs defaultEllipsoidGate 0.9807923 + 98.07923 833 817 16# > 12 C04。fcs defaultEllipsoidGate 13 + 98.43938 833 820 0.9843938# > 13 D01。fcs defaultEllipsoidGate 0.9747899 + 97.47899 833 812 21# > 14 D02。fcs defaultEllipsoidGate 0.9807923 + 98.07923 833 817 16# > 15 D03。fcs defaultEllipsoidGate 0.9759904 + 97.59904 833 813 20# > 16 D04。fcs defaultEllipsoidGate 0.9867947 + 98.67947 833 822 11# > 17 E01。fcs defaultEllipsoidGate 0.9819928 + 98.19928 833 818 15# 18 E02 >。fcs defaultEllipsoidGate 13 + 98.43938 833 820 0.9843938# > 19 E03。fcs defaultEllipsoidGate 0.9867947 + 98.67947 833 822 11# > 20 E04。fcs defaultEllipsoidGate 0.9759904 + 97.59904 833 813 20# 21 F01 >。fcs defaultEllipsoidGate 0.9855942 + 98.55942 833 821 12# > 22 F02。fcs defaultEllipsoidGate 0.9807923 + 98.07923 833 817 16# > 23 F03。fcs defaultEllipsoidGate 0.9819928 + 98.19928 833 818 15# 24 F04 >。fcs defaultEllipsoidGate 13 + 98.43938 833 820 0.9843938# > 25 G01。fcs defaultEllipsoidGate 0.9879952 + 98.79952 833 823 10# > 26 G02。fcs defaultEllipsoidGate 0.9915966 + 99.15966 833 826 7# > 27 G03。fcs defaultEllipsoidGate 0.9795918 + 97.95918 833 816 17# > 28 G04。fcs defaultEllipsoidGate 0.9879952 + 98.79952 833 823 10# > 29 H01。fcs defaultEllipsoidGate 13 + 98.43938 833 820 0.9843938# > 30 H02。fcs defaultEllipsoidGate 0.9711885 + 97.11885 833 809 24# > 31 H03。fcs defaultEllipsoidGate 0.9819928 + 98.19928 833 818 15# > 32 H04。fcs defaultEllipsoidGate 0.9867947 + 98.67947 833 822 11# >问1 # > 0.0144057620.016806723 # > 23 # > 0.0204081634 # > 0.0132052825 # > 0.0252100840.019207683 # > 67 # > 0.0312124858 # > 0.0240096049 # > 0.01200480210 # > 0.02040816311 # > 0.0192076830.015606242 # > 1213 # > 0.02521008414 # > 0.01920768315 # > 0.0240096040.013205282 # > 1617 # > 0.018007203# > 18 0.01560624219 # > 0.01320528220 # > 0.02400960421 # > 0.01440576222 # > 0.01920768323 # > 0.0180072030.015606242 # > 2425 # > 0.01200480226 # > 0.00840336127 # > 0.02040816328 # > 0.01200480229 # > 0.0156062420.028811525 # > 3031 # > 0.01800720332 # > 0.013205282

所以这个保守的控制策略摆脱许多大型粒子在前面的时间点/帧。

正如上面提到的,我们使用的是出芽酵母,除以发展新的更小的细胞称为定期味蕾。这些崭露头角的细胞,以及哺乳动物细胞或裂殖酵母细胞分裂或两个细胞粘在一起,流式细胞术术语中被称为对比。因为细胞分裂是投入更多的精力来划分这可以引入更多的噪声测量的信号通路和蛋白质。所以我们想出口只有单线态细胞,没有显著的味蕾。

发现单线态细胞我们将比较的大小事件,在FSC-A(向前散射区)参数,提出分散高度参数。如果两个细胞通过激光立即相邻的路径会生成一个脉冲,宽的两倍,但同样高,作为一个单独的细胞。单线态面积的两倍,所以对比和汗衫将下降大约行FSC-A = FSC-H。的flowStats: gate_singlet功能提供了一个方便的、可再生的、数据驱动的方法闸门汗衫。

autoplot(子集(数据1。框架、酵母),“FSC-A”,“FSC-H”)

图书馆(flowStats)chnl < -c(“FSC-A”,“FSC-H”)汗衫< -gate_singlet(x =子集(数据1。框架、酵母),面积=“FSC.A”,身高=“FSC.H”,prediction_level =0.999,麦克斯特=20.)autoplot(子集(数据1。框架、酵母),“FSC-A”,“FSC-H”)+geom_gate(背心)

现在让我们看看如何上演几帧

autoplot(数据(c(1:4,29日:32)),x =“FSC-A”,y =“FSC-H”)+geom_gate(背心)+facet_wrap(“名称”,ncol =4)

autoplot(子集(数据(c(1:4,29日:32)、酵母&单线态),x =“FL1-A”)+facet_wrap(“名称”,ncol =4)

这看起来非常一致的在这个实验的课程!

让我们得到一些数据,看看这门是一致的。以来收集的样本以字母顺序根据样本的名字我们也可以在我们的阴谋事件的百分比盖茨和时间/样本,寻找任何趋势。

看不见的(capture.output(d < -总结(过滤器(数据、酵母&单线态))))(e < -toTable(d))# >样本人口百分比数真的假的# > 1 A01。fcs defaultEllipsoidGate和单线态+ 90.51621 833 754 79# > 2 A02。fcs defaultEllipsoidGate和单线态+ 93.03721 833 775 58岁# 3 A03 >。fcs defaultEllipsoidGate和单线态+ 91.35654 833 761 72# > 4 A04。fcs defaultEllipsoidGate和单线态+ 93.27731 833 777 56# > 5 B01。fcs defaultEllipsoidGate和单线态+ 91.95678 833 766 67# > 6 B02。fcs defaultEllipsoidGate和单线态+ 91.83673 833 765 68# > 7 B03。fcs defaultEllipsoidGate和单线态+ 88.11525 833 734 99# > 8当。fcs defaultEllipsoidGate和单线态+ 92.07683 833 767 66# > 9 C01。fcs defaultEllipsoidGate和单线态+ 93.87755 833 782 51# > 10二氧化碳。fcs defaultEllipsoidGate和单线态+ 93.51741 833 779 54# 11 C03 >。fcs defaultEllipsoidGate和单线态+ 90.63625 833 755 78# > 12 C04。fcs defaultEllipsoidGate和单线态+ 91.59664 833 763 70# > 13 D01。fcs defaultEllipsoidGate和单线态+ 93.39736 833 778 55# > 14 D02。fcs defaultEllipsoidGate和单线态+ 93.03721 833 775 58岁# > 15 D03。fcs defaultEllipsoidGate和单线态+ 91.59664 833 763 70# > 16 D04。fcs defaultEllipsoidGate和单线态60 + 92.79712 833 773# > 17 E01。fcs defaultEllipsoidGate和单线态+ 94.23770 833 785 48# 18 E02 >。fcs defaultEllipsoidGate和单线态+ 92.43697 833 770 63# > 19 E03。fcs defaultEllipsoidGate和单线态+ 91.95678 833 766 67# > 20 E04。fcs defaultEllipsoidGate和单线态+ 92.91717 833 774 59# 21 F01 >。fcs defaultEllipsoidGate和单线态+ 93.51741 833 779 54# > 22 F02。fcs defaultEllipsoidGate和单线态+ 92.55702 833 771 62# > 23 F03。fcs defaultEllipsoidGate和单线态+ 92.91717 833 774 59# 24 F04 >。fcs defaultEllipsoidGate和单线态+ 94.47779 833 787 46# > 25 G01。fcs defaultEllipsoidGate和单线态+ 93.99760 833 783 50# > 26 G02。fcs defaultEllipsoidGate和单线态45 + 94.59784 833 788# > 27 G03。fcs defaultEllipsoidGate和单线态+ 92.19688 833 768 65# > 28 G04。fcs defaultEllipsoidGate和单线态+ 95.07803 833 792 41# > 29 H01。fcs defaultEllipsoidGate和单线态+ 93.87755 833 782 51# > 30 H02。fcs defaultEllipsoidGate和单线态+ 93.87755 833 782 51# > 31 H03。fcs defaultEllipsoidGate和单线态+ 92.67707 833 772 61# > 32 H04。fcs defaultEllipsoidGate和单线态+ 94.35774 833 786 47岁# > p q1 # > 0.9051621 - 0.09483794# > 2 0.9303721 - 0.069627853 # > 0.9135654 - 0.08643457# > 4 0.9327731 - 0.06722689# > 5 0.9195678 - 0.08043217# > 6 0.9183673 - 0.08163265# > 7 0.8811525 - 0.11884754# > 8 0.9207683 - 0.07923169# > 9 0.9387755 - 0.06122449# > 10 0.9351741 - 0.06482593# > 11 0.9063625 - 0.09363745# > 12 0.9159664 - 0.08403361# > 13 0.9339736 - 0.06602641# > 14 0.9303721 - 0.06962785# > 15 0.9159664 - 0.08403361# > 16 0.9279712 - 0.07202881# > 17 0.9423770 - 0.05762305# > 18 0.9243697 - 0.07563025# > 19 0.9195678 - 0.08043217# > 20 0.9291717 - 0.07082833# > 21 0.9351741 - 0.06482593# > 22 0.9255702 - 0.07442977# > 23 0.9291717 - 0.07082833# > 24 0.9447779 - 0.05522209# > 25 0.9399760 - 0.06002401# > 26日0.9459784 - 0.05402161# > 27 0.9219688 - 0.07803121# > 28 0.9507803 - 0.04921969# > 29日0.9387755 - 0.06122449# > 30 0.9387755 - 0.06122449# > 31日0.9267707 - 0.07322929# > 32 0.9435774 - 0.05642257e < -left_join(e,pData(数据),通过=c(示例=“名称”))ggplot(data =e,映射=aes(x =as.factor(样本),y =百分比)+geom_point()

这看起来不错。正如我们预期的增长进入对数期随着时间的推移(和数字获得更高)更多的人口在酵母和单线态盖茨捕获。周期性的基础上,这也有一些压力的依赖。现在我们可以继续使用这些门的数据,并总结数据summarizeFlow设置封闭的参数真正的

数据< -子集(数据、酵母&单线态)data_sum < -summarizeFlow(数据、频道=c(“FL1.A”,“FL4.A”),封闭的=真正的)

或者我们可以保存这些gateSet和使用倍性只有参数指定flowSet如何应该是封闭的。在当前版本的flowTime这些盖茨只是保存为单独的对象在一个.Rdata文件使用saveGates函数。大门内我们可以定义这个函数yeastGate定义的人口从垃圾酵母细胞,dipsingletGate定义你的汗衫二倍体酵母菌株,dipdoubletGate定义的人口二倍体紧身上衣细胞,以及类似的hapsingletGatehapdoubletGate对单倍体细胞。确保这些门中指定相同的变换你的数据集。

这个例子使用一个二倍体应变数据集收集,所以我们只会创建这些门。

saveGates(yeastGate =酵母,dipsingletGate =汗衫,文件名=“PSB_Accuri_W303.RData”)loadGates(gatesFile =“PSB_Accuri_W303.RData”)data_sum < -summarizeFlow(数据、频道=c(“FL1.A”,“FL4.A”),倍性=“二倍体”,只有=“汗衫”)