def Run(self):
        self.set_EvoMode()
        self.initialize()                       # set_defaults ??
        Rtv.NumOfSamples = self.NumOfSamples
        NumOfSamples = self.NumOfSamples
        wt           = self.worktable

        Itr.comment('Extracting RNA from {:s} samples with the MN-Vet kit'.format(str(NumOfSamples))).exec()


        #  Get Labwares (Cuvette, eppys, etc.) from the work table

        ElutBuf     = wt.getLabware(Lab.Trough_100ml,   "1-VEL-ElutionBuffer"   )
        LysBuf      = wt.getLabware(Lab.Trough_100ml,   "2-Vl Lysis Buffer"     )
        BindBuf     = wt.getLabware(Lab.Trough_100ml,   "3-VEB Binding Buffer"  )

        DiTi1000_1  = wt.getLabware(Lab.DiTi_1000ul,    "1000-1")
        DiTi1000_2  = wt.getLabware(Lab.DiTi_1000ul,    "1000-2")
        DiTi1000_3  = wt.getLabware(Lab.DiTi_1000ul,    "1000-3")

        Reactives   = wt.getLabware(Lab.GreinRack16_2mL, "Reactives" )

        #  Set the initial position of the tips

        self.go_first_pos()

        # Set volumen / sample

        SampleVolume        = 200.0
        LysisBufferVolume   = 180.0       # VL1
        IC2Volume           =   5.0       # ? 4
        BindingBufferVolume = 600.0
        B_BeadsVolume       =  20.0
        VEW1Volume          = 600.0
        VEW2Volume          = 600.0
        EtOH80pVolume       = 600.0
        ProtKVolume         =  20.0
        cRNAVolume          =   4.0
        IC_MS2Volume        =  20.0
        ElutionBufferVolume = 100.0


        # Liquid classes used for pippetting. Others liquidClass names are defined in "protocol_steps.py"

        SampleLiqClass = "Serum Asp"  # = TissueHomLiqClass   # SerumLiqClass="Serum Asp preMix3"


        all_samples = range(NumOfSamples)
        maxTips     = min  (self.nTips, NumOfSamples)
        maxMask     = Rbt.tipsMask[maxTips]


        # Define the reactives in each labware (Cuvette, eppys, etc.)

        LysisBuffer     = Rtv.Reagent("VL - Lysis Buffer ",
                                      LysBuf, volpersample=LysisBufferVolume, defLiqClass=B_liquidClass)
        IC2             = Rtv.Reagent("IC2 - synthetic RNA ",
                                      Reactives, pos=11, volpersample=  IC2Volume, defLiqClass=W_liquidClass)
        VEB             = Rtv.Reagent("VEB - Binding Buffer ",
                                      BindBuf, volpersample=BindingBufferVolume, defLiqClass=B_liquidClass)
        B_Beads         = Rtv.Reagent("B - Beads ", Reactives, initial_vol=1200,
                                      pos=1, volpersample= B_BeadsVolume, replicas=2, defLiqClass=Beads_LC_2)

        VEW1            = Rtv.Reagent("VEW1 - Wash Buffer ",
                                      wt.getLabware(Lab.Trough_100ml,  "4-VEW1 Wash Buffe"),
                                      volpersample=VEW1Volume, defLiqClass=B_liquidClass)
        VEW2            = Rtv.Reagent("VEW2 - WashBuffer ",
                                      wt.getLabware(Lab.Trough_100ml,  "5-VEW2-WashBuffer" ),
                                      volpersample=VEW2Volume, defLiqClass=B_liquidClass)
        EtOH80p         = Rtv.Reagent("Ethanol 80% ",
                                      wt.getLabware(Lab.Trough_100ml,  "7-EtOH80p"     ),
                                      volpersample=EtOH80pVolume, defLiqClass=B_liquidClass)
        ElutionBuffer   = Rtv.Reagent("Elution Buffer ",
                                      ElutBuf, volpersample=ElutionBufferVolume, defLiqClass="Eluat")

        ProtK           = Rtv.Reagent("Proteinase K ",
                                      Reactives, pos=16, volpersample= ProtKVolume, defLiqClass=Small_vol_disp)
        cRNA            = Rtv.Reagent("Carrier RNA ",
                                      Reactives, pos=15, volpersample=  cRNAVolume, defLiqClass=Small_vol_disp)
        IC_MS2          = Rtv.Reagent("IC MS2 phage culture ",
                                      Reactives, pos=14, volpersample= IC_MS2Volume, defLiqClass=Small_vol_disp)
        pK_cRNA_MS2     = Rtv.preMix  ("ProtK+cRNA+IC-MS2 mix "        ,
                                       Reactives, pos=12,   components=[ ProtK, cRNA, IC2 ]
                                         , defLiqClass=W_liquidClass, replicas=2)
