diff --git a/protocols/0f7910/0f7910.ot2.apiv2.py b/protocols/0f7910/0f7910.ot2.apiv2.py index 85d8d72dd..55692bcd3 100644 --- a/protocols/0f7910/0f7910.ot2.apiv2.py +++ b/protocols/0f7910/0f7910.ot2.apiv2.py @@ -1,5 +1,6 @@ from opentrons import protocol_api + metadata = { 'protocolName': 'Plate Filling with CSV Import', 'author': 'Rami Farawi ', @@ -13,14 +14,12 @@ def run(ctx): [csv_samp, source_format, dest_format, - transfer_vol, starting_tip, p300_mount, p20_mount] = get_values( # noqa: F821 "csv_samp", "source_format", "dest_format", - "transfer_vol", "starting_tip", "p300_mount", "p20_mount") @@ -52,6 +51,7 @@ def run(ctx): else "corning_384_wellplate_112ul_flat", 2 if dest_format == "384" else 1) + transfer_vol = float(csv_lines[0][5]) if transfer_vol > 20: tips300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot) @@ -78,23 +78,28 @@ def pick_up(pip): pick_up(pip) # protocol + pip = p20 if transfer_vol <= 20 else p300 pip.flow_rate.aspirate = 1 pip.flow_rate.dispense = 2 + if transfer_vol > 20: pip.starting_tip = tips300[0].wells()[starting_tip] else: pip.starting_tip = tips20[0].wells()[starting_tip] + for row in csv_lines: source_plate_slot = int(row[1]) source_well_name = row[2] dest_well_name = row[4] + pip_transfer_vol = float(row[5]) source = ctx.loaded_labwares[source_plate_slot].wells_by_name()[source_well_name] # noqa: E501 dest = dest_plate.wells_by_name()[dest_well_name] pick_up(pip) - pip.transfer(transfer_vol, source.bottom(z=0.2), dest, new_tip='never', + pip.transfer(pip_transfer_vol, source.bottom(z=0.2), dest, + new_tip='never', blow_out=True, blowout_location='destination well') pip.drop_tip() ctx.comment('\n\n') diff --git a/protocols/0f7910/README.md b/protocols/0f7910/README.md index f280cb3ca..1ca124699 100644 --- a/protocols/0f7910/README.md +++ b/protocols/0f7910/README.md @@ -16,7 +16,7 @@ Select the format for the source and destination plates. See diagram below. If a 384 plate is selected for destination plate, it should always be in slot 2. If a 96 plate is selected for destination, it should always be in slot 1. Source plates always start from slot 3 to 9, and tip racks are always the same. You can select which tip the protocol will start on in the fields below. If the global transfer volume is over 20ul, then the P300 will be used. If the transfer volume is 20 or less, the P20 will be used. A value of "8" for the starting position of the tip would mean to start H1 of the tip rack, and a value of 10 would mean to start at B2 of the tip rack, since it iterates down by column. The csv should be formatted as such in the header: ``` -Source plate barcode, Source plate slot (3-9), Source well (A1, B1, etc.), Destination plate barcode, Destination well +Source plate barcode, Source plate slot (3-9), Source well, Dest plate barcode, Dest well, Transfer Vol (ul) ``` diff --git a/protocols/0f7910/fields.json b/protocols/0f7910/fields.json index bd08f6fac..75a832eab 100644 --- a/protocols/0f7910/fields.json +++ b/protocols/0f7910/fields.json @@ -3,7 +3,7 @@ "type": "textFile", "label": ".CSV File", "name": "csv_samp", - "default": "Source plate Barcode,Source plate location,Source well,Destination plate Barcode,Destination well\nDDDD,3,C1,ABCD,A1\nEEEE,3,A1,BBBD,B1" + "default": "Source plate Barcode,Source plate location,Source well,Destination plate Barcode,Destination well\nDDDD,3,C1,ABCD,A1\nEEEE,3,A1,BBBD,B1, 12.4" }, { "type": "dropDown", @@ -23,12 +23,6 @@ {"label": "384", "value": "384"} ] }, - { - "type": "float", - "label": "Transfer Volume (ul)", - "name": "transfer_vol", - "default": 12.0 - }, { "type": "int", "label": "Starting Tip in Tip Rack (1-96, by column)",