def measure_growth_wells(): # # Growth: absorbance and fluorescence over 24 hours # Absorbance at 600nm: cell growth # Fluorescence at 485nm/510nm: sfGFP # hr = 12 for t in range(0, hr * 2 + 1, hr): if t > 0: p.cover(growth_plate) p.incubate(growth_plate, "warm_37", "{}:hour".format(hr), shaking=True) p.uncover(growth_plate) p.fluorescence(growth_plate, growth_plate.wells(abs_wells).indices(), excitation="485:nanometer", emission="535:nanometer", dataref=expid("fl2_{}".format(t)), flashes=25) p.absorbance(growth_plate, growth_plate.wells(abs_wells).indices(), wavelength="600:nanometer", dataref=expid("abs_{}".format(t)), flashes=25)
def measure_flourescence_and_absorption(plate,wells): # Absorbance at 600nm: cell growth # Fluorescence at 485nm/510nm: sfGFP p.fluorescence(plate, wells, excitation="485:nanometer", emission="535:nanometer", dataref=expid("fl2"), flashes=25) p.absorbance(plate, wells, wavelength="600:nanometer", dataref=expid("abs"), flashes=25)
def measure_growth(p, amp_6_flat, noAB_6_flat): # # Incubate and photograph 6-flat plates over 18 hours # to see blue or white colonies # for flat_name, flat in [(expid("amp_6_flat"), amp_6_flat), (expid("noAB_6_flat"), noAB_6_flat)]: for timepoint in [9,18]: p.cover(flat) p.incubate(flat, "warm_37", "9:hour") p.uncover(flat) p.image_plate(flat, mode="top", dataref=expid("{}_t{}".format(flat_name, timepoint)))
def measure_growth(p, amp_6_flat, noAB_6_flat): # # Incubate and photograph 6-flat plates over 18 hours # to see blue or white colonies # for flat_name, flat in [(expid("amp_6_flat"), amp_6_flat), (expid("noAB_6_flat"), noAB_6_flat)]: for timepoint in [9, 18]: p.cover(flat) p.incubate(flat, "warm_37", "9:hour") p.uncover(flat) p.image_plate(flat, mode="top", dataref=expid("{}_t{}".format(flat_name, timepoint)))
def amplify_and_store_bacteria(source_bacteria_well): # Tubes and plates growth_plate = p.ref(expid("growth"), cont_type="96-deep", storage="cold_80", discard=False) growth_wells = growth_plate.wells(['A1', 'A2']) prepare_growth_wells(growth_wells) p.distribute(source_bacteria_well, growth_wells, ul(25), mix_before=True, mix_vol=ul(150), allow_carryover=True) for growth_well in growth_wells: p.mix(growth_well, volume=ul(450), repetitions=10) p.cover(growth_plate) #grow bacteria until they are in their log phase of growth #https://www.qiagen.com/us/resources/technologies/plasmid-resource-center/growth%20of%20bacterial%20cultures/ p.incubate(growth_plate, "warm_37", "{}:hour".format(15), shaking=True) p.uncover(growth_plate) #add glycerol p.provision(p.inv['glycerol'], growth_wells, ul(500)) for growth_well in growth_wells: p.mix(growth_well, volume=ul(900), repetitions=10)
def amplify_and_store_bacteria(source_bacteria_well): # Tubes and plates growth_plate = p.ref(expid("growth"), cont_type="96-deep", storage="cold_80", discard=False) growth_wells = growth_plate.wells(['A1','A2']) prepare_growth_wells(growth_wells) p.distribute(source_bacteria_well,growth_wells,ul(25),mix_before=True,mix_vol=ul(150), allow_carryover=True) for growth_well in growth_wells: p.mix(growth_well, volume=ul(450), repetitions=10) p.cover(growth_plate) #grow bacteria until they are in their log phase of growth #https://www.qiagen.com/us/resources/technologies/plasmid-resource-center/growth%20of%20bacterial%20cultures/ p.incubate(growth_plate, "warm_37", "{}:hour".format(15), shaking=True) p.uncover(growth_plate) #add glycerol p.provision(p.inv['glycerol'],growth_wells,ul(500)) for growth_well in growth_wells: p.mix(growth_well, volume=ul(900), repetitions=10)
def measure_growth_wells(): # # Growth: absorbance and fluorescence over 24 hours # Absorbance at 600nm: cell growth # Fluorescence at 485nm/510nm: sfGFP # hr = 12 for t in range(0,hr*2+1,hr): if t > 0: p.cover(growth_plate) p.incubate(growth_plate, "warm_37", "{}:hour".format(hr), shaking=True) p.uncover(growth_plate) p.fluorescence(growth_plate, growth_plate.wells(abs_wells).indices(), excitation="485:nanometer", emission="535:nanometer", dataref=expid("fl2_{}".format(t)), flashes=25) p.absorbance(growth_plate, growth_plate.wells(abs_wells).indices(), wavelength="600:nanometer", dataref=expid("abs_{}".format(t)), flashes=25)
ecori_hindiii_well = reagent_plate.wells(["A1"])[0] cutsmart_well = reagent_plate.wells(["B1"])[0] pUC19_well = reagent_plate.wells(["H12"])[0] # Initialize all existing inventory all_inventory_wells = [ecori_hindiii_well, cutsmart_well, pUC19_well] for well in all_inventory_wells: init_inventory_well(well) # Tubes and plates we use and then discard water_tube = p.ref("water_tube", cont_type="micro-1.5", discard=True).well(0) pcr_plate = p.ref("pcr_plate", cont_type="96-pcr", discard=True) # The result of the experiment, a pUC19 cut by EcoRI and HindIII, goes in this tube for storage puc19_cut_tube = p.ref(expid("puc19_cut", experiment_name), cont_type="micro-1.5", storage="cold_20").well(0) # ------------------------------------------------------------- # Provisioning and diluting. # Diluted EcoRI can be used more than once # p.provision(inv["water"], water_tube, ul(500)) # ------------------------------------------------------------- # Restriction enzyme cutting pUC19 # 3 experiments (1 without re) # 50ul total reaction volume for cutting 1ug of DNA: # 42uL water # 5ul CutSmart 10x
template_tube = p.ref("sfgfp_2nM", id=inv['sfgfp_2nM'], cont_type="micro-1.5", storage="cold_20").well(0) primer_wells = [p.ref('sfgfp_puc19_primer_forward_10uM', id=inv['sfgfp_puc19_primer_forward_10uM'], cont_type="micro-1.5", storage="cold_20").well(0), p.ref('sfgfp_puc19_primer_reverse_10uM', id=inv['sfgfp_puc19_primer_reverse_10uM'], cont_type="micro-1.5", storage="cold_20").well(0)] pcr_reagent_plate = p.ref("pcr_reagent_plate", id=inv['pcr_reagent_plate'], cont_type="96-pcr", storage="cold_20") q5_poly_well = pcr_reagent_plate.wells(["A1"])[0] q5_buffer_well = pcr_reagent_plate.wells(["A2"])[0] dNTP_well = pcr_reagent_plate.wells(["B1"])[0] # New inventory resulting from this experiment sfgfp_pcroe_out_tube = p.ref(expid("amplified",experiment_name), cont_type="micro-1.5", storage="cold_20").well(0) # Temporary tubes for use, then discarded (you can't set storage if you are going to discard) mastermix_well = p.ref("mastermix", cont_type="micro-1.5", discard=True).well(0) water_well = p.ref("water", cont_type="micro-1.5", discard=True).well(0) pcr_plate = p.ref("pcr_plate", cont_type="96-pcr", discard=True) # Initialize all existing inventory all_inventory_wells = [template_tube] + primer_wells for well in all_inventory_wells: init_inventory_well(well) # ----------------------------------------------------- # Provision water once, for general use # p.provision(inv["water"], water_well, ul(500))
"ct18y4w8dz47pa", # inventory; Ampicillin plates with transformed bacteria } inv.update(test_inv) # Tubes and plates lb_amp_tubes = [ p.ref("lb_amp_{}".format(i + 1), cont_type="micro-2.0", storage="ambient", discard=True).well(0) for i in range(4) ] lb_xab_tube = p.ref("lb_xab", cont_type="micro-2.0", storage="ambient", discard=True).well(0) growth_plate = p.ref(expid("growth"), cont_type="96-flat", storage="cold_4", discard=False) # ampicillin plate amp_6_flat = Container(None, p.container_type('6-flat')) p.refs[plate_expid("amp_6_flat")] = Ref(plate_expid("amp_6_flat"), { "id": inv[plate_expid("amp_6_flat")], "store": { "where": 'cold_4' } }, amp_6_flat) # Use a total of 50 wells abs_wells = [
id=inv['sfgfp_puc19_primer_reverse_10uM'], cont_type="micro-1.5", storage="cold_20").well(0) ] pcr_reagent_plate = p.ref("pcr_reagent_plate", id=inv['pcr_reagent_plate'], cont_type="96-pcr", storage="cold_20") q5_poly_well = pcr_reagent_plate.wells(["A1"])[0] q5_buffer_well = pcr_reagent_plate.wells(["A2"])[0] dNTP_well = pcr_reagent_plate.wells(["B1"])[0] # New inventory resulting from this experiment sfgfp_pcroe_out_tube = p.ref(expid("amplified", experiment_name), cont_type="micro-1.5", storage="cold_20").well(0) # Temporary tubes for use, then discarded (you can't set storage if you are going to discard) mastermix_well = p.ref("mastermix", cont_type="micro-1.5", discard=True).well(0) water_well = p.ref("water", cont_type="micro-1.5", discard=True).well(0) pcr_plate = p.ref("pcr_plate", cont_type="96-pcr", discard=True) # Initialize all existing inventory all_inventory_wells = [template_tube] + primer_wells for well in all_inventory_wells: init_inventory_well(well) # -----------------------------------------------------
# A2: Buffer, A3: Enhancer, B1: dNTP 10mM # C1: exosap 'dna_to_clean': 'ct18x9rfdw99w5', # inventory: sfgfp_pcr_v1_amplified } inv.update(test_inv) # Existing inventory dna_to_clean_well = p.ref("dna_to_clean", id=inv['dna_to_clean'], cont_type="micro-1.5", storage="cold_20").well(0) pcr_reagent_plate = p.ref("pcr_reagent_plate", id=inv['pcr_reagent_plate'], cont_type="96-pcr", storage="cold_20") exosap_it_well = pcr_reagent_plate.wells(["C1"])[0] # New inventory resulting from this experiment exosap_reaction_plate = p.ref(expid("cleaned",experiment_name), cont_type="96-pcr", storage="cold_20") if 'run_absorbance' in options: abs_plate = p.ref("abs_plate_%s_clean"%experiment_name, cont_type="96-flat", storage="cold_20", discard=False) # Initialize all existing inventory all_inventory_wells = [dna_to_clean_well] for well in all_inventory_wells: init_inventory_well(well) # ----------------------------------------------------- # ExoSAP-IT PCR product cleanyup # http://media.affymetrix.com/support/technical/usb/brief_proto/78200B.pdf # requires 2uL of exosap for every 5 ul of dna product
#diluted_product_well1 = p.ref("diluted_1_10th_pcr_product_well", cont_type="micro-1.5", storage="cold_20").well(0) diluted_product_well2 = p.ref("diluted_1_20th_pcr_product_well", cont_type="micro-1.5", storage="cold_20").well(0) #create a water tube with 36ul water and 4ul pcr product --> 40uL --> 1/10 dilution #p.provision(inv["water"], diluted_product_well1, ul(36)) #p.transfer(pcr_product_well, diluted_product_well1, ul(4),mix_before=True,mix_after=True,mix_vol=ul(20)) p.provision(inv["water"], diluted_product_well2, ul(38)) p.transfer(pcr_product_well, diluted_product_well2, ul(2), mix_before=True, mix_after=True, mix_vol=ul(20)) # Initialize all existing inventory all_inventory_wells = [pcr_product_well] for well in all_inventory_wells: init_inventory_well(well) # -------------------------------------------------------- # Run a gel # #p.gel_separate([diluted_product_well1,diluted_product_well2], p.gel_separate([diluted_product_well2], ul(20), "agarose(10,1.2%)", "ladder1", "10:minute", expid("gel", experiment_name)) print(json.dumps(p.as_dict(), indent=2))
cont_type="96-pcr", storage="cold_4") # # Catalog (all to be discarded afterward) # transform_plate = p.ref("trn_plate", cont_type="96-pcr", storage="ambient", discard=True) transform_tube = transform_plate.well(39) # experiment transform_tube_L = p.ref("trn_tubeL", cont_type="micro-1.5", storage="ambient", discard=True).well(0) transctrl_tube = transform_plate.well(56) # control transctrl_tube_L = p.ref("trc_tubeL", cont_type="micro-1.5", storage="ambient", discard=True).well(0) # # Plating according to Tali's protocol # http://learn.transcriptic.com/blog/2015/9/9/provisioning-commercial-reagents # amp_6_flat = Container(None, p.container_type('6-flat')) p.refs[expid("amp_6_flat")] = Ref(expid("amp_6_flat"), {"reserve": p.inv['lb-broth-100ug-ml-amp_6-flat'], "store": {"where": 'cold_4'}}, amp_6_flat) noAB_6_flat = Container(None, p.container_type('6-flat')) p.refs[expid("noAB_6_flat")] = Ref(expid("noAB_6_flat"), {"reserve": p.inv['noAB-amp_6-flat'], "store": {"where": 'cold_4'}}, noAB_6_flat) # # Initialize inventory # all_inventory_wells = [clone_plate.well(0)] for well in all_inventory_wells: init_inventory_well(well) # ---------------------------------------------------------------
experiment_name = "sfgfp_puc19_gibson_v1" utils.experiment_name = experiment_name p = Protocol() inv = get_inventory() puc19_cut_tube = p.ref("puc19_ecori_hindiii_puc19_cut", id=inv["puc19_ecori_hindiii_puc19_cut"], cont_type="micro-1.5", storage="cold_20").well(0) sfgfp_pcroe_amp_tube = p.ref("sfgfp_pcr_ecori_hindiii_amplified", id=inv["sfgfp_pcr_ecori_hindiii_amplified"], cont_type="micro-1.5", storage="cold_20").well(0) clone_plate = p.ref(expid("clone"), cont_type="96-pcr", storage="cold_20") # # Catalog (all to be discarded afterward) # water_tube = p.ref("water", cont_type="micro-1.5", discard=True).well(0) # # Initialize inventory # all_inventory_wells = [puc19_cut_tube, sfgfp_pcroe_amp_tube] for well in all_inventory_wells: init_inventory_well(well)
inv = { # plates from previous experiment, must be changed every new experiment plate_expid("amp_6_flat") : "ct18yn63tz9wv9", # inventory; Ampicillin plates with transformed bacteria } if "--test" in sys.argv: test_inv = { plate_expid("amp_6_flat") : "ct18y4w8dz47pa", # inventory; Ampicillin plates with transformed bacteria } inv.update(test_inv) # Tubes and plates lb_amp_tubes = [p.ref("lb_amp_{}".format(i+1), cont_type="micro-2.0", storage="ambient", discard=True).well(0) for i in range(4)] lb_xab_tube = p.ref("lb_xab", cont_type="micro-2.0", storage="ambient", discard=True).well(0) growth_plate = p.ref(expid("growth"), cont_type="96-flat", storage="cold_4", discard=False) # ampicillin plate amp_6_flat = Container(None, p.container_type('6-flat')) p.refs[plate_expid("amp_6_flat")] = Ref(plate_expid("amp_6_flat"), {"id":inv[plate_expid("amp_6_flat")], "store": {"where": 'cold_4'}}, amp_6_flat) # Use a total of 50 wells abs_wells = ["{}{}".format(row,col) for row in "BCDEF" for col in range(1,11)] abs_wells_T = ["{}{}".format(row,col) for col in range(1,11) for row in "BCDEF"] assert abs_wells[:3] == ["B1","B2","B3"] and abs_wells_T[:3] == ["B1","C1","D1"] def prepare_growth_wells(): #