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()