diff --git a/Plasmids extraction/README b/Plasmids extraction/README new file mode 100644 index 0000000..fa21ddf --- /dev/null +++ b/Plasmids extraction/README @@ -0,0 +1,26 @@ +Manual protocol for Miniprep for plasmid extraction in 96 well plate format + +Reagents needed: +-LB + Antibiotics +-Buffer P1 (Quiagen) 50 mM Tris-HCl pH 8.0; 10 mM EDTA; 100 μg/ml RNaseA (33.6mL for one plate) +-Buffer P2 (Quiagen) 200 mM NaOH; 1% SDS (33.6mL for one plate) +-Buffer P3 (Quiagen) 3.0 M potassium acetate pH 5.5 (33.6mL for one plate) +-100% Isopropanol +-70% Ethanol +(Buffer composition of Quiagen https://openwetware.org/wiki/Qiagen_Buffers) + +Protocol: +1- Colonies are inoculated in 1000uL media LB + Antibiotics, incubation overnight 37°C in a sealed 96 well with shaking +2- Harvest the bacterial cells by centrifugation at 6000g for 15min at 4°C. Supernatant is discarded by inverted the plate upside down. +3- Resolubize the cell pellet by adding 350uL of buffer P1 and do up and down with the pipette. (If needed, vortex vigorously to help resuspend the bacteria) +4- Transfer with 350uL of buffer P2. Mix by inverted sealed plate 4-6 times. +5- Incubates plates at room temperature for 5min. +6- Transfer with 350uL of buffer P3. Mix by inverted sealed plate 4-6 times. +7- Pellet the debris by centrifuging the plate at 6000g for 45min at 4°C +8- Transfer 900uL of supernatant into the new plate. (be careful to avoid touching the precipitate. If it is the case, repeat step 7) +9- Precipitate DNA by adding 600uL of isopropanol in each well +10- Mix by vortexing and centrifuge plates at 6000g for 45min at 4°C. Discard supernatant +11- Wash DNA pellet with 1000uL of 70% ethanol, and centrifuge at 6000g for 15min +12- Repeat step 11 +13- Invert the plate on towel, then let the ethanol evaporate by air-drying the plate for 15-30min +14- Redissolve the DNA in 200uL sterile water \ No newline at end of file diff --git a/Plasmids extraction/miniprep_96_well b/Plasmids extraction/miniprep_96_well new file mode 100644 index 0000000..52f4661 --- /dev/null +++ b/Plasmids extraction/miniprep_96_well @@ -0,0 +1,199 @@ +#!/usr/bin/env python +# coding: utf-8 + +"""Opentrons python protocol adapted from """ + +from opentrons import protocol_api + +metadata = { + "protocolName": "Screening from inoculated culture", + "author": "YHK", + "description": "Miniprep from culture in 96 deep-well plate", + 'apiLevel': '2.11'} + +def run(protocol: protocol_api.ProtocolContext): + pellet = protocol.load_labware('nest_96_wellplate_2ml_deep', 2) + supernatant = protocol.load_labware('nest_96_wellplate_2ml_deep', 1 + ) + buffer_mini = protocol.load_labware('nest_12_reservoir_15ml', 4) + isopropanol = protocol.load_labware('brand_1_reservoir_8000ul', 7) + ethanol = protocol.load_labware('brand_1_reservoir_8000ul', 8) + + + tiprack = protocol.load_labware('opentrons_96_tiprack_300ul', 6) + tiprack2 = protocol.load_labware('opentrons_96_tiprack_300ul', 5) + tiprack3 = protocol.load_labware('opentrons_96_tiprack_300ul', 3) + + p300 = protocol.load_instrument('p300_multi_gen2', 'right', tip_racks=[tiprack, tiprack2, tiprack3]) + + # loop to transfert solution from buffer to pellet with mixing + + for i in range(3): + p300.pick_up_tip() + source = buffer_mini.wells()[0] + dest = pellet.columns()[i] + p300.transfer(350, source, dest.top(), new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 2.5) + p300.return_tip() + + for i in range(3,6): + p300.pick_up_tip() + source = buffer_mini.wells()[1] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 2.5) + p300.return_tip() + + for i in range(6,9): + p300.pick_up_tip() + source = buffer_mini.wells()[2] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 2.5) + p300.return_tip() + + for i in range(9,12): + p300.pick_up_tip() + source = buffer_mini.wells()[3] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 2.5) + p300.return_tip() + + + # loop for P2 + + for i in range(3): + p300.pick_up_tip() + source = buffer_mini.wells()[4] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 1.5) + p300.return_tip() + + for i in range(3,6): + p300.pick_up_tip() + source = buffer_mini.wells()[5] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 1.5) + p300.return_tip() + + for i in range(6,9): + p300.pick_up_tip() + source = buffer_mini.wells()[6] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 1.5) + p300.return_tip() + + for i in range(9,12): + p300.pick_up_tip() + source = buffer_mini.wells()[7] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2), rate= 1.5) + p300.return_tip() + + # Pause for 4min + protocol.delay(minutes=4) + + + # inactivation of the lysis by adding 350uL P3 + + for i in range(3): + p300.pick_up_tip() + source = buffer_mini.wells()[8] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2)) + p300.return_tip() + + for i in range(3,6): + p300.pick_up_tip() + source = buffer_mini.wells()[9] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2)) + p300.return_tip() + + for i in range(6,9): + p300.pick_up_tip() + source = buffer_mini.wells()[10] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2)) + p300.return_tip() + + for i in range(9,12): + p300.pick_up_tip() + source = buffer_mini.wells()[11] + dest = pellet.columns()[i] + p300.transfer(350, source, dest, new_tip = 'never') + p300.mix(5, 200, pellet.wells()[8*i].bottom(2)) + p300.return_tip() + + # transfert of 900ul of buffer to a new plate and put new tips box + + protocol.pause('change tips box') + p300.reset_tipracks() + + for i in range(12): + p300.pick_up_tip() + source = pellet.wells()[8*i] + dest = supernatant.columns()[i] + p300.transfer(850, source.bottom(2), dest, new_tip = 'never') + p300.return_tip() + + # transfert of 600ul of isopropanol to precipitate + + for i in range(12): + p300.pick_up_tip() + source = isopropanol.wells()[0] + dest = supernatant.columns()[i] + p300.transfer(600, source, dest, new_tip='never') + p300.return_tip() + + # pause + protocol.pause('vortex and centrifugation') + + # Wash DNA pellet with 1000uL of 70% ethanol + + for i in range(12): + p300.pick_up_tip() + source = ethanol.wells()[0] + dest = supernatant.columns()[i] + p300.transfer (1000, source, dest, new_tip= 'never') + p300.mix(5, 200, supernatant.wells()[8*i]) + p300.return_tip() + + # pause to centrifuge 6000g for 15min + + protocol.pause('centrifugation 6000g for 15min') + + # Wash DNA pellet with 1000uL of 70% ethanol, second + + protocol.pause('change tips box') + p300.reset_tipracks() + + for i in range(12): + p300.pick_up_tip() + source = ethanol.wells()[0] + dest = supernatant.columns()[i] + p300.transfer (1000, source, dest, new_tip= 'never') + p300.mix(5, 200, supernatant.wells()[8*i]) + p300.return_tip() + + # pause to centrifuge 6000g for 15min + + protocol.pause('centrifugation 6000g for 15min') + + # Redissolve the DNA in 200uL sterile water + + for i in range(12): + p300.pick_up_tip() + source = buffer_mini.wells()[9] + dest = supernatant.wells()[8*i] + p300.transfer (1000, source, dest, new_tip= 'never') + p300.mix(10, 100, supernatant.wells()[8*i], rate =2.0) + p300.return_tip() diff --git a/Plasmids extraction/principle_and_protocol b/Plasmids extraction/principle_and_protocol new file mode 100644 index 0000000..c53ffdc --- /dev/null +++ b/Plasmids extraction/principle_and_protocol @@ -0,0 +1,26 @@ +Manual protocol for Miniprep for plasmid extraction in 96 well plate format + +Reagents needed: +-LB + Antibiotics +-Buffer P1 (Quiagen) 50 mM Tris-HCl pH 8.0; 10 mM EDTA; 100 μg/ml RNaseA (33.6mL for one plate) +-Buffer P2 (Quiagen) 200 mM NaOH; 1% SDS (33.6mL for one plate) +-Buffer P3 (Quiagen) 3.0 M potassium acetate pH 5.5 (33.6mL for one plate) +-100% Isopropanol (57,3mL for one plate) +-70% Ethanol (192mL for one plate) +(Buffer composition of Quiagen https://openwetware.org/wiki/Qiagen_Buffers) + +Protocol: +1- Colonies are inoculated in 1000uL media LB + Antibiotics, incubation overnight 37°C in a sealed 96 well with shaking +2- Harvest the bacterial cells by centrifugation at 6000g for 15min at 4°C. Supernatant is discarded by inverted the plate upside down. +3- Resolubize the cell pellet by adding 350uL of buffer P1 and do up and down with the pipette. (If needed, vortex vigorously to help resuspend the bacteria) +4- Transfer with 350uL of buffer P2. Mix by inverted sealed plate 4-6 times. +5- Incubates plates at room temperature for 5min. +6- Transfer with 350uL of buffer P3. Mix by inverted sealed plate 4-6 times. +7- Pellet the debris by centrifuging the plate at 6000g for 45min at 4°C +8- Transfer 900uL of supernatant into the new plate. (be careful to avoid touching the precipitate. If it is the case, repeat step 7) +9- Precipitate DNA by adding 600uL of isopropanol in each well +10- Mix by vortexing and centrifuge plates at 6000g for 45min at 4°C. Discard supernatant +11- Wash DNA pellet with 1000uL of 70% ethanol, and centrifuge at 6000g for 15min +12- Repeat step 11 +13- Invert the plate on towel, then let the ethanol evaporate by air-drying the plate for 15-30min +14- Redissolve the DNA in 200uL sterile water \ No newline at end of file diff --git a/paper_blot/paperblot.py b/paper_blot/paperblot.py new file mode 100644 index 0000000..76e6ab0 --- /dev/null +++ b/paper_blot/paperblot.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# coding: utf-8 + +"""Opentrons python protocol adapted from """ + +from opentrons import protocol_api + +metadata = { + "protocolName": "Paper Blot", + "author": "YHK", + "description": "Drying liquid on whatman paper/Membrane", + 'apiLevel': '2.11'} + +def run(protocol: protocol_api.ProtocolContext): + samples = protocol.load_labware('nest_96_wellplate_2ml_deep', 2) + membrane = protocol.load_labware('nest_96_wellplate_2ml_deep', 1) + tiprack = protocol.load_labware('opentrons_96_tiprack_300ul', 6) + + + p300 = protocol.load_instrument('p300_multi_gen2', 'right', tip_racks=[tiprack]) + + # loop to transfert solution from buffer to pellet with mixing + + for i in range(12): + p300.pick_up_tip() + source = samples.columns()[i] + dest = membrane.wells()[8*i] + p300.transfer(2, source, dest.top(), new_tip = 'never') + p300.return_tip() + + \ No newline at end of file diff --git a/paper_blot/test_paper_blot.py b/paper_blot/test_paper_blot.py new file mode 100644 index 0000000..9bc31f4 --- /dev/null +++ b/paper_blot/test_paper_blot.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# coding: utf-8 + +"""Opentrons python protocol adapted from """ + +from opentrons import protocol_api + +metadata = { + "protocolName": "Paper Blot", + "author": "YHK", + "description": "Drying liquid on whatman paper/Membrane", + 'apiLevel': '2.11'} + +def run(protocol: protocol_api.ProtocolContext): + samples = protocol.load_labware('nest_12_reservoir_15ml', 2) + membrane = protocol.load_labware('127x85_agar_plate1', 1) + tiprack = protocol.load_labware('opentrons_96_tiprack_300ul', 6) + + + p20 = protocol.load_instrument('p20_multi_gen2', 'right', tip_racks=[tiprack]) + + # loop to transfert solution from buffer to pellet with mixing + + for i in range(12): + p20.pick_up_tip() + source = samples.wells()[1] + dest = membrane.wells()[8*i] + p20.aspirate(1.5, source) + p20.touch_tip() + p20.dispense(1.5, dest.top()) + p20.return_tip() \ No newline at end of file diff --git a/picking_robot/README b/picking_robot/README new file mode 100644 index 0000000..01b0d82 --- /dev/null +++ b/picking_robot/README @@ -0,0 +1 @@ +PLease readme \ No newline at end of file diff --git a/picking_robot/principle_and_protocol b/picking_robot/principle_and_protocol new file mode 100644 index 0000000..eea5440 --- /dev/null +++ b/picking_robot/principle_and_protocol @@ -0,0 +1,9 @@ +Screening on plate from liquid culture + +The principle of this protocol is to transfer liquid culture of transformants +on agar plate to screen different condition. In that protocol, 4 96_well plate +culture of unique transformant are transfer on 3 square agar plate. + +Important: the custom plate definition must be on '384Standard' format and +not on 'irregular' format. Otherwise, there would be error with accessing +the B row with a 8 channel pipette \ No newline at end of file diff --git a/picking_robot/screening_on_plate_from_liquid culture_multi b/picking_robot/screening_on_plate_from_liquid culture_multi new file mode 100644 index 0000000..f622919 --- /dev/null +++ b/picking_robot/screening_on_plate_from_liquid culture_multi @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +"""Opentrons python protocol adapted from """ + +from opentrons import protocol_api + +metadata = { + "protocolName": "Screening from inoculated culture", + "author": "YHK", + "description": "From culture in 96 deep-well plate, transfert into agar plate in 384 format", + 'apiLevel': '2.11'} + + +def run(protocol: protocol_api.ProtocolContext): + yeast_sample_well = protocol.load_labware('nest_96_wellplate_2ml_deep', 1) + yeast_sample_well_2 = protocol.load_labware('nest_96_wellplate_2ml_deep', 4) + yeast_sample_well_3 = protocol.load_labware('nest_96_wellplate_2ml_deep', 7) + yeast_sample_well_4 = protocol.load_labware('nest_96_wellplate_2ml_deep', 10) + + plate_384 = protocol.load_labware('grid_384well_epp', 3) + plate_384_1mg = protocol.load_labware('grid_384well_epp', 6) + plate_384_4mg = protocol.load_labware('grid_384well_epp', 9) + + # plate_384 = protocol.load_labware('appliedbiosystemsmicroamp_384_wellplate_40ul', 3) + # plate_384_1mg = protocol.load_labware('appliedbiosystemsmicroamp_384_wellplate_40ul', 6) + # plate_384_4mg = protocol.load_labware('appliedbiosystemsmicroamp_384_wellplate_40ul', 9) + + tiprack = protocol.load_labware('opentrons_96_tiprack_20ul', 2) + tiprack2 = protocol.load_labware('opentrons_96_tiprack_20ul', 5) + tiprack3 = protocol.load_labware('opentrons_96_tiprack_20ul', 8) + tiprack4 = protocol.load_labware('opentrons_96_tiprack_20ul', 11) + p20 = protocol.load_instrument('p20_multi_gen2', 'right', tip_racks=[tiprack, tiprack2, tiprack3,tiprack4]) + + '''Instruction for transfer of 2ul solution from 96well to agar plate. For second for loop, 1.25 correspond to 4.5mm''' + + def plating(s,d): + p20.aspirate(2, s) + p20.move_to(d.bottom()) + p20.dispense(2,d) + + + plates = [plate_384.wells(), plate_384_1mg.wells(), plate_384_4mg.wells()] + + for i in range(12): + p20.pick_up_tip() + for y in plates: + source = yeast_sample_well.wells()[8*i] + dest = y[16*i] + plating(source,dest) + p20.return_tip() + + for i in range(12): + p20.pick_up_tip() + for y in plates: + source = yeast_sample_well_2.wells()[8*i] + dest = y[16*i+192] + plating(source,dest) + p20.return_tip() + + for i in range(12): + p20.pick_up_tip() + for i in range(12): + source = yeast_sample_well_3.wells()[8*i] + dest = y[16*i+1] + plating(source,dest) + p20.return_tip() + + for i in range(12): + p20.pick_up_tip() + for i in range(12): + source = yeast_sample_well_4.wells()[8*i] + dest = y[16*i+193] + plating(source,dest) + p20.return_tip()