#        Waste           = Rtv.Reagent("Waste "  , self.WashWaste )

        # Show the CheckList GUI to the user for posible small changes

        self.CheckList()
        self.set_EvoMode()

        Itr.wash_tips(wasteVol=30, FastWash=True).exec()


        with group("Prefill plates with VEW1, VEW2, EtOH and Elution buffer"):

            Itr.userPrompt("Put the plates for VEW1, Elution Buffer and VEW2"
                           " in the worktable defined order").exec()

            Plate_VEW1  = wt.getLabware(Lab.MP96deepwell, "Plate VEW1" )  # Plate 12 x 8 ?
            Plate_ElutB = wt.getLabware(Lab.MP96well,     "Plate ElutB")  # Plate 12 x 8 ? MP96well !!
            Plate_VEW2  = wt.getLabware(Lab.MP96deepwell, "Plate VEW2" )  # Plate 12 x 8 ?

            # Define samples and the place for temporal reactions
            for s in all_samples:
                Rtv.Reagent("VEW1_{:02d}".format(s + 1), Plate_VEW1, initial_vol=0.0, pos=s + 1,
                            excess=0)  # todo revise order !!!
                Rtv.Reagent("VEW2_{:02d}".format(s + 1), Plate_VEW2, initial_vol=0.0, pos=s + 1,
                            excess=0)  # todo revise order !!!
                Rtv.Reagent("ElutB_{:02d}".format(s + 1), Plate_ElutB, initial_vol=0.0, pos=s + 1,
                            excess=0)  # todo revise order !!!

            with tips(reuse=True, drop=False):
                spread(reactive=VEW1, to_labware_region=Plate_VEW1.selectOnly(all_samples))

            with tips(reuse=True, drop=False):
                spread(reactive=VEW2, to_labware_region=Plate_VEW2.selectOnly(all_samples))

            with tips(reuse=True, drop=False):
                spread(reactive=ElutionBuffer, to_labware_region=Plate_ElutB.selectOnly(all_samples))

            Itr.userPrompt("Retire the plates for VEW1, VEW2 and Elution Buffer, and "
                           "Put the plates for the lysis -in place of VEW1- and for EtOH80p -in place of VEW2-").exec()

            Plate_EtOH = wt.replaceWithNew(Plate_VEW2, "Plate_EtOH")  # Plate 12 x 8 ?
            for s in all_samples:
                Rtv.Reagent("EtOH_{:02d}".format(s + 1), Plate_EtOH, initial_vol=0.0, pos=s + 1,
                            excess=0)  # todo revise order !!!
            with tips(reuse=True, drop=False):
                spread(reactive=EtOH80p, to_labware_region=Plate_EtOH.selectOnly(all_samples))



        with group("Sample Lysis"):
            Samples     = wt.getLabware(Lab.EppRack6x16, "Proben")  # 6x16 = 12 x 8 ?
            Plate_lysis = wt.replaceWithNew(Plate_VEW1, "Lysis_Plate")  # Plate 12 x 8 ?

            # Define samples and the place for temporal reactions

            for s in all_samples:
                Rtv.Reagent("probe_{:02d}".format(s + 1), Samples, single_use=SampleVolume,
                            pos=s + 1, defLiqClass=SampleLiqClass, excess=0)
                Rtv.Reagent("lysis_{:02d}".format(s + 1), Plate_lysis, initial_vol=0.0, pos=s + 1,
                            excess=0)  # todo revise order !!!

            with tips(tipsMask=maxMask, reuse=True, drop=True):
                pK_cRNA_MS2.make(NumOfSamples)
                spread  (  reactive=pK_cRNA_MS2,   to_labware_region= Plate_lysis.selectOnly(all_samples))
                spread  (  reactive=LysisBuffer,   to_labware_region= Plate_lysis.selectOnly(all_samples))
            with tips(reuse=False, drop=True):
                transfer(  from_labware_region= Samples,
                           to_labware_region=   Plate_lysis,
                           volume=              SampleVolume,
                           using_liquid_class=  (SampleLiqClass, "Serum Disp postMix3"),
                           optimizeFrom         =False,     # optimizeTo= True,           # todo Really ??
                           NumSamples=          NumOfSamples)
            Itr.wash_tips(wasteVol=4, FastWash=True).exec()
            # with tips(reuse=False, drop=True):        # better reuse=True, drop=False, with normal Liquid Class ??
            #     spread  (  reactive=LysisBuffer,
            #                to_labware_region= Plate_lysis.selectOnly(all_samples),
            #                using_liquid_class=(None,"Serum Disp postMix3"))

            with incubation(minutes=15):
                Itr.userPrompt("Please Schutteln the plates for lysis in pos 1").exec()

        with group("Beads binding"):
            with tips(tipsMask=maxMask, reuse=True, drop=False):
                for p in [40, 50, 60, 65]:
                    mix_reactive(B_Beads, LiqClass=Beads_LC_1, cycles=1, maxTips=maxTips, v_perc=p)

            with tips(reuse=True, drop=True):
                spread( reactive=B_Beads,      to_labware_region=Plate_lysis.selectOnly(all_samples))
                spread( reactive=VEB,          to_labware_region=Plate_lysis.selectOnly(all_samples))

            # with tips(reuse=False, drop=True):   # better reuse=True, drop=False, with normal Liquid Class ??
            #     spread  (  reactive=VEB,
            #                to_labware_region= Plate_lysis.selectOnly(all_samples),
            #                using_liquid_class=(None,"Serum Disp postMix3"))
            with incubation(minutes=5):
                Itr.userPrompt("Please Schutteln the plates for lysis in pos 1").exec()

        self.done()
    def Run(self):
        self.set_EvoMode()   # this add: self.iRobot = EvoMode.iRobot(Itr.Pipette.LiHa1, nTips=self.nTips)
                             # in which: self.robot = Rbt.Robot(index=index, arms=arms, nTips=nTips)
        self.initialize()    # if needed calls Executable.initialize() and set_EvoMode
                             # which calls GUI.update_parameters() and set_defaults() from Evo200

        Rtv.NumOfSamples = self.NumOfSamples
        NumOfSamples = self.NumOfSamples
        wt           = self.worktable

        Itr.comment('Prefill {:d} plates with LysisBufferReact for {:d} samples.'\
                       .format(self.num_plates,
                               NumOfSamples     )).exec()

                                                            # Get Labwares (Cuvette, eppys, etc.) from the work table
        BufCuvette = wt.getLabware(Lab.Trough_100ml, "2-Vl Lysis Buffer")




        self.go_first_pos()                                                     #  Set the initial position of the tips

                                                                                  # Set volumen / sample
        BufferVolume   = 100.0       # VL1 or VL

        all_samples = range(NumOfSamples)
        maxTips     = min  (self.nTips, NumOfSamples)
        maxMask     = Rbt.tipsMask[maxTips]

                                                        # Define the reactives in each labware (Cuvette, eppys, etc.)

        BufferReact = Rtv.Reagent("Buffer ",
                                  BufCuvette,
                                  volpersample = BufferVolume,
                                  defLiqClass  = 'MN VL',
                                  num_of_samples= self.num_plates * NumOfSamples)

        # Show the CheckList GUI to the user for possible small changes

        self.CheckList()
        self.set_EvoMode()

        Itr.wash_tips(wasteVol=5, FastWash=True).exec()

        LysPlat = [wt.getLabware(Lab.MP96deepwell, "Plate lysis-"+str(i+1)) for i in range(self.num_plates)]

        par = LysPlat[0].parallelOrder(self.nTips, all_samples)

        # Define place for temporal reactions
        for i, LP in enumerate(LysPlat):
            for s in all_samples:
                Rtv.Reagent("lysis_{:d}-{:02d}".format(i + 1, s + 1),
                            LP,
                            initial_vol =0.0,
                            pos         =s + 1,
                            excess      =0)

        with group("Prefill plates with BufferReact"):

            Itr.userPrompt("Put the plates for BufferReact").exec()

            for LP in LysPlat:
                with self.tips(reuse=True, drop=False):
                    self.spread(reactive=BufferReact, to_labware_region=LP.selectOnly(all_samples))
                self.dropTips()

        self.done()
    def Run(self):
        self.set_EvoMode()
        self.initialize()                       # set_defaults ??
        Rtv.NumOfSamples = self.NumOfSamples
        NumOfSamples = self.NumOfSamples
        wt           = self.worktable

        Itr.comment('Extracting RNA from {:s} samples with the MN-Vet kit'.format(str(NumOfSamples))).exec()

                                                              # Get Labwares (Cuvette, eppys, etc.) from the work table

        LysBuf      = wt.getLabware(Lab.Trough_100ml,   "2-Vl Lysis Buffer"     )
        BindBuf     = wt.getLabware(Lab.Trough_100ml,   "3-VEB Binding Buffer"  )

        DiTi1000_1  = wt.getLabware(Lab.DiTi_1000ul,    "1000-1")
        DiTi1000_2  = wt.getLabware(Lab.DiTi_1000ul,    "1000-2")
        DiTi1000_3  = wt.getLabware(Lab.DiTi_1000ul,    "1000-3")

        Reactives   = wt.getLabware(Lab.GreinRack16_2mL, "Reactives" )

                                                              #  Set the initial position of the tips

        self.go_first_pos()

                                                              # Set volumen / sample

        ProtKVolume         =  20.0
        cRNAVolume          =   4.0
        LysisBufferVolume   = 100.0                 # VL1 or VL
        IC_MS2Volume        =  10.0                 # IC2
        IC2Volume           =   5.0                 # ? 4
        BindingBufferVolume = 350.0                 # VEB
        B_BeadsVolume       =  20.0                 # B-Beads
        EtOH80pVolume       = 600.0
        SampleVolume        = 100.0
        InitLysisVol        = 0.0

        if self.version == 'in-VL inactivated':
            InitLysisVol  = SampleVolume + LysisBufferVolume

        elif self.version == 'pre Inactivated':
            InitLysisVol  = SampleVolume + ProtKVolume + cRNAVolume + IC_MS2Volume + LysisBufferVolume

                                                        # Liquid classes used for pippetting.
                                                        # Others liquidClass names are defined in "protocol_steps.py"

        SampleLiqClass = "Serum Asp"  # = TissueHomLiqClass   # SerumLiqClass="Serum Asp preMix3"

        all_samples = range(NumOfSamples)
        maxTips     = min  (self.nTips, NumOfSamples)
        maxMask     = Rbt.tipsMask[maxTips]

                                                        # Define the reactives in each labware (Cuvette, eppys, etc.)

        if self.version != 'pre Inactivated':             # we need to add ProtK+cRNA+MS2 mix
            ProtK       = Rtv.Reagent("Proteinase K ",
                                      Reactives,
                                      replicas     = 2,
                                      pos          = [15, 16],
                                      volpersample = ProtKVolume,
                                      defLiqClass  = Small_vol_disp)

            cRNA        = Rtv.Reagent("Carrier RNA ", Reactives, pos=14, volpersample=  cRNAVolume, defLiqClass=Small_vol_disp)
            IC_MS2      = Rtv.Reagent("IC MS2 phage culture ", Reactives, pos=13, volpersample= IC_MS2Volume, defLiqClass=Small_vol_disp)

            # IC2         = Rtv.Reagent("IC2 - synthetic RNA " ,  Reactives, pos=13, volpersample=  IC2Volume ,defLiqClass=W_liquidClass)

            pK_cRNA_MS2 = Rtv.preMix  ("ProtK+cRNA+IC-MS2 mix "  ,
                                           Reactives,
                                           pos=8,
                                           components=[  cRNA, ProtK, IC_MS2] ,
                                           defLiqClass=W_liquidClass,
                                           excess=20)

            if self.version != 'in-VL inactivated':
                LysisBuffer     = Rtv.Reagent("VL - Lysis Buffer ", LysBuf, volpersample=LysisBufferVolume, defLiqClass='MN VL')



        B_Beads         = Rtv.Reagent("B - Beads ",
                                      Reactives,
                                      pos          = [1,2],
                                      initial_vol  = 1200,
                                      volpersample = B_BeadsVolume,
                                      defLiqClass  = Beads_LC_2,
                                      maxFull      = 70)

        VEB             = Rtv.Reagent("VEB - Binding Buffer ", BindBuf, volpersample=BindingBufferVolume, defLiqClass=B_liquidClass)

        EtOH80p         = Rtv.Reagent("Ethanol 80% ", wt.getLabware(Lab.Trough_100ml, "7-EtOH80p"), volpersample=EtOH80pVolume, defLiqClass=B_liquidClass)


                                                        # Show the CheckList GUI to the user for possible small changes

        self.CheckList()
        self.set_EvoMode()

                                                        # Define the reactives not shown in the CheckList GUI
                                                        # Define samples and the place for temporal reactions

        Plate_lysis = wt.getLabware(Lab.MP96deepwell,   "Plate lysis"   )  # Plate 12 x 8 ?
        Plate_EtOH  = wt.getLabware(Lab.MP96deepwell,   "Plate EtOH"    )  # Plate 12 x 8 ? MP96well !!

        if self.version != 'original samples':
           Samples  = wt.getLabware(Lab.EppRack6x16,    "Proben"        )  # 6x16 = 12 x 8 ?


        par = Plate_lysis.parallelOrder(self.nTips, all_samples)

        for s in all_samples:

            if self.version == 'original samples':
                Rtv.Reagent("probe_{:02d}".format(s + 1), Samples, single_use=SampleVolume,
                            pos=s + 1, defLiqClass=SampleLiqClass, excess=0)

            Rtv.Reagent("lysis_{:02d}".format(s + 1), Plate_lysis, initial_vol=InitLysisVol, pos=s + 1,
                        excess=0)

            Rtv.Reagent("EtOH80p_{:02d}".format(s + 1), Plate_EtOH, initial_vol=0.0, pos=par[s] + 1,
                        excess=0)  # todo revise order !!!


        Itr.wash_tips(wasteVol=30, FastWash=True).exec()

        with group("Prefill plate with EtOH80p"):
            with self.tips(reuse=True, drop=False, drop_last=True):
                self.spread(reactive=EtOH80p, to_labware_region=Plate_EtOH.selectOnly(all_samples))


        with group("Sample Lysis"):
            if self.version != 'pre Inactivated':                            #  add  ProtK+cRNA+MS2 mix

                with self.tips(tipsMask=maxMask, reuse=True, drop=False, drop_last=True):
                    self.makePreMix(pK_cRNA_MS2)
                    self.spread  (  reactive=pK_cRNA_MS2,   to_labware_region= Plate_lysis.selectOnly(all_samples))


                if self.version != 'in-VL inactivated':                      # add  LysisBuffer

                    with self.tips(tipsMask=maxMask, reuse=True, drop=False, drop_last=True):
                        self.spread  (  reactive=LysisBuffer,   to_labware_region= Plate_lysis.selectOnly(all_samples))


            if self.version == 'original samples':                       # add samples

                Itr.userPrompt("Please make sure the samples are in place").exec()
                with self.tips(reuse=False, drop=True):
                    self.transfer(  from_labware_region= Samples,
                               to_labware_region=   Plate_lysis,
                               volume=              SampleVolume,
                               using_liquid_class=  (SampleLiqClass, "Serum Disp postMix3"),
                               optimizeFrom         = False,
                               optimizeTo           = False,           # todo Really ??
                               NumSamples           = NumOfSamples)
                Itr.wash_tips(wasteVol=4, FastWash=True).exec()

            if self.version != 'pre Inactivated':
                Itr.userPrompt("Please Schutteln the plates for lysis in pos 1").exec()
                with incubation(minutes=5): pass

        if self.version != 'prefill inactivation':
            Itr.userPrompt("Please make sure the samples are back in place").exec()

        with group("Beads binding"):
            with self.tips(tipsMask=maxMask, reuse=True, drop=False):
                for p in [40, 50, 60, 65]:
                    self.mix_reactive(B_Beads, LiqClass=Beads_LC_1, cycles=1, maxTips=maxTips, v_perc=p)
            with self.tips(reuse=True, drop=False):
                self.spread( reactive=B_Beads,      to_labware_region=Plate_lysis.selectOnly(all_samples))
            self.dropTips()

            with self.tips(reuse=True, drop=False):
                self.spread( reactive=VEB,          to_labware_region=Plate_lysis.selectOnly(all_samples))

            Itr.userPrompt("Please Schutteln the plates for lysis in pos 1").exec()

        self.dropTips()
        self.done()
    def Run(self):
        self.set_EvoMode()
        self.initialize()                       # set_defaults ??
        Rtv.NumOfSamples = self.NumOfSamples
        NumOfSamples = self.NumOfSamples
        wt           = self.worktable

        Itr.comment('Prefill plates with VEW1, Elution buffer and VEW2 for {:s} samples.'.format(str(NumOfSamples))).exec()


        # Get Labwares (Cuvette, eppys, etc.) from the work table

        ElutBuf     = wt.getLabware(Lab.Trough_100ml,   "1-VEL-ElutionBuffer"   )

        DiTi1000_1  = wt.getLabware(Lab.DiTi_1000ul,    "1000-1")
        DiTi1000_2  = wt.getLabware(Lab.DiTi_1000ul,    "1000-2")
        DiTi1000_3  = wt.getLabware(Lab.DiTi_1000ul,    "1000-3")

        Plate_VEW1  = wt.getLabware(Lab.MP96deepwell,   "Plate VEW1"    )  # Plate 12 x 8 ?
        Plate_VEW2  = wt.getLabware(Lab.MP96deepwell,   "Plate VEW2"    )  # Plate 12 x 8 ?
        Plate_Eluat = wt.getLabware(Lab.MP96well,       "Plate ElutB"   )  # Plate 12 x 8 ? MP96well !!


        #  Set the initial position of the tips

        self.go_first_pos()

        # Set volumen / sample

        VEW1Volume          = 600.0
        VEW2Volume          = 600.0
        ElutionBufferVolume = 100.0


        # Liquid classes used for pippetting. Others liquidClass names are defined in "protocol_steps.py"

        # SampleLiqClass = "Serum Asp"  # = TissueHomLiqClass   # SerumLiqClass="Serum Asp preMix3"


        all_samples = range(NumOfSamples)
        maxTips     = min  (self.nTips, NumOfSamples)
        maxMask     = Rbt.tipsMask[maxTips]


        # Define the reactives in each labware (Cuvette, eppys, etc.)

        VEW1            = Rtv.Reagent("VEW1 - Wash Buffer ",
                                      wt.getLabware(Lab.Trough_100ml, "4-VEW1 Wash Buffe"),
                                      volpersample  = VEW1Volume,
                                      defLiqClass   = B_liquidClass)

        VEW2            = Rtv.Reagent("VEW2 - WashBuffer ",
                                      wt.getLabware(Lab.Trough_100ml,  "5-VEW2-WashBuffer" ),
                                      volpersample  =VEW2Volume,
                                      defLiqClass   =B_liquidClass)

        ElutionBuffer   = Rtv.Reagent("Elution Buffer ",
                                      ElutBuf,
                                      volpersample  =ElutionBufferVolume,
                                      defLiqClass   =B_liquidClass)

        # Show the CheckList GUI to the user for posible small changes

        self.CheckList()
        self.set_EvoMode()

        Itr.wash_tips(wasteVol=30, FastWash=True).exec()

        par = Plate_VEW1.parallelOrder(self.nTips, all_samples)

        # Define samples and the place for temporal reactions
        for s in all_samples:
            Rtv.Reagent("VEW1_{:02d}".format(s + 1),
                        Plate_VEW1,
                        initial_vol  = 0.0,
                        pos          = par[s]+1,
                        excess       = 0)  # todo revise order !!!

            Rtv.Reagent("VEW2_{:02d}".format(s + 1),
                        Plate_VEW2,
                        initial_vol = 0.0,
                        pos         = par[s] + 1,
                        excess      = 0)

            Rtv.Reagent("Eluat_{:02d}".format(s + 1),
                        Plate_Eluat,
                        initial_vol = 0.0,
                        pos         = par[s] + 1,
                        excess      = 0)


        with group("Prefill plates with VEW1, Elution buffer and VEW2"):

            Itr.userPrompt("Put the plates for VEW1, Elution buffer and VEW2 in that order").exec()

            with self.tips(reuse=True, drop=False):
                self.spread(reactive=ElutionBuffer, to_labware_region=Plate_Eluat.selectOnly(all_samples) )  # ,optimize=False

            with self.tips(reuse=True, drop=False):
                self.spread(reactive=VEW2, to_labware_region=Plate_VEW2.selectOnly(all_samples) )  # , optimize=False

            with self.tips(reuse=True, drop=False):
                self.spread(reactive=VEW1, to_labware_region=Plate_VEW1.selectOnly(all_samples))  # , optimize=False

        self.dropTips()

        self.done()
    def Run(self):
        self.set_EvoMode()
        self.initialize()
        Rtv.NumOfSamples = self.NumOfSamples
        NumOfSamples = self.NumOfSamples
        wt           = self.worktable

        Itr.comment('Prefill {:d} plates with LysisBufferReact for {:d} samples.'\
                       .format(self.num_plates,
                               NumOfSamples     )).exec()

        # Get Labwares (Cuvette, eppys, etc.) from the work table
        LysBufCuvette = wt.getLabware(Lab.Trough_100ml, "2-Vl Lysis Buffer")

        DiTi1000_1  = wt.getLabware(Lab.DiTi_1000ul,    "1000-1")
        DiTi1000_2  = wt.getLabware(Lab.DiTi_1000ul,    "1000-2")
        DiTi1000_3  = wt.getLabware(Lab.DiTi_1000ul,    "1000-3")


        self.go_first_pos()                      #  Set the initial position of the tips

        # Set volumen / sample
        LysisBufferVolume   = 100.0       # VL1 or VL

        all_samples = range(NumOfSamples)
        maxTips     = min  (self.nTips, NumOfSamples)
        maxMask     = Rbt.tipsMask[maxTips]

        # Define the reactives in each labware (Cuvette, eppys, etc.)

        LysisBufferReact = Rtv.Reagent("VL - Lysis Buffer ",
                                       LysBufCuvette,
                                       volpersample = LysisBufferVolume,
                                       defLiqClass  = 'MN VL',
                                       num_of_samples= self.num_plates * NumOfSamples)

        # Show the CheckList GUI to the user for possible small changes

        self.CheckList()
        self.set_EvoMode()

        Itr.wash_tips(wasteVol=5, FastWash=True).exec()

        LysPlat = [wt.getLabware(Lab.MP96deepwell, "Plate lysis-"+str(i+1)) for i in range(self.num_plates)]

        par = LysPlat[0].parallelOrder(self.nTips, all_samples)

        # Define place for temporal reactions
        for i, LP in enumerate(LysPlat):
            for s in all_samples:
                Rtv.Reagent("lysis_{:d}-{:02d}".format(i + 1, s + 1),
                            LP,
                            initial_vol =0.0,
                            pos         =s + 1,
                            excess      =0)

        with group("Prefill plates with LysisBufferReact"):

            Itr.userPrompt("Put the plates for LysisBufferReact").exec()

            for LP in LysPlat:
                with self.tips(reuse=True, drop=False):
                    self.spread(reactive=LysisBufferReact, to_labware_region=LP.selectOnly(all_samples))
                self.dropTips()

        self.done()