示例#1
0
    def setUp(self):
        super().setUp()

        plugin = ImportPlugin()
        op = plugin.get_operation()

        from cytoflow import Tube

        self.cwd = os.path.dirname(os.path.abspath(__file__))

        tube = Tube(file=self.cwd + "/../../cytoflow/tests/data/tasbe/rby.fcs")
        op.tubes = [tube]

        wi = WorkflowItem(operation=op,
                          status="waiting",
                          view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        op.do_estimate = True
        self.workflow.wi_waitfor(wi, 'status', 'valid')
        self.assertTrue(
            self.workflow.remote_eval("self.workflow[0].result is not None"))

        plugin = ThresholdPlugin()
        op = plugin.get_operation()

        op.name = "Morpho"
        op.channel = "FSC-A"
        op.threshold = 100000

        wi = WorkflowItem(operation=op, status='waiting')
        self.workflow.workflow.append(wi)
        self.workflow.selected = wi
        self.workflow.wi_waitfor(wi, 'status', 'valid')
示例#2
0
    def setUp(self):
        super().setUp()

        op = ChannelStatisticWorkflowOp()
        
        op.name = "Count"
        op.channel = "Y2-A"
        op.statistic_name = "Count"
        op.by = ['Dox', 'Well']
        
        wi = WorkflowItem(operation = op)
        self.workflow.workflow.append(wi)        
        
        self.op = op = TransformStatisticWorkflowOp()
        
        op.name = "Mean"
        op.statistic = ("Count", "Count")
        op.statistic_name = "Count"
        op.by = ["Dox"]
        op.subset_list.append(CategorySubset(name = "Well", values = ["A", "B"]))
                
        self.wi = wi = WorkflowItem(operation = op,
                                    status = 'waiting',
                                    view_error = "Not yet plotted")        
        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        self.workflow.wi_waitfor(wi, 'status', "valid")
示例#3
0
    def setUp(self):
        super().setUp()

        stats_plugin = ChannelStatisticPlugin()

        stats_op_3 = stats_plugin.get_operation()
        stats_op_3.name = "MeanByDoxIP2"
        stats_op_3.channel = "B1-A"
        stats_op_3.statistic_name = "Geom.Mean"
        stats_op_3.by = ['Dox', 'IP']
        stats_op_3.subset_list.append(
            CategorySubset(name="Well", values=['A', 'B']))
        stats_op_3.subset_list.append(
            RangeSubset(name="Dox", values=[1.0, 10.0, 100.0]))
        stats_op_3.subset_list.append(
            RangeSubset(name="IP", values=[1.0, 10.0]))

        stats_wi_3 = WorkflowItem(operation=stats_op_3,
                                  status="waiting",
                                  view_error="Not yet plotted")
        self.workflow.workflow.append(stats_wi_3)
        self.workflow.wi_waitfor(stats_wi_3, 'status', 'valid')

        stats_op_4 = stats_plugin.get_operation()
        stats_op_4.name = "SDByDoxIP2"
        stats_op_4.channel = "B1-A"
        stats_op_4.statistic_name = "Geom.SD"
        stats_op_4.by = ['Dox', 'IP']
        stats_op_4.subset_list.append(
            CategorySubset(name="Well", values=['A', 'B']))
        stats_op_4.subset_list.append(
            RangeSubset(name="Dox", values=[1.0, 10.0, 100.0]))
        stats_op_4.subset_list.append(
            RangeSubset(name="IP", values=[1.0, 10.0]))

        stats_wi_4 = WorkflowItem(operation=stats_op_4,
                                  status="waiting",
                                  view_error="Not yet plotted")
        self.workflow.workflow.append(stats_wi_4)
        self.workflow.wi_waitfor(stats_wi_4, 'status', 'valid')

        self.wi = wi = self.workflow.workflow[-1]

        self.view = view = Stats2DWorkflowView()
        wi.views.append(view)
        wi.current_view = view

        super().setUpView()

        self.workflow.selected = wi
        self.workflow.wi_waitfor(self.wi, 'view_error', '')
示例#4
0
    def setUp(self):
        super().setUp()

        self.op = op = GaussianMixture2DWorkflowOp()

        op.name = "Gauss"
        op.xchannel = "V2-A"
        op.ychannel = "Y2-A"
        op.xscale = "logicle"
        op.yscale = "logicle"
        op.num_components = 2

        op.subset_list.append(CategorySubset(name="Well", values=['A', 'B']))
        op.subset_list.append(
            RangeSubset(name="Dox", values=[0.0, 10.0, 100.0]))

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        wi.views.append(self.wi.default_view)

        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        # run estimate
        op.do_estimate = True
        self.workflow.wi_waitfor(self.wi, 'status', 'valid')
示例#5
0
 def setUp(self):
     super().setUp()
      
     self.op = op = BleedthroughLinearWorkflowOp()
     
     self.cwd = os.path.dirname(os.path.abspath(__file__))
     op.controls_list = [BleedthroughControl(channel = "FITC-A",
                                  file = self.cwd + '/../../cytoflow/tests/data/tasbe/eyfp.fcs'),
                         BleedthroughControl(channel = "PE-Tx-Red-YG-A",
                                  file = self.cwd + '/../../cytoflow/tests/data/tasbe/mkate.fcs'),
                         BleedthroughControl(channel = "Pacific Blue-A",
                                  file = self.cwd + '/../../cytoflow/tests/data/tasbe/ebfp.fcs')]
     
     op.subset_list.append(BoolSubset(name = "Morpho"))
     op.subset_list[0].selected_t = True
     
     self.wi = wi = WorkflowItem(operation = op,
                                 status = 'waiting',
                                 view_error = "Not yet plotted")
     wi.views.append(self.wi.default_view)
     self.workflow.workflow.append(wi)
     self.workflow.selected = self.wi
       
     # run the estimate
     op.do_estimate = True
     self.workflow.wi_waitfor(self.wi, 'status', 'valid')
示例#6
0
    def setUp(self):
        super().setUp()

        self.op = op = PCAWorkflowOp()

        op.name = "PCA"
        op.channels_list = [
            PCAChannel(channel="V2-A", scale="log"),
            PCAChannel(channel="V2-H", scale="log"),
            PCAChannel(channel="Y2-A", scale="log"),
            PCAChannel(channel="Y2-H", scale="log")
        ]
        op.num_components = 2

        op.subset_list.append(CategorySubset(name="Well", values=['A', 'B']))
        op.subset_list.append(
            RangeSubset(name="Dox", values=[0.0, 10.0, 100.0]))

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")

        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        # run estimate
        op.do_estimate = True
        self.workflow.wi_waitfor(self.wi, 'status', 'valid')
示例#7
0
    def setUp(self):
        super().setUp()

        self.op = op = TasbeWorkflowOp()
        self.cwd = os.path.dirname(os.path.abspath(__file__))

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        wi.views.append(self.wi.default_view)

        self.workflow.workflow.append(wi)
        self.workflow.selected = self.wi

        op.channels = ["FITC-A", "Pacific Blue-A", "PE-Tx-Red-YG-A"]

        op.blank_file = self.cwd + "/../../cytoflow/tests/data/tasbe/blank.fcs"

        op.bleedthrough_list = [
            BleedthroughControl(channel="FITC-A",
                                file=self.cwd +
                                "/../../cytoflow/tests/data/tasbe/eyfp.fcs"),
            BleedthroughControl(channel="Pacific Blue-A",
                                file=self.cwd +
                                "/../../cytoflow/tests/data/tasbe/ebfp.fcs"),
            BleedthroughControl(channel="PE-Tx-Red-YG-A",
                                file=self.cwd +
                                "/../../cytoflow/tests/data/tasbe/mkate.fcs")
        ]

        op.beads_name = "Spherotech RCP-30-5A Lot AG01, AF02, AD04 and AAE01"
        op.beads_file = self.cwd + "/../../cytoflow/tests/data/tasbe/beads.fcs"
        op.beads_unit = "MEFL"

        op.do_color_translation = True
        op.to_channel = "FITC-A"

        self.op.translation_list[
            0].file = self.cwd + "/../../cytoflow/tests/data/tasbe/rby.fcs"
        self.op.translation_list[
            1].file = self.cwd + "/../../cytoflow/tests/data/tasbe/rby.fcs"

        op.subset_list.append(BoolSubset(name="Morpho"))
        op.subset_list[0].selected_t = True

        # run the estimate
        op.do_estimate = True
        self.workflow.wi_waitfor(self.wi, 'status', 'valid')
示例#8
0
    def setUp(self):
        super().setUp()

        self.op = op = BinningWorkflowOp()
        op.name = "Bin"
        op.channel = "V2-A"
        op.scale = "log"
        op.bin_width = 0.2

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        wi.views.append(self.wi.default_view)

        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        self.workflow.wi_waitfor(wi, 'status', "valid")
示例#9
0
    def setUp(self):
        super().setUp()

        self.op = op = AutofluorescenceWorkflowOp()

        self.cwd = os.path.dirname(os.path.abspath(__file__))
        op.blank_file = self.cwd + "/../../cytoflow/tests/data/tasbe/blank.fcs"
        op.channels = ["FITC-A", "Pacific Blue-A", "PE-Tx-Red-YG-A"]

        op.subset_list.append(BoolSubset(name="Morpho"))
        op.subset_list[0].selected_t = True

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        wi.views.append(self.wi.default_view)
        self.workflow.workflow.append(wi)
        self.workflow.selected = self.wi

        # run the estimate
        op.do_estimate = True
        self.workflow.wi_waitfor(self.wi, 'status', 'valid')
示例#10
0
    def setUp(self):
        super().setUp()

        self.op = op = RangeWorkflowOp()
        op.name = "Range"
        op.channel = "Y2-A"
        op.low = 100
        op.high = 1000

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")

        self.view = wi.default_view
        wi.views.append(self.wi.default_view)
        self.wi.current_view = self.wi.default_view

        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        self.workflow.wi_waitfor(wi, 'view_error', "")
        self.workflow.wi_waitfor(wi, 'status', "valid")
示例#11
0
    def setUp(self):
        super().setUp()

        self.op = op = RangeWorkflowOp()
        op.name = "Range"
        op.channel = "Y2-A"
        op.low = 100
        op.high = 1000

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        self.view = view = ViolinPlotWorkflowView()
        wi.views.append(view)
        wi.current_view = view
        self.workflow.selected = self.wi

        self.view.variable = "Range"
        super().setUpView()
        self.workflow.wi_waitfor(self.wi, 'view_error', '')
示例#12
0
    def setUp(self):
        super().setUp()

        stats_op = ChannelStatisticWorkflowOp()
        stats_op.name = "MeanByDoxWell"
        stats_op.channel = "Y2-A"
        stats_op.statistic_name = "Geom.Mean"
        stats_op.by = ['Dox', 'Well']
        stats_op.subset_list.append(
            CategorySubset(name="Well", values=['A', 'B']))
        stats_op.subset_list.append(
            RangeSubset(name="Dox", values=[1.0, 10.0, 100.0]))
        stats_op.subset_list.append(RangeSubset(name="IP", values=[1.0, 10.0]))

        stats_wi = WorkflowItem(operation=stats_op,
                                status="waiting",
                                view_error="Not yet plotted")
        self.workflow.workflow.append(stats_wi)
        self.workflow.wi_waitfor(stats_wi, 'status', 'valid')

        self.wi = wi = self.workflow.workflow[-1]
        self.op = self.wi.operation
        self.workflow.selected = wi
示例#13
0
    def setUp(self):
        super().setUp()

        self.op = op = ThresholdWorkflowOp()
        op.name = "Thresh"
        op.channel = "Y2-A"
        op.threshold = 1000

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")

        self.view = view = wi.default_view
        view.subset_list.append(CategorySubset(name="Well", values=["A", "B"]))

        wi.view_error = "Not yet plotted"
        wi.views.append(self.wi.default_view)
        self.wi.current_view = self.wi.default_view

        self.workflow.workflow.append(wi)
        self.workflow.selected = wi

        self.workflow.wi_waitfor(wi, 'view_error', "")
        self.workflow.wi_waitfor(wi, 'status', "valid")
示例#14
0
    def setUp(self):
        super().setUp()

        self.op = op = BeadCalibrationWorkflowOp()

        self.cwd = os.path.dirname(os.path.abspath(__file__))
        op.beads_name = "Spherotech RCP-30-5A Lot AG01, AF02, AD04 and AAE01"
        op.beads_file = self.cwd + "/../../cytoflow/tests/data/tasbe/beads.fcs"
        op.units_list = [
            BeadCalibrationUnit(channel="FITC-A", unit="MEFL"),
            BeadCalibrationUnit(channel="Pacific Blue-A", unit="MEBFP")
        ]

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        wi.views.append(self.wi.default_view)

        self.workflow.workflow.append(wi)
        self.workflow.selected = self.wi

        # run the estimate
        op.do_estimate = True
        self.workflow.wi_waitfor(wi, 'status', "valid")
示例#15
0
    def setUp(self):
        super().setUp()

        import_plugin = ImportPlugin()
        import_op = import_plugin.get_operation()

        from cytoflow import Tube

        import_op.conditions = {
            "Dox": "float",
            "IP": "float",
            "Well": "category"
        }

        self.cwd = os.path.dirname(os.path.abspath(__file__))

        tube1 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/CFP_Well_A4.fcs",
                     conditions={
                         "Dox": 1.0,
                         "IP": 1.0,
                         "Well": 'A'
                     })

        tube2 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/RFP_Well_A3.fcs",
                     conditions={
                         "Dox": 1.0,
                         "IP": 10.0,
                         "Well": 'B'
                     })

        tube3 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/YFP_Well_A7.fcs",
                     conditions={
                         "Dox": 10.0,
                         "IP": 1.0,
                         "Well": 'A'
                     })

        tube4 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/CFP_Well_B4.fcs",
                     conditions={
                         "Dox": 10.0,
                         "IP": 10.0,
                         "Well": 'B'
                     })

        tube5 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/RFP_Well_A6.fcs",
                     conditions={
                         "Dox": 100.0,
                         "IP": 1.0,
                         "Well": 'A'
                     })

        tube6 = Tube(file=self.cwd +
                     "/../../cytoflow/tests/data/Plate01/YFP_Well_C7.fcs",
                     conditions={
                         "Dox": 100.0,
                         "IP": 100.0,
                         "Well": 'B'
                     })

        import_op.tubes = [tube1, tube2, tube3, tube4, tube5, tube6]

        wi = WorkflowItem(operation=import_op,
                          status="waiting",
                          view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        import_op.do_estimate = True
        self.workflow.wi_waitfor(wi, 'status', 'valid')
        self.assertTrue(
            self.workflow.remote_eval("self.workflow[0].result is not None"))

        stats_plugin = ChannelStatisticPlugin()

        stats_op_1 = stats_plugin.get_operation()
        stats_op_1.name = "MeanByDoxIP"
        stats_op_1.channel = "Y2-A"
        stats_op_1.statistic_name = "Geom.Mean"
        stats_op_1.by = ['Dox', 'IP']
        stats_op_1.subset_list.append(
            CategorySubset(name="Well", values=['A', 'B']))
        stats_op_1.subset_list.append(
            RangeSubset(name="Dox", values=[1.0, 10.0, 100.0]))
        stats_op_1.subset_list.append(
            RangeSubset(name="IP", values=[1.0, 10.0]))

        stats_wi_1 = WorkflowItem(operation=stats_op_1,
                                  status="waiting",
                                  view_error="Not yet plotted")
        self.workflow.workflow.append(stats_wi_1)
        self.workflow.wi_waitfor(stats_wi_1, 'status', 'valid')

        stats_op_2 = stats_plugin.get_operation()
        stats_op_2.name = "SDByDoxIP"
        stats_op_2.channel = "Y2-A"
        stats_op_2.statistic_name = "Geom.SD"
        stats_op_2.by = ['Dox', 'IP']
        stats_op_2.subset_list.append(
            CategorySubset(name="Well", values=['A', 'B']))
        stats_op_2.subset_list.append(
            RangeSubset(name="Dox", values=[1.0, 10.0, 100.0]))
        stats_op_2.subset_list.append(
            RangeSubset(name="IP", values=[1.0, 10.0]))

        stats_wi_2 = WorkflowItem(operation=stats_op_2,
                                  status="waiting",
                                  view_error="Not yet plotted")
        self.workflow.workflow.append(stats_wi_2)
        self.workflow.selected = stats_wi_2
        self.workflow.wi_waitfor(stats_wi_2, 'status', 'valid')
示例#16
0
    def setUp(self):
        super().setUp()

        op = ChannelStatisticWorkflowOp()
        op.name = "MeanByDox"
        op.channel = "Y2-A"
        op.statistic_name = "Geom.SD"
        op.by = ['Dox']

        wi = WorkflowItem(operation=op,
                          status='waiting',
                          view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        op = ChannelStatisticWorkflowOp()
        op.name = "MeanByDoxAndWell"
        op.channel = "Y2-A"
        op.statistic_name = "Geom.SD"
        op.by = ['Dox', 'Well']

        wi = WorkflowItem(operation=op,
                          status='waiting',
                          view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        op = ChannelStatisticWorkflowOp()
        op.name = "MeanByDox"
        op.channel = "Y2-A"
        op.statistic_name = "Geom.Mean"
        op.by = ['Dox']

        wi = WorkflowItem(operation=op,
                          status='waiting',
                          view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        op = ChannelStatisticWorkflowOp()
        op.name = "MeanByDoxAndWell"
        op.channel = "Y2-A"
        op.statistic_name = "Geom.Mean"
        op.by = ['Dox', 'Well']

        self.wi = wi = WorkflowItem(operation=op,
                                    status='waiting',
                                    view_error="Not yet plotted")
        self.workflow.workflow.append(wi)

        self.workflow.selected = wi

        self.workflow.wi_waitfor(wi, 'status', "valid")

        self.view = view = TableWorkflowView()
        view.statistic = ("MeanByDox", "Geom.Mean")
        view.row_facet = "Dox"

        self.workflow.wi_sync(self.wi, 'view_error', 'waiting')

        wi.views.append(view)
        wi.current_view = view
        self.workflow.selected = wi

        self.workflow.wi_waitfor(self.wi, 'view_error', '')