diff --git a/OT2-setup/data/labware.csv b/OT2-setup/data/labware.csv new file mode 100644 index 0000000..116752d --- /dev/null +++ b/OT2-setup/data/labware.csv @@ -0,0 +1,25 @@ +protocol,location,labware,well_name,reactant,volume +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,A1,pUC19,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,B1,pUC19,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,C1,pUC19,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,D1,pUC19,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,E1,pJKR,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,F1,pJKR,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,G1,pJKR,20 +transformation,1,armadillo_96_wellplate_200ul_pcr_full_skirt,H1,pJKR,20 +transformation,4,usascientific_96_wellplate_2.4ml_deep,A1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,B1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,C1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,D1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,E1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,F1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,G1,cells,300 +transformation,4,usascientific_96_wellplate_2.4ml_deep,H1,cells,300 +transformation,5,usascientific_96_wellplate_2.4ml_deep,A1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,B1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,C1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,D1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,E1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,F1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,G1,SOC,1500 +transformation,5,usascientific_96_wellplate_2.4ml_deep,H1,SOC,1500 diff --git a/OT2-setup/data/spotting-data.csv b/OT2-setup/data/spotting-data.csv new file mode 100644 index 0000000..88e38bd --- /dev/null +++ b/OT2-setup/data/spotting-data.csv @@ -0,0 +1,97 @@ +plate_location,source_well,destination_well,spotting_volume,agar_plate_weight +1,A1,A1,5,33 +1,B1,B1,5,33 +1,C1,C1,5,33 +1,D1,D1,5,33 +1,E1,E1,5,33 +1,F1,F1,5,33 +1,G1,G1,5,33 +1,H1,H1,5,33 +1,A2,A2,5,33 +1,B2,B2,5,33 +1,C2,C2,5,33 +1,D2,D2,5,33 +1,E2,E2,5,33 +1,F2,F2,5,33 +1,G2,G2,5,33 +1,H2,H2,5,33 +1,A3,A3,5,33 +1,B3,B3,5,33 +1,C3,C3,5,33 +1,D3,D3,5,33 +1,E3,E3,5,33 +1,F3,F3,5,33 +1,G3,G3,5,33 +1,H3,H3,5,33 +1,A4,A4,5,33 +1,B4,B4,5,33 +1,C4,C4,5,33 +1,D4,D4,5,33 +1,E4,E4,5,33 +1,F4,F4,5,33 +1,G4,G4,5,33 +1,H4,H4,5,33 +1,A5,A5,5,33 +1,B5,B5,5,33 +1,C5,C5,5,33 +1,D5,D5,5,33 +1,E5,E5,5,33 +1,F5,F5,5,33 +1,G5,G5,5,33 +1,H5,H5,5,33 +1,A6,A6,5,33 +1,B6,B6,5,33 +1,C6,C6,5,33 +1,D6,D6,5,33 +1,E6,E6,5,33 +1,F6,F6,5,33 +1,G6,G6,5,33 +1,H6,H6,5,33 +1,A7,A7,5,33 +1,B7,B7,5,33 +1,C7,C7,5,33 +1,D7,D7,5,33 +1,E7,E7,5,33 +1,F7,F7,5,33 +1,G7,G7,5,33 +1,H7,H7,5,33 +1,A8,A8,5,33 +1,B8,B8,5,33 +1,C8,C8,5,33 +1,D8,D8,5,33 +1,E8,E8,5,33 +1,F8,F8,5,33 +1,G8,G8,5,33 +1,H8,H8,5,33 +1,A9,A9,5,33 +1,B9,B9,5,33 +1,C9,C9,5,33 +1,D9,D9,5,33 +1,E9,E9,5,33 +1,F9,F9,5,33 +1,G9,G9,5,33 +1,H9,H9,5,33 +1,A10,A10,5,33 +1,B10,B10,5,33 +1,C10,C10,5,33 +1,D10,D10,5,33 +1,E10,E10,5,33 +1,F10,F10,5,33 +1,G10,G10,5,33 +1,H10,H10,5,33 +1,A11,A11,5,33 +1,B11,B11,5,33 +1,C11,C11,5,33 +1,D11,D11,5,33 +1,E11,E11,5,33 +1,F11,F11,5,33 +1,G11,G11,5,33 +1,H11,H11,5,33 +1,A12,A12,5,33 +1,B12,B12,5,33 +1,C12,C12,5,33 +1,D12,D12,5,33 +1,E12,E12,5,33 +1,F12,F12,5,33 +1,G12,G12,5,33 +1,H12,H12,5,33 \ No newline at end of file diff --git a/OT2-setup/data/spotting-parameters.json b/OT2-setup/data/spotting-parameters.json new file mode 100644 index 0000000..91e5081 --- /dev/null +++ b/OT2-setup/data/spotting-parameters.json @@ -0,0 +1,16 @@ +{ + "transformation_plate_name":"armadillo_96_wellplate_200ul_pcr_full_skirt", + "agar_plate_name":"armadillo_96_wellplate_200ul_pcr_full_skirt", + "pipette_tiprack_name":"opentrons_96_tiprack_20ul", + "pipette_tiprack_slots":[6,5], + "pipette_name":"p20_multi_gen2", + "pipette_mount":"left", + "aspirate_rate":30, + "dispense_rate":60, + "aspirate_height":0.1, + "dispense_height":0.1, + "dead_volume": 1, + "plate_weight":14.11, + "agar_density":0.00095, + "spotting_height":0.5 +} \ No newline at end of file diff --git a/OT2-setup/data/transformation-data.csv b/OT2-setup/data/transformation-data.csv new file mode 100644 index 0000000..c91d481 --- /dev/null +++ b/OT2-setup/data/transformation-data.csv @@ -0,0 +1,33 @@ +dna_well,dna_volume,cells_well,cells_volume,soc_well,soc_volume,transformation_well +A1,3,A2,30,A1,150,A1 +B1,3,B2,30,B1,150,B1 +C1,3,C2,30,C1,150,C1 +D1,3,D2,30,D1,150,D1 +E1,3,E2,30,E1,150,E1 +F1,3,F2,30,F1,150,F1 +G1,3,G2,30,G1,150,G1 +H1,3,H2,30,H1,150,H1 +A1,2,A2,20,A1,100,A2 +B1,2,B2,20,B1,100,B2 +C1,2,C2,20,C1,100,C2 +D1,2,D2,20,D1,100,D2 +E1,2,E2,20,E1,100,E2 +F1,2,F2,20,F1,100,F2 +G1,2,G2,20,G1,100,G2 +H1,2,H2,20,H1,100,H2 +A1,1,A2,10,A1,50,A3 +B1,1,B2,10,B1,50,B3 +C1,1,C2,10,C1,50,C3 +D1,1,D2,10,D1,50,D3 +E1,1,E2,10,E1,50,E3 +F1,1,F2,10,F1,50,F3 +G1,1,G2,10,G1,50,G3 +H1,1,H2,10,H1,50,H3 +A1,0,A2,30,A1,150,A4 +B1,0,B2,30,B1,150,B4 +C1,0,C2,30,C1,150,C4 +D1,0,D2,30,D1,150,D4 +E1,0,E2,30,E1,150,E4 +F1,0,F2,30,F1,150,F4 +G1,0,G2,30,G1,150,G4 +H1,0,H2,30,H1,150,H4 \ No newline at end of file diff --git a/OT2-setup/data/transformation-parameters.json b/OT2-setup/data/transformation-parameters.json new file mode 100644 index 0000000..e1d616e --- /dev/null +++ b/OT2-setup/data/transformation-parameters.json @@ -0,0 +1,25 @@ +{ + "init_temp":4, + "init_time":20, + "heat_temp":42, + "heat_time":30, + "cool_temp":4, + "cool_time":2, + "inc_temp":37, + "inc_time":60, + "dna_plate_name":"armadillo_96_wellplate_200ul_pcr_full_skirt", + "dna_plate_slot":1, + "cells_plate_name": "usascientific_96_wellplate_2.4ml_deep", + "cells_plate_slot":4, + "soc_plate_name": "usascientific_96_wellplate_2.4ml_deep", + "soc_plate_slot": 5, + "transformation_plate_name":"armadillo_96_wellplate_200ul_pcr_full_skirt", + "right_pipette_tiprack_name":"opentrons_96_tiprack_20ul", + "right_pipette_tiprack_slots":[2,3], + "right_pipette_name":"p20_multi_gen2", + "right_pipette_mount":"right", + "left_pipette_tiprack_name":"opentrons_96_tiprack_300ul", + "left_pipette_tiprack_slots":[6,9], + "left_pipette_name":"p300_multi_gen2", + "left_pipette_mount":"left" +} \ No newline at end of file diff --git a/OT2-setup/generate-protocol.sh b/OT2-setup/generate-protocol.sh new file mode 100755 index 0000000..e1b1157 --- /dev/null +++ b/OT2-setup/generate-protocol.sh @@ -0,0 +1,134 @@ +#!/bin/bash + +# Function to display usage information +usage() { + echo "Usage: $0 experiment=experiment1,experiment2,... [csv_file=csv1,csv2,...] [json_file=json1,json2,...]" + exit 1 +} + +# Check if the correct number of arguments is provided +if [ "$#" -lt 1 ]; then + usage +fi + +# Set default values +csv_files="" +json_files="" + +# Parse command-line arguments +for arg in "$@"; do + case $arg in + experiment=*) + experiment_types="${arg#*=}" + ;; + csv_file=*) + csv_files="${arg#*=}" + ;; + json_file=*) + json_files="${arg#*=}" + ;; + *) + echo "Error: Invalid argument: $arg" + usage + ;; + esac +done + +# Function to check if a file exists +check_file_exists() { + if [ ! -f "$1" ]; then + echo "Error: $1 file not found." + exit 1 + fi +} + +# Function to extract variable from JSON +extract_variable_from_json() { + local json_file="$1" + local variable_name="$2" + local variable_line=$(grep "$variable_name" "$json_file") + + # Extract the value part + local variable_value=$(echo "$variable_line" | cut -d '"' -f 4) + echo "$variable_value" +} + +# Function to process each experiment type +process_experiment_type() { + local experiment_type="$1" + local input_csv="$2" + local input_json="$3" + + local template_py="" + + case "$experiment_type" in + transformation) + template_py="./setup/protocol-templates/transformation-template.py" + ;; + spotting) + template_py="./setup/protocol-templates/spotting-template.py" + ;; + *) + echo "Error: Unsupported experiment type: $experiment_type" + exit 1 + ;; + esac + + # Check if the template Python file exists + check_file_exists "$template_py" + + # If CSV file not specified, use default in "data" folder + if [ -z "$input_csv" ]; then + input_csv="data/${experiment_type}-data.csv" + fi + # If JSON file not specified, use default in "data" folder + if [ -z "$input_json" ]; then + input_json="data/${experiment_type}-parameters.json" + fi + + # Check if the input CSV file exists + check_file_exists "$input_csv" + # Check if the input JSON file exists + check_file_exists "$input_json" + + # Read contents of input CSV into a variable + csv_content=$(<"$input_csv") + + # Define the content for protocol.py + new_content="csv_file = \"\"\"\n$csv_content\n\"\"\"\n\n" + # Read contents of input JSON into a variable and remove newlines + json_content="parameters_json = \"\"\"$(<"$input_json" tr -d '\n' | tr -d '[:space:]'| tr -d '[:space:]')\"\"\"\n" + + # Extract the name from the template file + template_name=$(basename "$template_py" | sed 's/.*\([a-zA-Z]\)-template\.py/\1/') + # Generate the output file name in the "protocols" folder + output_folder="results" + output_file="${output_folder}/${experiment_type}-protocol.py" + + # Create the protocols folder if it doesn't exist + mkdir -p "$output_folder" + + # If the file exists, append the new content at the top + old_content=$(<"$template_py") + echo -e "$new_content$json_content$old_content" > "$output_file" + echo "Protocol for $experiment_type has been generated. Output file: $output_file" + + # Get the transformation_plate_name and dna_plate_name from the parameters JSON + transformation_plate_name=$(extract_variable_from_json "$input_json" "transformation_plate_name") + dna_plate_name=$(extract_variable_from_json "$input_json" "dna_plate_name") + + # Call the R scripts + Rscript ./setup/create-labware/visualise-labware.R ./data/labware.csv "${output_folder}" + Rscript ./setup/create-labware/visualise-labware-2.R ./data/transformation-data.csv "${output_folder}" + Rscript ./setup/instruction-templates/transformation-instruction.R "./data/transformation-parameters.json" "${output_folder}/Instructions.pdf" +} + +# Split comma-separated values into arrays +IFS=',' read -ra experiment_type_array <<< "$experiment_types" +IFS=',' read -ra csv_file_array <<< "$csv_files" +IFS=',' read -ra json_file_array <<< "$json_files" + +# Process each experiment type +for ((i=0; i<"${#experiment_type_array[@]}"; i++)); do + process_experiment_type "${experiment_type_array[i]}" "${csv_file_array[i]}" "${json_file_array[i]}" +done \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/armadillo_96_wellplate_200ul_pcr_full_skirt.json b/OT2-setup/setup/create-labware/labware/armadillo_96_wellplate_200ul_pcr_full_skirt.json new file mode 100644 index 0000000..d5c2bb7 --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/armadillo_96_wellplate_200ul_pcr_full_skirt.json @@ -0,0 +1,1045 @@ +{ + "namespace": "opentrons", + "version": 2, + "schemaVersion": 2, + "parameters": { + "loadName": "armadillo_96_wellplate_200ul_pcr_full_skirt", + "format": "96Standard", + "isTiprack": false, + "isMagneticModuleCompatible": true + }, + "metadata": { + "displayName": "Armadillo 96 Well Plate 200 µL PCR Full Skirt", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "brand": { + "brand": "Thermo Scientific", + "brandId": ["AB2396"], + "links": [ + "https://www.fishersci.com/shop/products/armadillo-96-well-pcr-plate-1/AB2396" + ] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.48, + "zDimension": 16.0 + }, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "stackingOffsetWithLabware": { + "opentrons_96_pcr_adapter": { + "x": 0, + "y": 0, + "z": 10.95 + }, + "opentrons_96_well_aluminum_block": { + "x": 0, + "y": 0, + "z": 11.91 + } + }, + "stackingOffsetWithModule": { + "magneticBlockV1": { + "x": 0, + "y": 0, + "z": 3.54 + }, + "thermocyclerModuleV2": { + "x": 0, + "y": 0, + "z": 10.7 + } + }, + "gripForce": 15, + "gripHeightFromLabwareBottom": 10, + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "wells": { + "A1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 74.24, + "z": 1.05 + }, + "B1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 65.24, + "z": 1.05 + }, + "C1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 56.24, + "z": 1.05 + }, + "D1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 47.24, + "z": 1.05 + }, + "E1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 38.24, + "z": 1.05 + }, + "F1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 29.24, + "z": 1.05 + }, + "G1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 20.24, + "z": 1.05 + }, + "H1": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 14.38, + "y": 11.24, + "z": 1.05 + }, + "A2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 74.24, + "z": 1.05 + }, + "B2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 65.24, + "z": 1.05 + }, + "C2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 56.24, + "z": 1.05 + }, + "D2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 47.24, + "z": 1.05 + }, + "E2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 38.24, + "z": 1.05 + }, + "F2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 29.24, + "z": 1.05 + }, + "G2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 20.24, + "z": 1.05 + }, + "H2": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 23.38, + "y": 11.24, + "z": 1.05 + }, + "A3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 74.24, + "z": 1.05 + }, + "B3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 65.24, + "z": 1.05 + }, + "C3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 56.24, + "z": 1.05 + }, + "D3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 47.24, + "z": 1.05 + }, + "E3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 38.24, + "z": 1.05 + }, + "F3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 29.24, + "z": 1.05 + }, + "G3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 20.24, + "z": 1.05 + }, + "H3": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 32.38, + "y": 11.24, + "z": 1.05 + }, + "A4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 74.24, + "z": 1.05 + }, + "B4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 65.24, + "z": 1.05 + }, + "C4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 56.24, + "z": 1.05 + }, + "D4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 47.24, + "z": 1.05 + }, + "E4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 38.24, + "z": 1.05 + }, + "F4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 29.24, + "z": 1.05 + }, + "G4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 20.24, + "z": 1.05 + }, + "H4": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 41.38, + "y": 11.24, + "z": 1.05 + }, + "A5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 74.24, + "z": 1.05 + }, + "B5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 65.24, + "z": 1.05 + }, + "C5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 56.24, + "z": 1.05 + }, + "D5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 47.24, + "z": 1.05 + }, + "E5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 38.24, + "z": 1.05 + }, + "F5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 29.24, + "z": 1.05 + }, + "G5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 20.24, + "z": 1.05 + }, + "H5": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 50.38, + "y": 11.24, + "z": 1.05 + }, + "A6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 74.24, + "z": 1.05 + }, + "B6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 65.24, + "z": 1.05 + }, + "C6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 56.24, + "z": 1.05 + }, + "D6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 47.24, + "z": 1.05 + }, + "E6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 38.24, + "z": 1.05 + }, + "F6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 29.24, + "z": 1.05 + }, + "G6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 20.24, + "z": 1.05 + }, + "H6": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 59.38, + "y": 11.24, + "z": 1.05 + }, + "A7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 74.24, + "z": 1.05 + }, + "B7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 65.24, + "z": 1.05 + }, + "C7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 56.24, + "z": 1.05 + }, + "D7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 47.24, + "z": 1.05 + }, + "E7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 38.24, + "z": 1.05 + }, + "F7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 29.24, + "z": 1.05 + }, + "G7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 20.24, + "z": 1.05 + }, + "H7": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 68.38, + "y": 11.24, + "z": 1.05 + }, + "A8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 74.24, + "z": 1.05 + }, + "B8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 65.24, + "z": 1.05 + }, + "C8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 56.24, + "z": 1.05 + }, + "D8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 47.24, + "z": 1.05 + }, + "E8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 38.24, + "z": 1.05 + }, + "F8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 29.24, + "z": 1.05 + }, + "G8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 20.24, + "z": 1.05 + }, + "H8": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 77.38, + "y": 11.24, + "z": 1.05 + }, + "A9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 74.24, + "z": 1.05 + }, + "B9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 65.24, + "z": 1.05 + }, + "C9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 56.24, + "z": 1.05 + }, + "D9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 47.24, + "z": 1.05 + }, + "E9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 38.24, + "z": 1.05 + }, + "F9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 29.24, + "z": 1.05 + }, + "G9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 20.24, + "z": 1.05 + }, + "H9": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 86.38, + "y": 11.24, + "z": 1.05 + }, + "A10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 74.24, + "z": 1.05 + }, + "B10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 65.24, + "z": 1.05 + }, + "C10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 56.24, + "z": 1.05 + }, + "D10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 47.24, + "z": 1.05 + }, + "E10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 38.24, + "z": 1.05 + }, + "F10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 29.24, + "z": 1.05 + }, + "G10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 20.24, + "z": 1.05 + }, + "H10": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 95.38, + "y": 11.24, + "z": 1.05 + }, + "A11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 74.24, + "z": 1.05 + }, + "B11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 65.24, + "z": 1.05 + }, + "C11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 56.24, + "z": 1.05 + }, + "D11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 47.24, + "z": 1.05 + }, + "E11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 38.24, + "z": 1.05 + }, + "F11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 29.24, + "z": 1.05 + }, + "G11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 20.24, + "z": 1.05 + }, + "H11": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 104.38, + "y": 11.24, + "z": 1.05 + }, + "A12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 74.24, + "z": 1.05 + }, + "B12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 65.24, + "z": 1.05 + }, + "C12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 56.24, + "z": 1.05 + }, + "D12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 47.24, + "z": 1.05 + }, + "E12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 38.24, + "z": 1.05 + }, + "F12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 29.24, + "z": 1.05 + }, + "G12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 20.24, + "z": 1.05 + }, + "H12": { + "depth": 14.95, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.5, + "x": 113.38, + "y": 11.24, + "z": 1.05 + } + }, + "groups": [ + { + "metadata": { + "wellBottomShape": "v" + }, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ] + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/biorad_384_wellplate_50ul.json b/OT2-setup/setup/create-labware/labware/biorad_384_wellplate_50ul.json new file mode 100644 index 0000000..7da753f --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/biorad_384_wellplate_50ul.json @@ -0,0 +1,4331 @@ +{ + "ordering": [ + [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "I1", + "J1", + "K1", + "L1", + "M1", + "N1", + "O1", + "P1" + ], + [ + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "I2", + "J2", + "K2", + "L2", + "M2", + "N2", + "O2", + "P2" + ], + [ + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "I3", + "J3", + "K3", + "L3", + "M3", + "N3", + "O3", + "P3" + ], + [ + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "I4", + "J4", + "K4", + "L4", + "M4", + "N4", + "O4", + "P4" + ], + [ + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "I5", + "J5", + "K5", + "L5", + "M5", + "N5", + "O5", + "P5" + ], + [ + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "I6", + "J6", + "K6", + "L6", + "M6", + "N6", + "O6", + "P6" + ], + [ + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "I7", + "J7", + "K7", + "L7", + "M7", + "N7", + "O7", + "P7" + ], + [ + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "I8", + "J8", + "K8", + "L8", + "M8", + "N8", + "O8", + "P8" + ], + [ + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "I9", + "J9", + "K9", + "L9", + "M9", + "N9", + "O9", + "P9" + ], + [ + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "I10", + "J10", + "K10", + "L10", + "M10", + "N10", + "O10", + "P10" + ], + [ + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "I11", + "J11", + "K11", + "L11", + "M11", + "N11", + "O11", + "P11" + ], + [ + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12", + "I12", + "J12", + "K12", + "L12", + "M12", + "N12", + "O12", + "P12" + ], + [ + "A13", + "B13", + "C13", + "D13", + "E13", + "F13", + "G13", + "H13", + "I13", + "J13", + "K13", + "L13", + "M13", + "N13", + "O13", + "P13" + ], + [ + "A14", + "B14", + "C14", + "D14", + "E14", + "F14", + "G14", + "H14", + "I14", + "J14", + "K14", + "L14", + "M14", + "N14", + "O14", + "P14" + ], + [ + "A15", + "B15", + "C15", + "D15", + "E15", + "F15", + "G15", + "H15", + "I15", + "J15", + "K15", + "L15", + "M15", + "N15", + "O15", + "P15" + ], + [ + "A16", + "B16", + "C16", + "D16", + "E16", + "F16", + "G16", + "H16", + "I16", + "J16", + "K16", + "L16", + "M16", + "N16", + "O16", + "P16" + ], + [ + "A17", + "B17", + "C17", + "D17", + "E17", + "F17", + "G17", + "H17", + "I17", + "J17", + "K17", + "L17", + "M17", + "N17", + "O17", + "P17" + ], + [ + "A18", + "B18", + "C18", + "D18", + "E18", + "F18", + "G18", + "H18", + "I18", + "J18", + "K18", + "L18", + "M18", + "N18", + "O18", + "P18" + ], + [ + "A19", + "B19", + "C19", + "D19", + "E19", + "F19", + "G19", + "H19", + "I19", + "J19", + "K19", + "L19", + "M19", + "N19", + "O19", + "P19" + ], + [ + "A20", + "B20", + "C20", + "D20", + "E20", + "F20", + "G20", + "H20", + "I20", + "J20", + "K20", + "L20", + "M20", + "N20", + "O20", + "P20" + ], + [ + "A21", + "B21", + "C21", + "D21", + "E21", + "F21", + "G21", + "H21", + "I21", + "J21", + "K21", + "L21", + "M21", + "N21", + "O21", + "P21" + ], + [ + "A22", + "B22", + "C22", + "D22", + "E22", + "F22", + "G22", + "H22", + "I22", + "J22", + "K22", + "L22", + "M22", + "N22", + "O22", + "P22" + ], + [ + "A23", + "B23", + "C23", + "D23", + "E23", + "F23", + "G23", + "H23", + "I23", + "J23", + "K23", + "L23", + "M23", + "N23", + "O23", + "P23" + ], + [ + "A24", + "B24", + "C24", + "D24", + "E24", + "F24", + "G24", + "H24", + "I24", + "J24", + "K24", + "L24", + "M24", + "N24", + "O24", + "P24" + ] + ], + "brand": { + "brand": "Bio-Rad", + "brandId": [ + "HSP3xxx", + "HSP3801", + "HSP3805", + "HSP3901", + "HSP3905", + "HSR4xxx", + "HSR4801", + "HSR4805" + ], + "links": [ + "https://www.bio-rad.com/en-us/sku/HSP3805-hard-shell-384-well-pcr-plates-thin-wall-skirted-clear-white?ID=HSP3805" + ] + }, + "metadata": { + "displayName": "Bio-Rad 384 Well Plate 50 µL", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.48, + "zDimension": 10.4 + }, + "gripForce": 15, + "gripHeightFromLabwareBottom": 9.3, + "wells": { + "A1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 76.49, + "z": 1.05 + }, + "B1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 71.99, + "z": 1.05 + }, + "C1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 67.49, + "z": 1.05 + }, + "D1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 62.99, + "z": 1.05 + }, + "E1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 58.49, + "z": 1.05 + }, + "F1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 53.99, + "z": 1.05 + }, + "G1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 49.49, + "z": 1.05 + }, + "H1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 44.99, + "z": 1.05 + }, + "I1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 40.49, + "z": 1.05 + }, + "J1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 35.99, + "z": 1.05 + }, + "K1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 31.49, + "z": 1.05 + }, + "L1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 26.99, + "z": 1.05 + }, + "M1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 22.49, + "z": 1.05 + }, + "N1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 17.99, + "z": 1.05 + }, + "O1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 13.49, + "z": 1.05 + }, + "P1": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 12.13, + "y": 8.99, + "z": 1.05 + }, + "A2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 76.49, + "z": 1.05 + }, + "B2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 71.99, + "z": 1.05 + }, + "C2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 67.49, + "z": 1.05 + }, + "D2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 62.99, + "z": 1.05 + }, + "E2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 58.49, + "z": 1.05 + }, + "F2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 53.99, + "z": 1.05 + }, + "G2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 49.49, + "z": 1.05 + }, + "H2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 44.99, + "z": 1.05 + }, + "I2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 40.49, + "z": 1.05 + }, + "J2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 35.99, + "z": 1.05 + }, + "K2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 31.49, + "z": 1.05 + }, + "L2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 26.99, + "z": 1.05 + }, + "M2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 22.49, + "z": 1.05 + }, + "N2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 17.99, + "z": 1.05 + }, + "O2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 13.49, + "z": 1.05 + }, + "P2": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 16.63, + "y": 8.99, + "z": 1.05 + }, + "A3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 76.49, + "z": 1.05 + }, + "B3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 71.99, + "z": 1.05 + }, + "C3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 67.49, + "z": 1.05 + }, + "D3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 62.99, + "z": 1.05 + }, + "E3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 58.49, + "z": 1.05 + }, + "F3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 53.99, + "z": 1.05 + }, + "G3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 49.49, + "z": 1.05 + }, + "H3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 44.99, + "z": 1.05 + }, + "I3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 40.49, + "z": 1.05 + }, + "J3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 35.99, + "z": 1.05 + }, + "K3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 31.49, + "z": 1.05 + }, + "L3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 26.99, + "z": 1.05 + }, + "M3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 22.49, + "z": 1.05 + }, + "N3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 17.99, + "z": 1.05 + }, + "O3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 13.49, + "z": 1.05 + }, + "P3": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 21.13, + "y": 8.99, + "z": 1.05 + }, + "A4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 76.49, + "z": 1.05 + }, + "B4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 71.99, + "z": 1.05 + }, + "C4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 67.49, + "z": 1.05 + }, + "D4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 62.99, + "z": 1.05 + }, + "E4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 58.49, + "z": 1.05 + }, + "F4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 53.99, + "z": 1.05 + }, + "G4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 49.49, + "z": 1.05 + }, + "H4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 44.99, + "z": 1.05 + }, + "I4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 40.49, + "z": 1.05 + }, + "J4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 35.99, + "z": 1.05 + }, + "K4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 31.49, + "z": 1.05 + }, + "L4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 26.99, + "z": 1.05 + }, + "M4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 22.49, + "z": 1.05 + }, + "N4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 17.99, + "z": 1.05 + }, + "O4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 13.49, + "z": 1.05 + }, + "P4": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 25.63, + "y": 8.99, + "z": 1.05 + }, + "A5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 76.49, + "z": 1.05 + }, + "B5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 71.99, + "z": 1.05 + }, + "C5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 67.49, + "z": 1.05 + }, + "D5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 62.99, + "z": 1.05 + }, + "E5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 58.49, + "z": 1.05 + }, + "F5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 53.99, + "z": 1.05 + }, + "G5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 49.49, + "z": 1.05 + }, + "H5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 44.99, + "z": 1.05 + }, + "I5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 40.49, + "z": 1.05 + }, + "J5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 35.99, + "z": 1.05 + }, + "K5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 31.49, + "z": 1.05 + }, + "L5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 26.99, + "z": 1.05 + }, + "M5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 22.49, + "z": 1.05 + }, + "N5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 17.99, + "z": 1.05 + }, + "O5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 13.49, + "z": 1.05 + }, + "P5": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 30.13, + "y": 8.99, + "z": 1.05 + }, + "A6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 76.49, + "z": 1.05 + }, + "B6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 71.99, + "z": 1.05 + }, + "C6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 67.49, + "z": 1.05 + }, + "D6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 62.99, + "z": 1.05 + }, + "E6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 58.49, + "z": 1.05 + }, + "F6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 53.99, + "z": 1.05 + }, + "G6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 49.49, + "z": 1.05 + }, + "H6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 44.99, + "z": 1.05 + }, + "I6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 40.49, + "z": 1.05 + }, + "J6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 35.99, + "z": 1.05 + }, + "K6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 31.49, + "z": 1.05 + }, + "L6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 26.99, + "z": 1.05 + }, + "M6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 22.49, + "z": 1.05 + }, + "N6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 17.99, + "z": 1.05 + }, + "O6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 13.49, + "z": 1.05 + }, + "P6": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 34.63, + "y": 8.99, + "z": 1.05 + }, + "A7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 76.49, + "z": 1.05 + }, + "B7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 71.99, + "z": 1.05 + }, + "C7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 67.49, + "z": 1.05 + }, + "D7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 62.99, + "z": 1.05 + }, + "E7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 58.49, + "z": 1.05 + }, + "F7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 53.99, + "z": 1.05 + }, + "G7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 49.49, + "z": 1.05 + }, + "H7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 44.99, + "z": 1.05 + }, + "I7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 40.49, + "z": 1.05 + }, + "J7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 35.99, + "z": 1.05 + }, + "K7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 31.49, + "z": 1.05 + }, + "L7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 26.99, + "z": 1.05 + }, + "M7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 22.49, + "z": 1.05 + }, + "N7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 17.99, + "z": 1.05 + }, + "O7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 13.49, + "z": 1.05 + }, + "P7": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 39.13, + "y": 8.99, + "z": 1.05 + }, + "A8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 76.49, + "z": 1.05 + }, + "B8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 71.99, + "z": 1.05 + }, + "C8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 67.49, + "z": 1.05 + }, + "D8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 62.99, + "z": 1.05 + }, + "E8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 58.49, + "z": 1.05 + }, + "F8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 53.99, + "z": 1.05 + }, + "G8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 49.49, + "z": 1.05 + }, + "H8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 44.99, + "z": 1.05 + }, + "I8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 40.49, + "z": 1.05 + }, + "J8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 35.99, + "z": 1.05 + }, + "K8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 31.49, + "z": 1.05 + }, + "L8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 26.99, + "z": 1.05 + }, + "M8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 22.49, + "z": 1.05 + }, + "N8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 17.99, + "z": 1.05 + }, + "O8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 13.49, + "z": 1.05 + }, + "P8": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 43.63, + "y": 8.99, + "z": 1.05 + }, + "A9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 76.49, + "z": 1.05 + }, + "B9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 71.99, + "z": 1.05 + }, + "C9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 67.49, + "z": 1.05 + }, + "D9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 62.99, + "z": 1.05 + }, + "E9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 58.49, + "z": 1.05 + }, + "F9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 53.99, + "z": 1.05 + }, + "G9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 49.49, + "z": 1.05 + }, + "H9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 44.99, + "z": 1.05 + }, + "I9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 40.49, + "z": 1.05 + }, + "J9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 35.99, + "z": 1.05 + }, + "K9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 31.49, + "z": 1.05 + }, + "L9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 26.99, + "z": 1.05 + }, + "M9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 22.49, + "z": 1.05 + }, + "N9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 17.99, + "z": 1.05 + }, + "O9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 13.49, + "z": 1.05 + }, + "P9": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 48.13, + "y": 8.99, + "z": 1.05 + }, + "A10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 76.49, + "z": 1.05 + }, + "B10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 71.99, + "z": 1.05 + }, + "C10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 67.49, + "z": 1.05 + }, + "D10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 62.99, + "z": 1.05 + }, + "E10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 58.49, + "z": 1.05 + }, + "F10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 53.99, + "z": 1.05 + }, + "G10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 49.49, + "z": 1.05 + }, + "H10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 44.99, + "z": 1.05 + }, + "I10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 40.49, + "z": 1.05 + }, + "J10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 35.99, + "z": 1.05 + }, + "K10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 31.49, + "z": 1.05 + }, + "L10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 26.99, + "z": 1.05 + }, + "M10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 22.49, + "z": 1.05 + }, + "N10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 17.99, + "z": 1.05 + }, + "O10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 13.49, + "z": 1.05 + }, + "P10": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 52.63, + "y": 8.99, + "z": 1.05 + }, + "A11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 76.49, + "z": 1.05 + }, + "B11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 71.99, + "z": 1.05 + }, + "C11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 67.49, + "z": 1.05 + }, + "D11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 62.99, + "z": 1.05 + }, + "E11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 58.49, + "z": 1.05 + }, + "F11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 53.99, + "z": 1.05 + }, + "G11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 49.49, + "z": 1.05 + }, + "H11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 44.99, + "z": 1.05 + }, + "I11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 40.49, + "z": 1.05 + }, + "J11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 35.99, + "z": 1.05 + }, + "K11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 31.49, + "z": 1.05 + }, + "L11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 26.99, + "z": 1.05 + }, + "M11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 22.49, + "z": 1.05 + }, + "N11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 17.99, + "z": 1.05 + }, + "O11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 13.49, + "z": 1.05 + }, + "P11": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 57.13, + "y": 8.99, + "z": 1.05 + }, + "A12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 76.49, + "z": 1.05 + }, + "B12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 71.99, + "z": 1.05 + }, + "C12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 67.49, + "z": 1.05 + }, + "D12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 62.99, + "z": 1.05 + }, + "E12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 58.49, + "z": 1.05 + }, + "F12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 53.99, + "z": 1.05 + }, + "G12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 49.49, + "z": 1.05 + }, + "H12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 44.99, + "z": 1.05 + }, + "I12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 40.49, + "z": 1.05 + }, + "J12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 35.99, + "z": 1.05 + }, + "K12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 31.49, + "z": 1.05 + }, + "L12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 26.99, + "z": 1.05 + }, + "M12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 22.49, + "z": 1.05 + }, + "N12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 17.99, + "z": 1.05 + }, + "O12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 13.49, + "z": 1.05 + }, + "P12": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 61.63, + "y": 8.99, + "z": 1.05 + }, + "A13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 76.49, + "z": 1.05 + }, + "B13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 71.99, + "z": 1.05 + }, + "C13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 67.49, + "z": 1.05 + }, + "D13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 62.99, + "z": 1.05 + }, + "E13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 58.49, + "z": 1.05 + }, + "F13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 53.99, + "z": 1.05 + }, + "G13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 49.49, + "z": 1.05 + }, + "H13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 44.99, + "z": 1.05 + }, + "I13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 40.49, + "z": 1.05 + }, + "J13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 35.99, + "z": 1.05 + }, + "K13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 31.49, + "z": 1.05 + }, + "L13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 26.99, + "z": 1.05 + }, + "M13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 22.49, + "z": 1.05 + }, + "N13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 17.99, + "z": 1.05 + }, + "O13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 13.49, + "z": 1.05 + }, + "P13": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 66.13, + "y": 8.99, + "z": 1.05 + }, + "A14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 76.49, + "z": 1.05 + }, + "B14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 71.99, + "z": 1.05 + }, + "C14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 67.49, + "z": 1.05 + }, + "D14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 62.99, + "z": 1.05 + }, + "E14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 58.49, + "z": 1.05 + }, + "F14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 53.99, + "z": 1.05 + }, + "G14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 49.49, + "z": 1.05 + }, + "H14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 44.99, + "z": 1.05 + }, + "I14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 40.49, + "z": 1.05 + }, + "J14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 35.99, + "z": 1.05 + }, + "K14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 31.49, + "z": 1.05 + }, + "L14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 26.99, + "z": 1.05 + }, + "M14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 22.49, + "z": 1.05 + }, + "N14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 17.99, + "z": 1.05 + }, + "O14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 13.49, + "z": 1.05 + }, + "P14": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 70.63, + "y": 8.99, + "z": 1.05 + }, + "A15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 76.49, + "z": 1.05 + }, + "B15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 71.99, + "z": 1.05 + }, + "C15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 67.49, + "z": 1.05 + }, + "D15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 62.99, + "z": 1.05 + }, + "E15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 58.49, + "z": 1.05 + }, + "F15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 53.99, + "z": 1.05 + }, + "G15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 49.49, + "z": 1.05 + }, + "H15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 44.99, + "z": 1.05 + }, + "I15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 40.49, + "z": 1.05 + }, + "J15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 35.99, + "z": 1.05 + }, + "K15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 31.49, + "z": 1.05 + }, + "L15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 26.99, + "z": 1.05 + }, + "M15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 22.49, + "z": 1.05 + }, + "N15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 17.99, + "z": 1.05 + }, + "O15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 13.49, + "z": 1.05 + }, + "P15": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 75.13, + "y": 8.99, + "z": 1.05 + }, + "A16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 76.49, + "z": 1.05 + }, + "B16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 71.99, + "z": 1.05 + }, + "C16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 67.49, + "z": 1.05 + }, + "D16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 62.99, + "z": 1.05 + }, + "E16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 58.49, + "z": 1.05 + }, + "F16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 53.99, + "z": 1.05 + }, + "G16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 49.49, + "z": 1.05 + }, + "H16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 44.99, + "z": 1.05 + }, + "I16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 40.49, + "z": 1.05 + }, + "J16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 35.99, + "z": 1.05 + }, + "K16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 31.49, + "z": 1.05 + }, + "L16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 26.99, + "z": 1.05 + }, + "M16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 22.49, + "z": 1.05 + }, + "N16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 17.99, + "z": 1.05 + }, + "O16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 13.49, + "z": 1.05 + }, + "P16": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 79.63, + "y": 8.99, + "z": 1.05 + }, + "A17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 76.49, + "z": 1.05 + }, + "B17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 71.99, + "z": 1.05 + }, + "C17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 67.49, + "z": 1.05 + }, + "D17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 62.99, + "z": 1.05 + }, + "E17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 58.49, + "z": 1.05 + }, + "F17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 53.99, + "z": 1.05 + }, + "G17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 49.49, + "z": 1.05 + }, + "H17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 44.99, + "z": 1.05 + }, + "I17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 40.49, + "z": 1.05 + }, + "J17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 35.99, + "z": 1.05 + }, + "K17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 31.49, + "z": 1.05 + }, + "L17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 26.99, + "z": 1.05 + }, + "M17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 22.49, + "z": 1.05 + }, + "N17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 17.99, + "z": 1.05 + }, + "O17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 13.49, + "z": 1.05 + }, + "P17": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 84.13, + "y": 8.99, + "z": 1.05 + }, + "A18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 76.49, + "z": 1.05 + }, + "B18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 71.99, + "z": 1.05 + }, + "C18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 67.49, + "z": 1.05 + }, + "D18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 62.99, + "z": 1.05 + }, + "E18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 58.49, + "z": 1.05 + }, + "F18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 53.99, + "z": 1.05 + }, + "G18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 49.49, + "z": 1.05 + }, + "H18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 44.99, + "z": 1.05 + }, + "I18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 40.49, + "z": 1.05 + }, + "J18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 35.99, + "z": 1.05 + }, + "K18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 31.49, + "z": 1.05 + }, + "L18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 26.99, + "z": 1.05 + }, + "M18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 22.49, + "z": 1.05 + }, + "N18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 17.99, + "z": 1.05 + }, + "O18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 13.49, + "z": 1.05 + }, + "P18": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 88.63, + "y": 8.99, + "z": 1.05 + }, + "A19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 76.49, + "z": 1.05 + }, + "B19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 71.99, + "z": 1.05 + }, + "C19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 67.49, + "z": 1.05 + }, + "D19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 62.99, + "z": 1.05 + }, + "E19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 58.49, + "z": 1.05 + }, + "F19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 53.99, + "z": 1.05 + }, + "G19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 49.49, + "z": 1.05 + }, + "H19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 44.99, + "z": 1.05 + }, + "I19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 40.49, + "z": 1.05 + }, + "J19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 35.99, + "z": 1.05 + }, + "K19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 31.49, + "z": 1.05 + }, + "L19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 26.99, + "z": 1.05 + }, + "M19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 22.49, + "z": 1.05 + }, + "N19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 17.99, + "z": 1.05 + }, + "O19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 13.49, + "z": 1.05 + }, + "P19": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 93.13, + "y": 8.99, + "z": 1.05 + }, + "A20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 76.49, + "z": 1.05 + }, + "B20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 71.99, + "z": 1.05 + }, + "C20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 67.49, + "z": 1.05 + }, + "D20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 62.99, + "z": 1.05 + }, + "E20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 58.49, + "z": 1.05 + }, + "F20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 53.99, + "z": 1.05 + }, + "G20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 49.49, + "z": 1.05 + }, + "H20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 44.99, + "z": 1.05 + }, + "I20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 40.49, + "z": 1.05 + }, + "J20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 35.99, + "z": 1.05 + }, + "K20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 31.49, + "z": 1.05 + }, + "L20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 26.99, + "z": 1.05 + }, + "M20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 22.49, + "z": 1.05 + }, + "N20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 17.99, + "z": 1.05 + }, + "O20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 13.49, + "z": 1.05 + }, + "P20": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 97.63, + "y": 8.99, + "z": 1.05 + }, + "A21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 76.49, + "z": 1.05 + }, + "B21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 71.99, + "z": 1.05 + }, + "C21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 67.49, + "z": 1.05 + }, + "D21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 62.99, + "z": 1.05 + }, + "E21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 58.49, + "z": 1.05 + }, + "F21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 53.99, + "z": 1.05 + }, + "G21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 49.49, + "z": 1.05 + }, + "H21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 44.99, + "z": 1.05 + }, + "I21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 40.49, + "z": 1.05 + }, + "J21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 35.99, + "z": 1.05 + }, + "K21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 31.49, + "z": 1.05 + }, + "L21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 26.99, + "z": 1.05 + }, + "M21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 22.49, + "z": 1.05 + }, + "N21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 17.99, + "z": 1.05 + }, + "O21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 13.49, + "z": 1.05 + }, + "P21": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 102.13, + "y": 8.99, + "z": 1.05 + }, + "A22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 76.49, + "z": 1.05 + }, + "B22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 71.99, + "z": 1.05 + }, + "C22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 67.49, + "z": 1.05 + }, + "D22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 62.99, + "z": 1.05 + }, + "E22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 58.49, + "z": 1.05 + }, + "F22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 53.99, + "z": 1.05 + }, + "G22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 49.49, + "z": 1.05 + }, + "H22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 44.99, + "z": 1.05 + }, + "I22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 40.49, + "z": 1.05 + }, + "J22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 35.99, + "z": 1.05 + }, + "K22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 31.49, + "z": 1.05 + }, + "L22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 26.99, + "z": 1.05 + }, + "M22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 22.49, + "z": 1.05 + }, + "N22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 17.99, + "z": 1.05 + }, + "O22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 13.49, + "z": 1.05 + }, + "P22": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 106.63, + "y": 8.99, + "z": 1.05 + }, + "A23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 76.49, + "z": 1.05 + }, + "B23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 71.99, + "z": 1.05 + }, + "C23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 67.49, + "z": 1.05 + }, + "D23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 62.99, + "z": 1.05 + }, + "E23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 58.49, + "z": 1.05 + }, + "F23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 53.99, + "z": 1.05 + }, + "G23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 49.49, + "z": 1.05 + }, + "H23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 44.99, + "z": 1.05 + }, + "I23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 40.49, + "z": 1.05 + }, + "J23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 35.99, + "z": 1.05 + }, + "K23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 31.49, + "z": 1.05 + }, + "L23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 26.99, + "z": 1.05 + }, + "M23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 22.49, + "z": 1.05 + }, + "N23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 17.99, + "z": 1.05 + }, + "O23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 13.49, + "z": 1.05 + }, + "P23": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 111.13, + "y": 8.99, + "z": 1.05 + }, + "A24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 76.49, + "z": 1.05 + }, + "B24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 71.99, + "z": 1.05 + }, + "C24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 67.49, + "z": 1.05 + }, + "D24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 62.99, + "z": 1.05 + }, + "E24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 58.49, + "z": 1.05 + }, + "F24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 53.99, + "z": 1.05 + }, + "G24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 49.49, + "z": 1.05 + }, + "H24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 44.99, + "z": 1.05 + }, + "I24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 40.49, + "z": 1.05 + }, + "J24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 35.99, + "z": 1.05 + }, + "K24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 31.49, + "z": 1.05 + }, + "L24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 26.99, + "z": 1.05 + }, + "M24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 22.49, + "z": 1.05 + }, + "N24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 17.99, + "z": 1.05 + }, + "O24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 13.49, + "z": 1.05 + }, + "P24": { + "depth": 9.35, + "totalLiquidVolume": 50, + "shape": "circular", + "diameter": 3.1, + "x": 115.63, + "y": 8.99, + "z": 1.05 + } + }, + "groups": [ + { + "metadata": { + "wellBottomShape": "v" + }, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "I1", + "J1", + "K1", + "L1", + "M1", + "N1", + "O1", + "P1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "I2", + "J2", + "K2", + "L2", + "M2", + "N2", + "O2", + "P2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "I3", + "J3", + "K3", + "L3", + "M3", + "N3", + "O3", + "P3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "I4", + "J4", + "K4", + "L4", + "M4", + "N4", + "O4", + "P4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "I5", + "J5", + "K5", + "L5", + "M5", + "N5", + "O5", + "P5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "I6", + "J6", + "K6", + "L6", + "M6", + "N6", + "O6", + "P6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "I7", + "J7", + "K7", + "L7", + "M7", + "N7", + "O7", + "P7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "I8", + "J8", + "K8", + "L8", + "M8", + "N8", + "O8", + "P8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "I9", + "J9", + "K9", + "L9", + "M9", + "N9", + "O9", + "P9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "I10", + "J10", + "K10", + "L10", + "M10", + "N10", + "O10", + "P10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "I11", + "J11", + "K11", + "L11", + "M11", + "N11", + "O11", + "P11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12", + "I12", + "J12", + "K12", + "L12", + "M12", + "N12", + "O12", + "P12", + "A13", + "B13", + "C13", + "D13", + "E13", + "F13", + "G13", + "H13", + "I13", + "J13", + "K13", + "L13", + "M13", + "N13", + "O13", + "P13", + "A14", + "B14", + "C14", + "D14", + "E14", + "F14", + "G14", + "H14", + "I14", + "J14", + "K14", + "L14", + "M14", + "N14", + "O14", + "P14", + "A15", + "B15", + "C15", + "D15", + "E15", + "F15", + "G15", + "H15", + "I15", + "J15", + "K15", + "L15", + "M15", + "N15", + "O15", + "P15", + "A16", + "B16", + "C16", + "D16", + "E16", + "F16", + "G16", + "H16", + "I16", + "J16", + "K16", + "L16", + "M16", + "N16", + "O16", + "P16", + "A17", + "B17", + "C17", + "D17", + "E17", + "F17", + "G17", + "H17", + "I17", + "J17", + "K17", + "L17", + "M17", + "N17", + "O17", + "P17", + "A18", + "B18", + "C18", + "D18", + "E18", + "F18", + "G18", + "H18", + "I18", + "J18", + "K18", + "L18", + "M18", + "N18", + "O18", + "P18", + "A19", + "B19", + "C19", + "D19", + "E19", + "F19", + "G19", + "H19", + "I19", + "J19", + "K19", + "L19", + "M19", + "N19", + "O19", + "P19", + "A20", + "B20", + "C20", + "D20", + "E20", + "F20", + "G20", + "H20", + "I20", + "J20", + "K20", + "L20", + "M20", + "N20", + "O20", + "P20", + "A21", + "B21", + "C21", + "D21", + "E21", + "F21", + "G21", + "H21", + "I21", + "J21", + "K21", + "L21", + "M21", + "N21", + "O21", + "P21", + "A22", + "B22", + "C22", + "D22", + "E22", + "F22", + "G22", + "H22", + "I22", + "J22", + "K22", + "L22", + "M22", + "N22", + "O22", + "P22", + "A23", + "B23", + "C23", + "D23", + "E23", + "F23", + "G23", + "H23", + "I23", + "J23", + "K23", + "L23", + "M23", + "N23", + "O23", + "P23", + "A24", + "B24", + "C24", + "D24", + "E24", + "F24", + "G24", + "H24", + "I24", + "J24", + "K24", + "L24", + "M24", + "N24", + "O24", + "P24" + ] + } + ], + "parameters": { + "format": "384Standard", + "quirks": [], + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "biorad_384_wellplate_50ul" + }, + "namespace": "opentrons", + "version": 2, + "schemaVersion": 2, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/biorad_96_wellplate_200ul_pcr.json b/OT2-setup/setup/create-labware/labware/biorad_96_wellplate_200ul_pcr.json new file mode 100644 index 0000000..ad7970c --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/biorad_96_wellplate_200ul_pcr.json @@ -0,0 +1,1046 @@ +{ + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "schemaVersion": 2, + "version": 2, + "namespace": "opentrons", + "metadata": { + "displayName": "Bio-Rad 96 Well Plate 200 µL PCR", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "yDimension": 85.48, + "xDimension": 127.76, + "zDimension": 16.06 + }, + "parameters": { + "format": "96Standard", + "isTiprack": false, + "loadName": "biorad_96_wellplate_200ul_pcr", + "isMagneticModuleCompatible": true, + "magneticModuleEngageHeight": 18 + }, + "gripForce": 15, + "gripHeightFromLabwareBottom": 10.14, + "wells": { + "H1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 11.24, + "z": 1.25 + }, + "G1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 20.24, + "z": 1.25 + }, + "F1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 29.24, + "z": 1.25 + }, + "E1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 38.24, + "z": 1.25 + }, + "D1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 47.24, + "z": 1.25 + }, + "C1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 56.24, + "z": 1.25 + }, + "B1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 65.24, + "z": 1.25 + }, + "A1": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 74.24, + "z": 1.25 + }, + "H2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 11.24, + "z": 1.25 + }, + "G2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 20.24, + "z": 1.25 + }, + "F2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 29.24, + "z": 1.25 + }, + "E2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 38.24, + "z": 1.25 + }, + "D2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 47.24, + "z": 1.25 + }, + "C2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 56.24, + "z": 1.25 + }, + "B2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 65.24, + "z": 1.25 + }, + "A2": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 74.24, + "z": 1.25 + }, + "H3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 11.24, + "z": 1.25 + }, + "G3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 20.24, + "z": 1.25 + }, + "F3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 29.24, + "z": 1.25 + }, + "E3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 38.24, + "z": 1.25 + }, + "D3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 47.24, + "z": 1.25 + }, + "C3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 56.24, + "z": 1.25 + }, + "B3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 65.24, + "z": 1.25 + }, + "A3": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 74.24, + "z": 1.25 + }, + "H4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 11.24, + "z": 1.25 + }, + "G4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 20.24, + "z": 1.25 + }, + "F4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 29.24, + "z": 1.25 + }, + "E4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 38.24, + "z": 1.25 + }, + "D4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 47.24, + "z": 1.25 + }, + "C4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 56.24, + "z": 1.25 + }, + "B4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 65.24, + "z": 1.25 + }, + "A4": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 74.24, + "z": 1.25 + }, + "H5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 11.24, + "z": 1.25 + }, + "G5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 20.24, + "z": 1.25 + }, + "F5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 29.24, + "z": 1.25 + }, + "E5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 38.24, + "z": 1.25 + }, + "D5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 47.24, + "z": 1.25 + }, + "C5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 56.24, + "z": 1.25 + }, + "B5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 65.24, + "z": 1.25 + }, + "A5": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 74.24, + "z": 1.25 + }, + "H6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 11.24, + "z": 1.25 + }, + "G6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 20.24, + "z": 1.25 + }, + "F6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 29.24, + "z": 1.25 + }, + "E6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 38.24, + "z": 1.25 + }, + "D6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 47.24, + "z": 1.25 + }, + "C6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 56.24, + "z": 1.25 + }, + "B6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 65.24, + "z": 1.25 + }, + "A6": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 74.24, + "z": 1.25 + }, + "H7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 11.24, + "z": 1.25 + }, + "G7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 20.24, + "z": 1.25 + }, + "F7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 29.24, + "z": 1.25 + }, + "E7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 38.24, + "z": 1.25 + }, + "D7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 47.24, + "z": 1.25 + }, + "C7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 56.24, + "z": 1.25 + }, + "B7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 65.24, + "z": 1.25 + }, + "A7": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 74.24, + "z": 1.25 + }, + "H8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 11.24, + "z": 1.25 + }, + "G8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 20.24, + "z": 1.25 + }, + "F8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 29.24, + "z": 1.25 + }, + "E8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 38.24, + "z": 1.25 + }, + "D8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 47.24, + "z": 1.25 + }, + "C8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 56.24, + "z": 1.25 + }, + "B8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 65.24, + "z": 1.25 + }, + "A8": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 74.24, + "z": 1.25 + }, + "H9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 11.24, + "z": 1.25 + }, + "G9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 20.24, + "z": 1.25 + }, + "F9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 29.24, + "z": 1.25 + }, + "E9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 38.24, + "z": 1.25 + }, + "D9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 47.24, + "z": 1.25 + }, + "C9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 56.24, + "z": 1.25 + }, + "B9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 65.24, + "z": 1.25 + }, + "A9": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 74.24, + "z": 1.25 + }, + "H10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 11.24, + "z": 1.25 + }, + "G10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 20.24, + "z": 1.25 + }, + "F10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 29.24, + "z": 1.25 + }, + "E10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 38.24, + "z": 1.25 + }, + "D10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 47.24, + "z": 1.25 + }, + "C10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 56.24, + "z": 1.25 + }, + "B10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 65.24, + "z": 1.25 + }, + "A10": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 74.24, + "z": 1.25 + }, + "H11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 11.24, + "z": 1.25 + }, + "G11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 20.24, + "z": 1.25 + }, + "F11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 29.24, + "z": 1.25 + }, + "E11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 38.24, + "z": 1.25 + }, + "D11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 47.24, + "z": 1.25 + }, + "C11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 56.24, + "z": 1.25 + }, + "B11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 65.24, + "z": 1.25 + }, + "A11": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 74.24, + "z": 1.25 + }, + "H12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 11.24, + "z": 1.25 + }, + "G12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 20.24, + "z": 1.25 + }, + "F12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 29.24, + "z": 1.25 + }, + "E12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 38.24, + "z": 1.25 + }, + "D12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 47.24, + "z": 1.25 + }, + "C12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 56.24, + "z": 1.25 + }, + "B12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 65.24, + "z": 1.25 + }, + "A12": { + "depth": 14.81, + "shape": "circular", + "diameter": 5.46, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 74.24, + "z": 1.25 + } + }, + "brand": { + "brand": "Bio-Rad", + "brandId": ["hsp9601"], + "links": [ + "http://www.bio-rad.com/en-us/sku/hsp9601-hard-shell-96-well-pcr-plates-low-profile-thin-wall-skirted-white-clear?ID=hsp9601" + ] + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ], + "metadata": { + "wellBottomShape": "v" + } + } + ], + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "stackingOffsetWithLabware": { + "opentrons_96_well_aluminum_block": { + "x": 0, + "y": 0, + "z": 15.41 + }, + "opentrons_96_pcr_adapter": { + "x": 0, + "y": 0, + "z": 10.16 + } + }, + "stackingOffsetWithModule": { + "thermocyclerModuleV2": { + "x": 0, + "y": 0, + "z": 10.75 + }, + "magneticBlockV1": { + "x": 0, + "y": 0, + "z": 3.87 + } + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/corning_24_wellplate_3.4ml_flat.json b/OT2-setup/setup/create-labware/labware/corning_24_wellplate_3.4ml_flat.json new file mode 100644 index 0000000..f2dd560 --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/corning_24_wellplate_3.4ml_flat.json @@ -0,0 +1,300 @@ +{ + "ordering": [ + ["A1", "B1", "C1", "D1"], + ["A2", "B2", "C2", "D2"], + ["A3", "B3", "C3", "D3"], + ["A4", "B4", "C4", "D4"], + ["A5", "B5", "C5", "D5"], + ["A6", "B6", "C6", "D6"] + ], + "brand": { + "brand": "Corning", + "brandId": ["3337", "3524", "3526", "3527", "3473", "3738", "3987"], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Microplates/Assay-Microplates/96-Well-Microplates/Costar%C2%AE-Multiple-Well-Cell-Culture-Plates/p/3738" + ] + }, + "schemaVersion": 2, + "version": 2, + "namespace": "opentrons", + "metadata": { + "displayName": "Corning 24 Well Plate 3.4 mL Flat", + "displayVolumeUnits": "mL", + "displayCategory": "wellPlate", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.47, + "zDimension": 20.27 + }, + "wells": { + "D1": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 17.48, + "y": 13.77, + "z": 2.87 + }, + "C1": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 17.48, + "y": 33.07, + "z": 2.87 + }, + "B1": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 17.48, + "y": 52.37, + "z": 2.87 + }, + "A1": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 17.48, + "y": 71.67, + "z": 2.87 + }, + "D2": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 36.78, + "y": 13.77, + "z": 2.87 + }, + "C2": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 36.78, + "y": 33.07, + "z": 2.87 + }, + "B2": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 36.78, + "y": 52.37, + "z": 2.87 + }, + "A2": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 36.78, + "y": 71.67, + "z": 2.87 + }, + "D3": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 56.08, + "y": 13.77, + "z": 2.87 + }, + "C3": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 56.08, + "y": 33.07, + "z": 2.87 + }, + "B3": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 56.08, + "y": 52.37, + "z": 2.87 + }, + "A3": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 56.08, + "y": 71.67, + "z": 2.87 + }, + "D4": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 75.38, + "y": 13.77, + "z": 2.87 + }, + "C4": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 75.38, + "y": 33.07, + "z": 2.87 + }, + "B4": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 75.38, + "y": 52.37, + "z": 2.87 + }, + "A4": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 75.38, + "y": 71.67, + "z": 2.87 + }, + "D5": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 94.68, + "y": 13.77, + "z": 2.87 + }, + "C5": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 94.68, + "y": 33.07, + "z": 2.87 + }, + "B5": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 94.68, + "y": 52.37, + "z": 2.87 + }, + "A5": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 94.68, + "y": 71.67, + "z": 2.87 + }, + "D6": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 113.98, + "y": 13.77, + "z": 2.87 + }, + "C6": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 113.98, + "y": 33.07, + "z": 2.87 + }, + "B6": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 113.98, + "y": 52.37, + "z": 2.87 + }, + "A6": { + "shape": "circular", + "depth": 17.4, + "diameter": 16.26, + "totalLiquidVolume": 3400, + "x": 113.98, + "y": 71.67, + "z": 2.87 + } + }, + "parameters": { + "format": "irregular", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "corning_24_wellplate_3.4ml_flat" + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "A2", + "B2", + "C2", + "D2", + "A3", + "B3", + "C3", + "D3", + "A4", + "B4", + "C4", + "D4", + "A5", + "B5", + "C5", + "D5", + "A6", + "B6", + "C6", + "D6" + ], + "metadata": { + "wellBottomShape": "flat" + } + } + ], + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "stackingOffsetWithLabware": { + "opentrons_aluminum_flat_bottom_plate": { + "x": 0, + "y": 0, + "z": 4.15 + } + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/corning_96_wellplate_360ul_flat.json b/OT2-setup/setup/create-labware/labware/corning_96_wellplate_360ul_flat.json new file mode 100644 index 0000000..c598886 --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/corning_96_wellplate_360ul_flat.json @@ -0,0 +1,1063 @@ +{ + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { + "brand": "Corning", + "brandId": [ + "3650", + "3916", + "3915", + "3361", + "3590", + "9018", + "3591", + "9017", + "3641", + "3628", + "3370", + "2507", + "2509", + "2503", + "3665", + "3600", + "3362", + "3917", + "3912", + "3925", + "3922", + "3596", + "3977", + "3598", + "3599", + "3585", + "3595", + "3300", + "3474" + ], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Microplates/Assay-Microplates/96-Well-Microplates/Corning%C2%AE-96-well-Solid-Black-and-White-Polystyrene-Microplates/p/corning96WellSolidBlackAndWhitePolystyreneMicroplates" + ] + }, + "metadata": { + "displayName": "Corning 96 Well Plate 360 µL Flat", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.47, + "zDimension": 14.22 + }, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "gripForce": 15, + "gripHeightFromLabwareBottom": 12.2, + "wells": { + "H1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 11.24, + "z": 3.55 + }, + "G1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 20.24, + "z": 3.55 + }, + "F1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 29.24, + "z": 3.55 + }, + "E1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 38.24, + "z": 3.55 + }, + "D1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 47.24, + "z": 3.55 + }, + "C1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 56.24, + "z": 3.55 + }, + "B1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 65.24, + "z": 3.55 + }, + "A1": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 14.38, + "y": 74.24, + "z": 3.55 + }, + "H2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 11.24, + "z": 3.55 + }, + "G2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 20.24, + "z": 3.55 + }, + "F2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 29.24, + "z": 3.55 + }, + "E2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 38.24, + "z": 3.55 + }, + "D2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 47.24, + "z": 3.55 + }, + "C2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 56.24, + "z": 3.55 + }, + "B2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 65.24, + "z": 3.55 + }, + "A2": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 23.38, + "y": 74.24, + "z": 3.55 + }, + "H3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 11.24, + "z": 3.55 + }, + "G3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 20.24, + "z": 3.55 + }, + "F3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 29.24, + "z": 3.55 + }, + "E3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 38.24, + "z": 3.55 + }, + "D3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 47.24, + "z": 3.55 + }, + "C3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 56.24, + "z": 3.55 + }, + "B3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 65.24, + "z": 3.55 + }, + "A3": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 32.38, + "y": 74.24, + "z": 3.55 + }, + "H4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 11.24, + "z": 3.55 + }, + "G4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 20.24, + "z": 3.55 + }, + "F4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 29.24, + "z": 3.55 + }, + "E4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 38.24, + "z": 3.55 + }, + "D4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 47.24, + "z": 3.55 + }, + "C4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 56.24, + "z": 3.55 + }, + "B4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 65.24, + "z": 3.55 + }, + "A4": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 41.38, + "y": 74.24, + "z": 3.55 + }, + "H5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 11.24, + "z": 3.55 + }, + "G5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 20.24, + "z": 3.55 + }, + "F5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 29.24, + "z": 3.55 + }, + "E5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 38.24, + "z": 3.55 + }, + "D5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 47.24, + "z": 3.55 + }, + "C5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 56.24, + "z": 3.55 + }, + "B5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 65.24, + "z": 3.55 + }, + "A5": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 50.38, + "y": 74.24, + "z": 3.55 + }, + "H6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 11.24, + "z": 3.55 + }, + "G6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 20.24, + "z": 3.55 + }, + "F6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 29.24, + "z": 3.55 + }, + "E6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 38.24, + "z": 3.55 + }, + "D6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 47.24, + "z": 3.55 + }, + "C6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 56.24, + "z": 3.55 + }, + "B6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 65.24, + "z": 3.55 + }, + "A6": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 59.38, + "y": 74.24, + "z": 3.55 + }, + "H7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 11.24, + "z": 3.55 + }, + "G7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 20.24, + "z": 3.55 + }, + "F7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 29.24, + "z": 3.55 + }, + "E7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 38.24, + "z": 3.55 + }, + "D7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 47.24, + "z": 3.55 + }, + "C7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 56.24, + "z": 3.55 + }, + "B7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 65.24, + "z": 3.55 + }, + "A7": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 68.38, + "y": 74.24, + "z": 3.55 + }, + "H8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 11.24, + "z": 3.55 + }, + "G8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 20.24, + "z": 3.55 + }, + "F8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 29.24, + "z": 3.55 + }, + "E8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 38.24, + "z": 3.55 + }, + "D8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 47.24, + "z": 3.55 + }, + "C8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 56.24, + "z": 3.55 + }, + "B8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 65.24, + "z": 3.55 + }, + "A8": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 77.38, + "y": 74.24, + "z": 3.55 + }, + "H9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 11.24, + "z": 3.55 + }, + "G9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 20.24, + "z": 3.55 + }, + "F9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 29.24, + "z": 3.55 + }, + "E9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 38.24, + "z": 3.55 + }, + "D9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 47.24, + "z": 3.55 + }, + "C9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 56.24, + "z": 3.55 + }, + "B9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 65.24, + "z": 3.55 + }, + "A9": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 86.38, + "y": 74.24, + "z": 3.55 + }, + "H10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 11.24, + "z": 3.55 + }, + "G10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 20.24, + "z": 3.55 + }, + "F10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 29.24, + "z": 3.55 + }, + "E10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 38.24, + "z": 3.55 + }, + "D10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 47.24, + "z": 3.55 + }, + "C10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 56.24, + "z": 3.55 + }, + "B10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 65.24, + "z": 3.55 + }, + "A10": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 95.38, + "y": 74.24, + "z": 3.55 + }, + "H11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 11.24, + "z": 3.55 + }, + "G11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 20.24, + "z": 3.55 + }, + "F11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 29.24, + "z": 3.55 + }, + "E11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 38.24, + "z": 3.55 + }, + "D11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 47.24, + "z": 3.55 + }, + "C11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 56.24, + "z": 3.55 + }, + "B11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 65.24, + "z": 3.55 + }, + "A11": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 104.38, + "y": 74.24, + "z": 3.55 + }, + "H12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 11.24, + "z": 3.55 + }, + "G12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 20.24, + "z": 3.55 + }, + "F12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 29.24, + "z": 3.55 + }, + "E12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 38.24, + "z": 3.55 + }, + "D12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 47.24, + "z": 3.55 + }, + "C12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 56.24, + "z": 3.55 + }, + "B12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 65.24, + "z": 3.55 + }, + "A12": { + "depth": 10.67, + "shape": "circular", + "diameter": 6.86, + "totalLiquidVolume": 360, + "x": 113.38, + "y": 74.24, + "z": 3.55 + } + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ], + "metadata": { + "wellBottomShape": "flat" + } + } + ], + "parameters": { + "format": "96Standard", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "corning_96_wellplate_360ul_flat" + }, + "namespace": "opentrons", + "version": 2, + "schemaVersion": 2, + "stackingOffsetWithLabware": { + "opentrons_universal_flat_adapter": { + "x": 0, + "y": 0, + "z": 10.22 + }, + "opentrons_aluminum_flat_bottom_plate": { + "x": 0, + "y": 0, + "z": 5.45 + } + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/nest_96_wellplate_2ml_deep.json b/OT2-setup/setup/create-labware/labware/nest_96_wellplate_2ml_deep.json new file mode 100644 index 0000000..9fb4bfa --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/nest_96_wellplate_2ml_deep.json @@ -0,0 +1,1137 @@ +{ + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { + "brand": "NEST", + "brandId": ["503001", "503501"], + "links": ["https://www.nest-biotech.com/deep-well-plates/59253726.html"] + }, + "metadata": { + "displayName": "NEST 96 Deep Well Plate 2mL", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.6, + "yDimension": 85.3, + "zDimension": 41 + }, + "gripForce": 15, + "gripHeightFromLabwareBottom": 21.9, + "wells": { + "A1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 74.15, + "z": 3 + }, + "B1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 65.15, + "z": 3 + }, + "C1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 56.15, + "z": 3 + }, + "D1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 47.15, + "z": 3 + }, + "E1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 38.15, + "z": 3 + }, + "F1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 29.15, + "z": 3 + }, + "G1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 20.15, + "z": 3 + }, + "H1": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 14.3, + "y": 11.15, + "z": 3 + }, + "A2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 74.15, + "z": 3 + }, + "B2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 65.15, + "z": 3 + }, + "C2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 56.15, + "z": 3 + }, + "D2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 47.15, + "z": 3 + }, + "E2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 38.15, + "z": 3 + }, + "F2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 29.15, + "z": 3 + }, + "G2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 20.15, + "z": 3 + }, + "H2": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 23.3, + "y": 11.15, + "z": 3 + }, + "A3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 74.15, + "z": 3 + }, + "B3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 65.15, + "z": 3 + }, + "C3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 56.15, + "z": 3 + }, + "D3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 47.15, + "z": 3 + }, + "E3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 38.15, + "z": 3 + }, + "F3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 29.15, + "z": 3 + }, + "G3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 20.15, + "z": 3 + }, + "H3": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 32.3, + "y": 11.15, + "z": 3 + }, + "A4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 74.15, + "z": 3 + }, + "B4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 65.15, + "z": 3 + }, + "C4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 56.15, + "z": 3 + }, + "D4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 47.15, + "z": 3 + }, + "E4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 38.15, + "z": 3 + }, + "F4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 29.15, + "z": 3 + }, + "G4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 20.15, + "z": 3 + }, + "H4": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 41.3, + "y": 11.15, + "z": 3 + }, + "A5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 74.15, + "z": 3 + }, + "B5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 65.15, + "z": 3 + }, + "C5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 56.15, + "z": 3 + }, + "D5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 47.15, + "z": 3 + }, + "E5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 38.15, + "z": 3 + }, + "F5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 29.15, + "z": 3 + }, + "G5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 20.15, + "z": 3 + }, + "H5": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 50.3, + "y": 11.15, + "z": 3 + }, + "A6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 74.15, + "z": 3 + }, + "B6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 65.15, + "z": 3 + }, + "C6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 56.15, + "z": 3 + }, + "D6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 47.15, + "z": 3 + }, + "E6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 38.15, + "z": 3 + }, + "F6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 29.15, + "z": 3 + }, + "G6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 20.15, + "z": 3 + }, + "H6": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 59.3, + "y": 11.15, + "z": 3 + }, + "A7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 74.15, + "z": 3 + }, + "B7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 65.15, + "z": 3 + }, + "C7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 56.15, + "z": 3 + }, + "D7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 47.15, + "z": 3 + }, + "E7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 38.15, + "z": 3 + }, + "F7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 29.15, + "z": 3 + }, + "G7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 20.15, + "z": 3 + }, + "H7": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 68.3, + "y": 11.15, + "z": 3 + }, + "A8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 74.15, + "z": 3 + }, + "B8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 65.15, + "z": 3 + }, + "C8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 56.15, + "z": 3 + }, + "D8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 47.15, + "z": 3 + }, + "E8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 38.15, + "z": 3 + }, + "F8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 29.15, + "z": 3 + }, + "G8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 20.15, + "z": 3 + }, + "H8": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 77.3, + "y": 11.15, + "z": 3 + }, + "A9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 74.15, + "z": 3 + }, + "B9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 65.15, + "z": 3 + }, + "C9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 56.15, + "z": 3 + }, + "D9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 47.15, + "z": 3 + }, + "E9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 38.15, + "z": 3 + }, + "F9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 29.15, + "z": 3 + }, + "G9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 20.15, + "z": 3 + }, + "H9": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 86.3, + "y": 11.15, + "z": 3 + }, + "A10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 74.15, + "z": 3 + }, + "B10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 65.15, + "z": 3 + }, + "C10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 56.15, + "z": 3 + }, + "D10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 47.15, + "z": 3 + }, + "E10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 38.15, + "z": 3 + }, + "F10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 29.15, + "z": 3 + }, + "G10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 20.15, + "z": 3 + }, + "H10": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 95.3, + "y": 11.15, + "z": 3 + }, + "A11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 74.15, + "z": 3 + }, + "B11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 65.15, + "z": 3 + }, + "C11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 56.15, + "z": 3 + }, + "D11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 47.15, + "z": 3 + }, + "E11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 38.15, + "z": 3 + }, + "F11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 29.15, + "z": 3 + }, + "G11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 20.15, + "z": 3 + }, + "H11": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 104.3, + "y": 11.15, + "z": 3 + }, + "A12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 74.15, + "z": 3 + }, + "B12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 65.15, + "z": 3 + }, + "C12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 56.15, + "z": 3 + }, + "D12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 47.15, + "z": 3 + }, + "E12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 38.15, + "z": 3 + }, + "F12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 29.15, + "z": 3 + }, + "G12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 20.15, + "z": 3 + }, + "H12": { + "depth": 38, + "totalLiquidVolume": 2000, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "x": 113.3, + "y": 11.15, + "z": 3 + } + }, + "groups": [ + { + "metadata": { + "displayName": "NEST 96 Deep Well Plate 2mL", + "displayCategory": "wellPlate", + "wellBottomShape": "v" + }, + "brand": { + "brand": "NEST", + "brandId": [] + }, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": false, + "isMagneticModuleCompatible": true, + "loadName": "nest_96_wellplate_2ml_deep", + "magneticModuleEngageHeight": 6.8 + }, + "namespace": "opentrons", + "version": 2, + "schemaVersion": 2, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "stackingOffsetWithLabware": { + "opentrons_96_deep_well_adapter": { + "x": 0, + "y": 0, + "z": 16.3 + } + }, + "stackingOffsetWithModule": { + "magneticBlockV1": { + "x": 0, + "y": 0, + "z": 2.66 + } + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/labware/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical.json b/OT2-setup/setup/create-labware/labware/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical.json new file mode 100644 index 0000000..ee58d91 --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical.json @@ -0,0 +1,164 @@ +{ + "ordering": [ + ["A1", "B1", "C1"], + ["A2", "B2", "C2"], + ["A3", "B3"], + ["A4", "B4"] + ], + "schemaVersion": 2, + "version": 1, + "namespace": "opentrons", + "metadata": { + "displayName": "Opentrons 10 Tube Rack with Falcon 4x50 mL, 6x15 mL Conical", + "displayCategory": "tubeRack", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.5, + "zDimension": 124.35 + }, + "parameters": { + "format": "irregular", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical" + }, + "wells": { + "A1": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 13.88, + "y": 67.75, + "z": 6.85 + }, + "B1": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 13.88, + "y": 42.75, + "z": 6.85 + }, + "C1": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 13.88, + "y": 17.75, + "z": 6.85 + }, + "A2": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 38.88, + "y": 67.75, + "z": 6.85 + }, + "B2": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 38.88, + "y": 42.75, + "z": 6.85 + }, + "C2": { + "totalLiquidVolume": 15000, + "diameter": 14.9, + "shape": "circular", + "depth": 117.5, + "x": 38.88, + "y": 17.75, + "z": 6.85 + }, + "A3": { + "totalLiquidVolume": 50000, + "diameter": 27.81, + "shape": "circular", + "depth": 113, + "x": 71.38, + "y": 60.25, + "z": 7.3 + }, + "B3": { + "totalLiquidVolume": 50000, + "diameter": 27.81, + "shape": "circular", + "depth": 113, + "x": 71.38, + "y": 25.25, + "z": 7.3 + }, + "A4": { + "totalLiquidVolume": 50000, + "diameter": 27.81, + "shape": "circular", + "depth": 113, + "x": 106.38, + "y": 60.25, + "z": 7.3 + }, + "B4": { + "totalLiquidVolume": 50000, + "diameter": 27.81, + "shape": "circular", + "depth": 113, + "x": 106.38, + "y": 25.25, + "z": 7.3 + } + }, + "brand": { + "brand": "Opentrons", + "brandId": [], + "links": [ + "https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1" + ] + }, + "groups": [ + { + "wells": ["A1", "B1", "C1", "A2", "B2", "C2"], + "metadata": { + "displayName": "Falcon 6x15 mL Conical", + "displayCategory": "tubeRack", + "wellBottomShape": "v" + }, + "brand": { + "brand": "Falcon", + "brandId": ["352095", "352096", "352097", "352099", "352196"], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Liquid-Handling/Tubes,-Liquid-Handling/Centrifuge-Tubes/Falcon%C2%AE-Conical-Centrifuge-Tubes/p/falconConicalTubes" + ] + } + }, + { + "wells": ["A3", "B3", "A4", "B4"], + "metadata": { + "displayName": "Falcon 4x50 mL Conical", + "displayCategory": "tubeRack", + "wellBottomShape": "v" + }, + "brand": { + "brand": "Falcon", + "brandId": ["352070", "352098"], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Liquid-Handling/Tubes,-Liquid-Handling/Centrifuge-Tubes/Falcon%C2%AE-Conical-Centrifuge-Tubes/p/falconConicalTubes" + ] + } + } + ], + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + } + } \ No newline at end of file diff --git a/petridish_16_wellplate.json b/OT2-setup/setup/create-labware/labware/petridish.json similarity index 83% rename from petridish_16_wellplate.json rename to OT2-setup/setup/create-labware/labware/petridish.json index d10d065..4fd884d 100644 --- a/petridish_16_wellplate.json +++ b/OT2-setup/setup/create-labware/labware/petridish.json @@ -26,18 +26,20 @@ ] ], "brand": { - "brand": "Petri dish", - "brandId": [] + "brand": "Fisherbrand™ ", + "brandId": [ + "12654785" + ] }, "metadata": { - "displayName": "Petri Dish 16 Well Plate", + "displayName": "Petri Dish 90mm 16 wells", "displayCategory": "wellPlate", "displayVolumeUnits": "µL", "tags": [] }, "dimensions": { - "xDimension": 128, - "yDimension": 86, + "xDimension": 127, + "yDimension": 85, "zDimension": 18 }, "wells": { @@ -47,8 +49,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 41.5, - "y": 64.5, + "x": 41, + "y": 65, "z": 7 }, "B1": { @@ -57,8 +59,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 41.5, - "y": 49.5, + "x": 41, + "y": 50, "z": 7 }, "C1": { @@ -67,8 +69,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 41.5, - "y": 34.5, + "x": 41, + "y": 35, "z": 7 }, "D1": { @@ -77,8 +79,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 41.5, - "y": 19.5, + "x": 41, + "y": 20, "z": 7 }, "A2": { @@ -87,8 +89,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 56.5, - "y": 64.5, + "x": 56, + "y": 65, "z": 7 }, "B2": { @@ -97,8 +99,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 56.5, - "y": 49.5, + "x": 56, + "y": 50, "z": 7 }, "C2": { @@ -107,8 +109,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 56.5, - "y": 34.5, + "x": 56, + "y": 35, "z": 7 }, "D2": { @@ -117,8 +119,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 56.5, - "y": 19.5, + "x": 56, + "y": 20, "z": 7 }, "A3": { @@ -127,8 +129,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 71.5, - "y": 64.5, + "x": 71, + "y": 65, "z": 7 }, "B3": { @@ -137,8 +139,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 71.5, - "y": 49.5, + "x": 71, + "y": 50, "z": 7 }, "C3": { @@ -147,8 +149,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 71.5, - "y": 34.5, + "x": 71, + "y": 35, "z": 7 }, "D3": { @@ -157,8 +159,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 71.5, - "y": 19.5, + "x": 71, + "y": 20, "z": 7 }, "A4": { @@ -167,8 +169,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 86.5, - "y": 64.5, + "x": 86, + "y": 65, "z": 7 }, "B4": { @@ -177,8 +179,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 86.5, - "y": 49.5, + "x": 86, + "y": 50, "z": 7 }, "C4": { @@ -187,8 +189,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 86.5, - "y": 34.5, + "x": 86, + "y": 35, "z": 7 }, "D4": { @@ -197,8 +199,8 @@ "shape": "rectangular", "xDimension": 15, "yDimension": 15, - "x": 86.5, - "y": 19.5, + "x": 86, + "y": 20, "z": 7 } }, @@ -232,7 +234,7 @@ "quirks": [], "isTiprack": false, "isMagneticModuleCompatible": false, - "loadName": "petridish_16_wellplate" + "loadName": "petridish_90mm_16_wells" }, "namespace": "custom_beta", "version": 1, diff --git a/OT2-setup/setup/create-labware/labware/usascientific_96_wellplate_2.4ml_deep.json b/OT2-setup/setup/create-labware/labware/usascientific_96_wellplate_2.4ml_deep.json new file mode 100644 index 0000000..2212ec6 --- /dev/null +++ b/OT2-setup/setup/create-labware/labware/usascientific_96_wellplate_2.4ml_deep.json @@ -0,0 +1,1116 @@ +{ + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { + "brand": "USA Scientific", + "brandId": ["1896-2000"], + "links": [ + "https://www.usascientific.com/2ml-deep96-well-plateone-bulk.aspx" + ] + }, + "metadata": { + "displayName": "USA Scientific 96 Deep Well Plate 2.4 mL", + "displayCategory": "wellPlate", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 44.1 + }, + "wells": { + "H1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 11.2, + "z": 2.8 + }, + "G1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 20.2, + "z": 2.8 + }, + "F1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 29.2, + "z": 2.8 + }, + "E1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 38.2, + "z": 2.8 + }, + "D1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 47.2, + "z": 2.8 + }, + "C1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 56.2, + "z": 2.8 + }, + "B1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 65.2, + "z": 2.8 + }, + "A1": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 14.4, + "y": 74.2, + "z": 2.8 + }, + "H2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 11.2, + "z": 2.8 + }, + "G2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 20.2, + "z": 2.8 + }, + "F2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 29.2, + "z": 2.8 + }, + "E2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 38.2, + "z": 2.8 + }, + "D2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 47.2, + "z": 2.8 + }, + "C2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 56.2, + "z": 2.8 + }, + "B2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 65.2, + "z": 2.8 + }, + "A2": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 23.4, + "y": 74.2, + "z": 2.8 + }, + "H3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 11.2, + "z": 2.8 + }, + "G3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 20.2, + "z": 2.8 + }, + "F3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 29.2, + "z": 2.8 + }, + "E3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 38.2, + "z": 2.8 + }, + "D3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 47.2, + "z": 2.8 + }, + "C3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 56.2, + "z": 2.8 + }, + "B3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 65.2, + "z": 2.8 + }, + "A3": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 32.4, + "y": 74.2, + "z": 2.8 + }, + "H4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 11.2, + "z": 2.8 + }, + "G4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 20.2, + "z": 2.8 + }, + "F4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 29.2, + "z": 2.8 + }, + "E4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 38.2, + "z": 2.8 + }, + "D4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 47.2, + "z": 2.8 + }, + "C4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 56.2, + "z": 2.8 + }, + "B4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 65.2, + "z": 2.8 + }, + "A4": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 41.4, + "y": 74.2, + "z": 2.8 + }, + "H5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 11.2, + "z": 2.8 + }, + "G5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 20.2, + "z": 2.8 + }, + "F5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 29.2, + "z": 2.8 + }, + "E5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 38.2, + "z": 2.8 + }, + "D5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 47.2, + "z": 2.8 + }, + "C5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 56.2, + "z": 2.8 + }, + "B5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 65.2, + "z": 2.8 + }, + "A5": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 50.4, + "y": 74.2, + "z": 2.8 + }, + "H6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 11.2, + "z": 2.8 + }, + "G6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 20.2, + "z": 2.8 + }, + "F6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 29.2, + "z": 2.8 + }, + "E6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 38.2, + "z": 2.8 + }, + "D6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 47.2, + "z": 2.8 + }, + "C6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 56.2, + "z": 2.8 + }, + "B6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 65.2, + "z": 2.8 + }, + "A6": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 59.4, + "y": 74.2, + "z": 2.8 + }, + "H7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 11.2, + "z": 2.8 + }, + "G7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 20.2, + "z": 2.8 + }, + "F7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 29.2, + "z": 2.8 + }, + "E7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 38.2, + "z": 2.8 + }, + "D7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 47.2, + "z": 2.8 + }, + "C7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 56.2, + "z": 2.8 + }, + "B7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 65.2, + "z": 2.8 + }, + "A7": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 68.4, + "y": 74.2, + "z": 2.8 + }, + "H8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 11.2, + "z": 2.8 + }, + "G8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 20.2, + "z": 2.8 + }, + "F8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 29.2, + "z": 2.8 + }, + "E8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 38.2, + "z": 2.8 + }, + "D8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 47.2, + "z": 2.8 + }, + "C8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 56.2, + "z": 2.8 + }, + "B8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 65.2, + "z": 2.8 + }, + "A8": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 77.4, + "y": 74.2, + "z": 2.8 + }, + "H9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 11.2, + "z": 2.8 + }, + "G9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 20.2, + "z": 2.8 + }, + "F9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 29.2, + "z": 2.8 + }, + "E9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 38.2, + "z": 2.8 + }, + "D9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 47.2, + "z": 2.8 + }, + "C9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 56.2, + "z": 2.8 + }, + "B9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 65.2, + "z": 2.8 + }, + "A9": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 86.4, + "y": 74.2, + "z": 2.8 + }, + "H10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 11.2, + "z": 2.8 + }, + "G10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 20.2, + "z": 2.8 + }, + "F10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 29.2, + "z": 2.8 + }, + "E10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 38.2, + "z": 2.8 + }, + "D10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 47.2, + "z": 2.8 + }, + "C10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 56.2, + "z": 2.8 + }, + "B10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 65.2, + "z": 2.8 + }, + "A10": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 95.4, + "y": 74.2, + "z": 2.8 + }, + "H11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 11.2, + "z": 2.8 + }, + "G11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 20.2, + "z": 2.8 + }, + "F11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 29.2, + "z": 2.8 + }, + "E11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 38.2, + "z": 2.8 + }, + "D11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 47.2, + "z": 2.8 + }, + "C11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 56.2, + "z": 2.8 + }, + "B11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 65.2, + "z": 2.8 + }, + "A11": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 104.4, + "y": 74.2, + "z": 2.8 + }, + "H12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 11.2, + "z": 2.8 + }, + "G12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 20.2, + "z": 2.8 + }, + "F12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 29.2, + "z": 2.8 + }, + "E12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 38.2, + "z": 2.8 + }, + "D12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 47.2, + "z": 2.8 + }, + "C12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 56.2, + "z": 2.8 + }, + "B12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 65.2, + "z": 2.8 + }, + "A12": { + "depth": 41.3, + "shape": "rectangular", + "xDimension": 8.2, + "yDimension": 8.2, + "totalLiquidVolume": 2400, + "x": 113.4, + "y": 74.2, + "z": 2.8 + } + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ], + "metadata": { + "wellBottomShape": "u" + } + } + ], + "parameters": { + "format": "96Standard", + "isTiprack": false, + "isMagneticModuleCompatible": true, + "magneticModuleEngageHeight": 14.94, + "loadName": "usascientific_96_wellplate_2.4ml_deep" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + } + } \ No newline at end of file diff --git a/OT2-setup/setup/create-labware/visualise-labware-2.R b/OT2-setup/setup/create-labware/visualise-labware-2.R new file mode 100644 index 0000000..8dfb981 --- /dev/null +++ b/OT2-setup/setup/create-labware/visualise-labware-2.R @@ -0,0 +1,213 @@ +# visualise-labware-2.R + +# This script generates plots for labware frames with wells based on CSV containing experiment data and corresponding labware JSON files. +library(ggplot2) +library(dplyr) +library(rjson) +library(ggforce) +library(tidyverse) + +# This function reads and splits CSV data by different labwares determined by deck location +read_and_split_csv <- function(csv_file_path) { + + labware_name = "transformation-parameters" + labware_file_path <- file.path("./data", paste0(labware_name, ".json")) # File path for the labware JSON file located in labware folder + json_data <- fromJSON(file = labware_file_path) + + + data <- read.csv(csv_file_path) + + # Create the volume column + volume <- paste(data$dna_volume, "ul DNA,", data$cells_volume, "ul cells,", data$soc_volume, "ul SOC") + + # Create a new dataframe with desired columns + labwares <- data.frame( + well_name = data$transformation_well, + dna_volume = data$dna_volume, + cells_volume = data$cells_volume, + soc_volume = data$soc_volume, + volume = volume, + reactant = volume, + location = "thermocycler", + labware = json_data$transformation_plate_name + ) + + split_labwares <- split(labwares, labwares$location) + return(split_labwares) +} + +# Function to check if the labware JSON file exists and if only one labware per deck is specified +check_labware_exists <- function(labware_name) { + if (length(labware_name) > 1) { + stop("There cannot be more than one plate on one deck.") + } + available_labware <- list.files(path = "./setup/create-labware/labware", pattern = ".json", full.names = FALSE) + available_labware_names <- tools::file_path_sans_ext(available_labware) + if (!labware_name %in% available_labware_names) { + stop("The provided labware name does not match any available labware. If using custom labware, add the JSON file to the labware folder.") + } +} + +# This function gets the JSON file from the labware folder with all the dimensions of the specified labwares +get_labware_json <- function(labware_dataframe) { + labware_name <- unique(labware_dataframe$labware) + + # check_labware_exists(labware_name) # Check if labware exists and if there is only one labware per deck + labware_file_path <- file.path("./setup/create-labware/labware", paste0(labware_name, ".json")) # File path for the labware JSON file located in labware folder + json_data <- fromJSON(file = labware_file_path) + return(json_data) +} + +# This function extracts well information from the JSON file +extract_well_info <- function(well) { + # Determine the specific shape information based on the well shape + shape_info <- switch( + well$shape, + rectangular = list(well_x_dim = well$xDimension, well_y_dim = well$yDimension), # For rectangular wells, extract x and y dimensions + circular = list(diameter = well$diameter) # For circular wells, extract diameter + ) + # Create a data frame containing well coordinates, shape, and shape-specific information + data.frame( + well_x_coord = well$x, + well_y_coord = well$y, + shape = well$shape, + shape_info + ) +} + +# This function parses a JSON file containing labware information and extracts data for each well +parse_labware_json <- function(json_data) { + # Apply the "extract_labware_json" function to get info for each well in the JSON file + labware_data <- lapply(json_data$wells, extract_well_info) %>% + bind_rows(.id = "well_name") # Combine into one data frame by well_name as the id column + return(labware_data) +} + +# This function merges the labware data extracted from the JSON file with the CSV data based on the common well +map_wells_with_csv <- function(labware_data, csv_file) { + # Merge labware data with CSV data based on the common well + mapped_wells <- merge(labware_data, csv_file, by = "well_name", all.x = TRUE) + return(mapped_wells) +} + +# This function creates a labware frame to which later the wells are added. +plot_labware_frame <- function(merged_data, json_data, label, fill, title_size, legend_text_size, legend_key_size) { + # Create a base plot for the plate frame with wells + + ggplot(merged_data, aes(well_x_coord, well_y_coord, fill = as.factor(!!rlang::sym(fill)), label = !!rlang::sym(label))) + + geom_rect( + aes(xmin = 0, xmax = json_data$dimensions$xDimension, ymin = 0, ymax = json_data$dimensions$yDimension), # Create a rectangle representing the plate frame + fill = NA, color = "black", linewidth = 0.5 + ) + + labs(title = paste(json_data$metadata$displayName, "in slot", unique(merged_data$location[!is.na(merged_data$location)]))) + + theme_void() + + theme( + legend.position = "bottom", + legend.direction = "vertical", + legend.justification = "center", + legend.box = "horizontal", + legend.text = element_text(size = legend_text_size), + legend.title = element_blank(), + plot.title = element_text(size = title_size, hjust = 0.5)) + + guides(fill = guide_legend(override.aes = list(size = legend_key_size))) +} + +# This function adds rectangular wells to the existing labware frame +plot_rectangular_wells <- function(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) { + labware_frame + + geom_rect( + aes(xmin = well_x_coord - well_x_dim/2, xmax = well_x_coord + well_x_dim - well_x_dim/2, ymin = well_y_coord - well_y_dim/2, ymax = well_y_coord + well_y_dim - well_y_dim/2), + color = "black", size = 0.5 + ) + + scale_fill_discrete(na.value = 'white', na.translate = FALSE) + + geom_text( + aes(x = well_x_coord, y = well_y_coord), + size = label_size, + ) + + geom_text( + data = max_y_wells, + aes(x = well_x_coord, y = well_y_coord + well_y_dim), + label = seq(1, nrow(max_y_wells)), size = 5 + ) + + geom_text( + data = min_x_wells, + aes(x = well_x_coord - well_x_dim, y = well_y_coord), + label = LETTERS[1:nrow(min_x_wells)], size = 5 + ) + + coord_fixed() # Fix aspect ratio +} + +# This function adds circular wells to the existing labware frame +plot_circular_wells <- function(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) { + labware_frame + + geom_point( + aes(x = well_x_coord, y = well_y_coord), + shape = 21, color = "black", size = mapped_wells$diameter*2.5 + ) + + scale_fill_discrete(na.value = 'white', na.translate = FALSE) + + geom_text( + aes(x = well_x_coord, y = well_y_coord), + size = label_size + ) + + geom_text( + data = max_y_wells, + aes(x = well_x_coord, y = well_y_coord + diameter), + label = seq(1, nrow(max_y_wells)), size = 5 + ) + + geom_text( + data = min_x_wells, + aes(x = well_x_coord - diameter, y = well_y_coord), + label = LETTERS[1:nrow(min_x_wells)], size = 5 + ) + + coord_fixed() # Fix aspect ratio +} + +# This function creates the final labware plot, combining both the labware frame and wells +labware_plot <- function(mapped_wells, json_data, label, fill, title_size, label_size, legend_text_size, legend_key_size) { + labware_frame <- plot_labware_frame(mapped_wells, json_data, label, fill, title_size, legend_text_size, legend_key_size) # Create the base plot for the plate frame with wells + max_y_wells <- mapped_wells[mapped_wells$well_y_coord == max(mapped_wells$well_y_coord), ] %>% arrange(well_x_coord) # Extract wells with maximum y coordinates and arrange them by x coordinates (that is the first row to annotate with numbers) + min_x_wells <- mapped_wells[mapped_wells$well_x_coord == min(mapped_wells$well_x_coord), ] %>% arrange(desc(well_y_coord)) # Extract wells with minimum x coordinates and arrange them by y coordinates (that is the first column t annotate with letters) + + # Determine the shape of the wells (rectangular or circular) + shape <- unique(mapped_wells$shape) + if (length(shape) > 1) { + stop("Irregular shapes are not supported. All wells must have the same shape.") + } + + if (shape == "rectangular") { + plotted_labware <- plot_rectangular_wells(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) + } else if (shape == "circular") { + plotted_labware <- plot_circular_wells(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) + } + # Reorder reactant levels based on their appearance in the plot, so that the legend keys are in the correct order + plotted_labware$data$reactant <- factor(plotted_labware$data$reactant, levels = unique(plotted_labware$data$reactant)) + return(plotted_labware) +} + +# Main function to generate labware plots +generate_labware_plots <- function(csv_file_path, output_folder, label = "well_name", fill = "reactant", title_size, label_size, legend_text_size, legend_key_size, plot_width = 25, plot_height = 20, plot_units = "cm") { + split_labwares <- read_and_split_csv(csv_file_path) # Create data frames for each unique labware-deck + # For each labware data frame run the following functions: + for (i in seq_along(split_labwares)) { + labware_info <- get_labware_json(split_labwares[[i]]) + parsed_labware_info <- parse_labware_json(labware_info) + mapped_wells_data <- map_wells_with_csv(parsed_labware_info, split_labwares[[i]]) + plotted_labware <- labware_plot(mapped_wells_data, labware_info, label, fill, title_size = 20, label_size = 5, legend_text_size = 20, legend_key_size = 10) + + # Extract unique reactants and create a filename + deck_location <- unique(mapped_wells_data$location[!is.na(mapped_wells_data$location)]) + filename_suffix <- paste(deck_location, collapse = "-") + + # Save the plot with the corresponding filename + output_file <- file.path(output_folder, paste0("slot", filename_suffix, "-labware.png")) + ggsave(output_file, plotted_labware, width = plot_width, height = plot_height, units = plot_units, bg = "white") + } +} + +# Command-line arguments +args <- commandArgs(trailingOnly = TRUE) +csv_file_path <- args[1] +output_folder <- args[2] + +# Generate labware plots +generate_labware_plots(csv_file_path, output_folder) diff --git a/OT2-setup/setup/create-labware/visualise-labware.R b/OT2-setup/setup/create-labware/visualise-labware.R new file mode 100644 index 0000000..12fd82a --- /dev/null +++ b/OT2-setup/setup/create-labware/visualise-labware.R @@ -0,0 +1,214 @@ +# visualise-labware.R + + +# This script generates plots for labware frames with wells based on CSV containing experiment data and corresponding labware JSON files. +library(ggplot2) +library(dplyr) +library(rjson) +library(ggforce) +library(tidyverse) + +# This function reads and splits CSV data by different labwares determined by deck location +read_and_split_csv <- function(csv_file_path) { + labwares <- read.csv(csv_file_path) + split_labwares <- split(labwares, labwares$location) + return(split_labwares) + + + labware_name = "transformation-parameters" + labware_file_path <- file.path("./data", paste0(labware_name, ".json")) # File path for the labware JSON file located in labware folder + json_data <- fromJSON(file = labware_file_path) + + + data <- read.csv(csv_file_path) + + # Create the volume column + volume <- paste(data$dna_volume, "ul DNA,", data$cells_volume, "ul cells,", data$soc_volume, "ul SOC") + + # Create a new dataframe with desired columns + labwares <- data.frame( + well_name = data$transformation_well, + dna_volume = data$dna_volume, + cells_volume = data$cells_volume, + soc_volume = data$soc_volume, + volume = volume, + reactant = volume, + location = "thermocycler", + labware = json_data$transformation_plate_name + ) + +} + +# Function to check if the labware JSON file exists and if only one labware per deck is specified +check_labware_exists <- function(labware_name) { + if (length(labware_name) > 1) { + stop("There cannot be more than one plate on one deck.") + } + available_labware <- list.files(path = "./setup/create-labware/labware", pattern = ".json", full.names = FALSE) + available_labware_names <- tools::file_path_sans_ext(available_labware) + if (!labware_name %in% available_labware_names) { + stop("The provided labware name does not match any available labware. If using custom labware, add the JSON file to the labware folder.") + } +} + +# This function gets the JSON file from the labware folder with all the dimensions of the specified labwares +get_labware_json <- function(labware_dataframe) { + labware_name <- unique(labware_dataframe$labware) + check_labware_exists(labware_name) # Check if labware exists and if there is only one labware per deck + labware_file_path <- file.path("./setup/create-labware/labware", paste0(labware_name, ".json")) # File path for the labware JSON file located in labware folder + json_data <- fromJSON(file = labware_file_path) + return(json_data) +} + +# This function extracts well information from the JSON file +extract_well_info <- function(well) { + # Determine the specific shape information based on the well shape + shape_info <- switch( + well$shape, + rectangular = list(well_x_dim = well$xDimension, well_y_dim = well$yDimension), # For rectangular wells, extract x and y dimensions + circular = list(diameter = well$diameter) # For circular wells, extract diameter + ) + # Create a data frame containing well coordinates, shape, and shape-specific information + data.frame( + well_x_coord = well$x, + well_y_coord = well$y, + shape = well$shape, + shape_info + ) +} + +# This function parses a JSON file containing labware information and extracts data for each well +parse_labware_json <- function(json_data) { + # Apply the "extract_labware_json" function to get info for each well in the JSON file + labware_data <- lapply(json_data$wells, extract_well_info) %>% + bind_rows(.id = "well_name") # Combine into one data frame by well_name as the id column + return(labware_data) +} + +# This function merges the labware data extracted from the JSON file with the CSV data based on the common well +map_wells_with_csv <- function(labware_data, csv_file) { + # Merge labware data with CSV data based on the common well + mapped_wells <- merge(labware_data, csv_file, by = "well_name", all.x = TRUE) + return(mapped_wells) +} + +# This function creates a labware frame to which later the wells are added. +plot_labware_frame <- function(merged_data, json_data, label, fill, title_size, legend_text_size, legend_key_size) { + # Create a base plot for the plate frame with wells + ggplot(merged_data, aes(well_x_coord, well_y_coord, fill = as.factor(!!rlang::sym(fill)), label = !!rlang::sym(label))) + + geom_rect( + aes(xmin = 0, xmax = json_data$dimensions$xDimension, ymin = 0, ymax = json_data$dimensions$yDimension), # Create a rectangle representing the plate frame + fill = NA, color = "black", linewidth = 0.5 + ) + + labs(title = paste(json_data$metadata$displayName, "in slot", unique(merged_data$location[!is.na(merged_data$location)]))) + + theme_void() + + theme( + legend.position = "bottom", + legend.justification = "center", + legend.box = "horizontal", + legend.text = element_text(size = legend_text_size), + legend.title = element_blank(), + plot.title = element_text(size = title_size, hjust = 0.5)) + + guides(fill = guide_legend(override.aes = list(size = legend_key_size))) +} + +# This function adds rectangular wells to the existing labware frame +plot_rectangular_wells <- function(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) { + labware_frame + + geom_rect( + aes(xmin = well_x_coord - well_x_dim/2, xmax = well_x_coord + well_x_dim - well_x_dim/2, ymin = well_y_coord - well_y_dim/2, ymax = well_y_coord + well_y_dim - well_y_dim/2), + color = "black", size = 0.5 + ) + + scale_fill_discrete(na.value = 'white', na.translate = FALSE) + + geom_text( + aes(x = well_x_coord, y = well_y_coord), + size = label_size, + ) + + geom_text( + data = max_y_wells, + aes(x = well_x_coord, y = well_y_coord + well_y_dim), + label = seq(1, nrow(max_y_wells)), size = 5 + ) + + geom_text( + data = min_x_wells, + aes(x = well_x_coord - well_x_dim, y = well_y_coord), + label = LETTERS[1:nrow(min_x_wells)], size = 5 + ) + + coord_fixed() # Fix aspect ratio +} + +# This function adds circular wells to the existing labware frame +plot_circular_wells <- function(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) { + labware_frame + + geom_point( + aes(x = well_x_coord, y = well_y_coord), + shape = 21, color = "black", size = mapped_wells$diameter*2.5 + ) + + scale_fill_discrete(na.value = 'white', na.translate = FALSE) + + geom_text( + aes(x = well_x_coord, y = well_y_coord), + size = label_size + ) + + geom_text( + data = max_y_wells, + aes(x = well_x_coord, y = well_y_coord + diameter), + label = seq(1, nrow(max_y_wells)), size = 5 + ) + + geom_text( + data = min_x_wells, + aes(x = well_x_coord - diameter, y = well_y_coord), + label = LETTERS[1:nrow(min_x_wells)], size = 5 + ) + + coord_fixed() # Fix aspect ratio +} + +# This function creates the final labware plot, combining both the labware frame and wells +labware_plot <- function(mapped_wells, json_data, label, fill, title_size, label_size, legend_text_size, legend_key_size) { + labware_frame <- plot_labware_frame(mapped_wells, json_data, label, fill, title_size, legend_text_size, legend_key_size) # Create the base plot for the plate frame with wells + max_y_wells <- mapped_wells[mapped_wells$well_y_coord == max(mapped_wells$well_y_coord), ] %>% arrange(well_x_coord) # Extract wells with maximum y coordinates and arrange them by x coordinates (that is the first row to annotate with numbers) + min_x_wells <- mapped_wells[mapped_wells$well_x_coord == min(mapped_wells$well_x_coord), ] %>% arrange(desc(well_y_coord)) # Extract wells with minimum x coordinates and arrange them by y coordinates (that is the first column t annotate with letters) + + # Determine the shape of the wells (rectangular or circular) + shape <- unique(mapped_wells$shape) + if (length(shape) > 1) { + stop("Irregular shapes are not supported. All wells must have the same shape.") + } + + if (shape == "rectangular") { + plotted_labware <- plot_rectangular_wells(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) + } else if (shape == "circular") { + plotted_labware <- plot_circular_wells(labware_frame, mapped_wells, max_y_wells, min_x_wells, label_size) + } + # Reorder reactant levels based on their appearance in the plot, so that the legend keys are in the correct order + plotted_labware$data$reactant <- factor(plotted_labware$data$reactant, levels = unique(plotted_labware$data$reactant)) + return(plotted_labware) +} + +# Main function to generate labware plots +generate_labware_plots <- function(csv_file_path, output_folder, label = "volume", fill = "reactant", title_size, label_size, legend_text_size = 5, legend_key_size, plot_width = 25, plot_height = 20, plot_units = "cm") { + split_labwares <- read_and_split_csv(csv_file_path) # Create data frames for each unique labware-deck + + # For each labware data frame run the following functions: + for (i in seq_along(split_labwares)) { + labware_info <- get_labware_json(split_labwares[[i]]) + parsed_labware_info <- parse_labware_json(labware_info) + mapped_wells_data <- map_wells_with_csv(parsed_labware_info, split_labwares[[i]]) + plotted_labware <- labware_plot(mapped_wells_data, labware_info, label, fill, title_size = 20, label_size = 5, legend_text_size = 20, legend_key_size = 10) + + # Extract unique reactants and create a filename + deck_location <- unique(mapped_wells_data$location[!is.na(mapped_wells_data$location)]) + filename_suffix <- paste(deck_location, collapse = "-") + + # Save the plot with the corresponding filename + output_file <- file.path(output_folder, paste0("slot", filename_suffix, "-labware.png")) + ggsave(output_file, plotted_labware, width = plot_width, height = plot_height, units = plot_units, bg = "white") + } +} + +# Command-line arguments +args <- commandArgs(trailingOnly = TRUE) +csv_file_path <- args[1] +output_folder <- args[2] + +# Generate labware plots +generate_labware_plots(csv_file_path, output_folder) \ No newline at end of file diff --git a/OT2-setup/setup/instruction-templates/transformation-instruction.R b/OT2-setup/setup/instruction-templates/transformation-instruction.R new file mode 100644 index 0000000..f818f5a --- /dev/null +++ b/OT2-setup/setup/instruction-templates/transformation-instruction.R @@ -0,0 +1,93 @@ +# Load required libraries +library(jsonlite) +library(gridExtra) +library(grid) +library(png) + +insert_overview <- function(data, x_margin, y_initial, y_spacing, font_size) { + grid.text("E. coli Transformation in OT-2", x = x_margin, y = y_initial, just = "left", gp = gpar(fontsize = font_size + 4, fontface = "bold")) + overview <- c("Quick Overview", + paste("Add DNA into competent cells in thermocycler."), + paste("Incubate the cells at", data$init_temp, "°C for", data$init_time, "minutes."), + paste("Heat-shock the cells at", data$heat_temp, "°C for", data$heat_time, "seconds."), + paste("Incubate the cells at", data$cool_temp, "°C for", data$cool_time, "minutes."), + paste("Add the recovery medium and incubate cells at", data$inc_temp, "°C for", data$inc_time, "minutes.")) + overview_y_lines <- (y_initial - 2*y_spacing) - seq(0, length(overview) - 1) * y_spacing + text_style <- gpar(fontsize = font_size, fontface = c("bold", rep("plain", length(overview) - 1))) + grid.text(overview, x = x_margin, y = overview_y_lines, just = "left", gp = text_style) + return(overview_y_lines[length(overview_y_lines)]-y_spacing) +} + +insert_preparation<- function(x_margin, y_initial, y_spacing) { + preparation <- c("Reagents preparation", + "Prepare the reagents and labware according to the below diagrams.", + "Volumes (uL) indicate how much of reagents will be used, so add additional volume.") + preparation_y_lines <- y_initial - y_spacing * (1:length(preparation)) + text_style <- gpar(fontsize = 12, fontface = c("bold", rep("plain", length(preparation) - 1))) + grid.text(preparation, x = x_margin, y = preparation_y_lines, just = "left", gp = text_style) + return(preparation_y_lines[length(preparation_y_lines)]-y_spacing) +} + +insert_labware <- function(folder_path, width, height, x_margin, y_initial, y_spacing) { + image_files <- list.files(folder_path, pattern = "^slot", full.names = TRUE) + num_images <- length(image_files) + positions <- list() + # Generate positions + for (i in 1:num_images) { + # Calculate position based on index + x <- x_margin + width/2 + ((i - 1) %% 2) * width + y <- y_initial - height/2 + floor((i - 1) / 2) * - height + positions[[i]] <- list(x = x, y = y) + } + + # Insert each image into the PDF + for (i in seq_along(image_files)) { + if (file.exists(image_files[i])) { + image <- readPNG(image_files[i]) + position <- positions[[i]] + grid.raster(image, x = position$x, y = position$y, width = width, height = height) + } + } + + return(positions[[num_images]]$y - height/2 - y_spacing) +} + +insert_deck_loading <- function(data, x_margin, y_initial, font_size, y_spacing) { + deck <- c("Deck Loading Instructions", + paste("Check that", data$right_pipette_name, "is in the right mount, and", data$left_pipette_name, "is in the left mount." ), + paste("Slot", paste(data$right_pipette_tiprack_slots, collapse = ", "), ": load", data$right_pipette_tiprack_name, "for the", data$right_pipette_name, "pipette."), + paste("Slot", paste(data$left_pipette_tiprack_slots, collapse = ", "), ": load", data$left_pipette_tiprack_name, "for the", data$left_pipette_name, "pipette."), + paste("Slot", data$dna_plate_slot, ": load", data$dna_plate_name, " containing DNA."), + paste("Slot", data$cells_plate_slot, ": load", data$cells_plate_name, " containing cells."), + paste("Slot", data$soc_plate_slot, ": load", data$soc_plate_name, " containing SOC."), + paste("Slot 7,8,10,11: load a thermocycler and turn it on."), + paste("Thermocycler: load", data$transformation_plate_name, "when instructed on the screen.")) + deck_y_lines <- y_initial - seq(0, length(deck) - 1) * y_spacing + text_style <- gpar(fontsize = font_size, fontface = c("bold", rep("plain", length(deck) - 1))) + grid.text(deck, x = x_margin, y = deck_y_lines, just = "left", gp = text_style) +} + +instructions <- function(json_file_path = "./data/transformation-parameters.json", output_file = "./results/Instructions.pdf", x_margin = 0.05, y_spacing = 0.02, labware_width = 0.45, labware_height = 0.27, font_size = 12, y_initial = 0.98) { + + pdf(output_file, width = 8.5, height = 11) + par(mar = c(5, 4, 4, 2) + 0.1) + json_data <- fromJSON(json_file_path) + + overview <- insert_overview(json_data, x_margin, y_initial, y_spacing, font_size) # Title and Overview + preparation <- insert_preparation(x_margin, overview, y_spacing) # Reagents preparation + + + labware <- insert_labware("./results", labware_width, labware_height, x_margin, preparation, y_spacing) # # Insert images and get coordinates + deck_loading <- insert_deck_loading(json_data, x_margin, labware, font_size, y_spacing) + + dev.off() + +} + +# Command-line arguments +args <- commandArgs(trailingOnly = TRUE) +json_file_path <- args[1] +output_file <- args[2] + +# Generateinstructions +instructions(json_file_path, output_file) \ No newline at end of file diff --git a/OT2-setup/setup/protocol-templates/spotting-template.py b/OT2-setup/setup/protocol-templates/spotting-template.py new file mode 100644 index 0000000..c5e128b --- /dev/null +++ b/OT2-setup/setup/protocol-templates/spotting-template.py @@ -0,0 +1,109 @@ +from opentrons import protocol_api +import math +import csv +import json +import collections + + +metadata = { + 'apiLevel': '2.15', + 'protocolName': 'agar-plate-spotting', + 'description': 'Protocol for agar plate spotting.', + 'author': 'Martyna Kasprzyk' +} + + +def get_parameters(json_file: str) -> dict: + """ + This function parses the json file with the parameters for the experiment and returns them as a dictionary. + """ + parameters = json.loads(json_file) # load and parse the paraemter json file + return parameters + +def read_csv_file(csv_file): + + csv_data = csv_file.splitlines()[1:] # Discard the blank first line. + csv_reader = csv.DictReader(csv_data) + + + # if multi channel + seen_numbers = {} + result_rows = [] + + for row in csv_reader: + well = row['source_well'] + letter, number = well[0], well[1:] + + # Check if the number is already associated with a different letter + if number in seen_numbers and seen_numbers[number] != letter: + continue + + result_rows.append(row) + seen_numbers[number] = letter + + plate_locations = [] + source_wells = [] + destination_wells = [] + spotting_volume = [] + agar_plate_weight = [] + + for row in result_rows: + + if row['plate_location'] not in plate_locations: + plate_locations.append(int(row['plate_location'])) + + source_wells.append(row['source_well']) + destination_wells.append(row['destination_well']) + spotting_volume.append(int(row['spotting_volume'])) + agar_plate_weight.append(float(row['plate_weight'])) + + # print(f"{plate_locations},{source_wells},{destination_wells},{spotting_volume}") + csv_parameters = collections.namedtuple("csv_parameters", ["plate_locations", "source_wells", "destination_wells", "spotting_volume", "agar_plate_weight"]) + + return csv_parameters(plate_locations, source_wells, destination_wells, spotting_volume, agar_plate_weight) + +def agar_height(agar_plate_weight, just_plate, agar_density,spotting_height): + bottom_area = math.pi*(83.5/2)**2 + agar_weight = agar_plate_weight - float(just_plate) + agar_height = agar_weight/(bottom_area*agar_density) + spotting_height = agar_height + spotting_height + print(agar_weight) + print(spotting_height) + + return spotting_height + +# run protocol +def run(protocol: protocol_api.ProtocolContext): + """ + Main function for running the protocol. + """ + + params = get_parameters(parameters_json) # load the parameters from the json file + csv_params = read_csv_file(csv_file) + + # loading hardware and labware + pipette_tipracks = [protocol.load_labware(load_name=params["pipette_tiprack_name"], location=i) for i in params["pipette_tiprack_slots"]] + pipette = protocol.load_instrument(instrument_name=params["pipette_name"], mount=params["pipette_mount"], tip_racks=pipette_tipracks) # p20 pipette + + # source plate located in the thermocycler + thermocycler_mod = protocol.load_module("thermocycler") # thermocycler module, takes location 7,8,10,11 + transformation_plate = thermocycler_mod.load_labware(params["transformation_plate_name"]) # plate where transformations take place, loaded onto thermocycler module + + # Extract the plate locations into a list + agar_plates = [protocol.load_labware(load_name=params["agar_plate_name"], + location=slot, + label=f"Agar Plate {str(i+1)}") + for i, slot in enumerate(csv_params.plate_locations)] + + # protocol.comment(f"{agar_plates}") + thermocycler_mod.open_lid() + ######### SPOTTING ########## + for plate, source, destination, volume, weight in zip(agar_plates, csv_params.source_wells, csv_params.destination_wells, csv_params.spotting_volume, csv_params.agar_plate_weight): + pipette.well_bottom_clearance.dispense = 1 + pipette.pick_up_tip() + pipette.mix(repetitions=3, volume=5, location=transformation_plate[source], rate=2) + pipette.aspirate(volume=volume + params["dead_volume"], location=transformation_plate[source], rate=2) + pipette.well_bottom_clearance.dispense = agar_height(weight, params["plate_weight"], params["agar_density"], params["spotting_height"]) + pipette.dispense(volume=volume, location=plate[destination], rate=4) + protocol.delay(seconds=5) + pipette.drop_tip() \ No newline at end of file diff --git a/OT2-setup/setup/protocol-templates/transformation-template.py b/OT2-setup/setup/protocol-templates/transformation-template.py new file mode 100644 index 0000000..316fb09 --- /dev/null +++ b/OT2-setup/setup/protocol-templates/transformation-template.py @@ -0,0 +1,166 @@ +from opentrons import protocol_api +import json +import csv +import collections + +metadata = { + "apiLevel": "2.13", + "protocolName": "E. coli heatshock transformation", + "description": "OT-2 protocol for standard E. coli heatshock transformation.", + "author": "Martyna Kasprzyk", +} + +def read_csv_file(csv_file): + + csv_data = csv_file.splitlines()[1:] # Discard the blank first line. + csv_reader = csv.DictReader(csv_data) + + # if multi channel + seen_numbers = {} + result_rows = [] + + for row in csv_reader: + well = row['dna_well'] + letter, number = well[0], well[1:] + + # Check if the number is already associated with a different letter + if number in seen_numbers and seen_numbers[number] != letter: + continue + + result_rows.append(row) + seen_numbers[number] = letter + + cells_source_wells = [] + cells_volume = [] + dna_source_wells = [] + dna_volume = [] + soc_source_wells = [] + soc_volume = [] + transformation_well = [] + + for row in result_rows: + cells_source_wells.append(row['cells_well']) + cells_volume.append(int(row["cells_volume"])) + dna_source_wells.append(row['dna_well']) + dna_volume.append(int(row["dna_volume"])) + soc_source_wells.append(row['soc_well']) + soc_volume.append(int(row["soc_volume"])) + transformation_well.append(row["transformation_well"]) + + csv_parameters = collections.namedtuple("csv_parameters", ["cells_source_wells", "cells_volume", "dna_source_wells", "dna_volume", "soc_source_wells", "soc_volume", "transformation_well"]) + + return csv_parameters(cells_source_wells, cells_volume, dna_source_wells, dna_volume, soc_source_wells, soc_volume, transformation_well) + + +def get_parameters(json_file: str) -> dict: + """ + This function parses the json file with the parameters for the experiment and returns them as a dictionary. + """ + parameters = json.loads(json_file) # load and parse the paraemter json file + return parameters + +def run(protocol: protocol_api.ProtocolContext): + """ + Main function for running the protocol. + """ + + params = get_parameters(parameters_json) # load the parameters from the json file + csv_params = read_csv_file(csv_file) + + # loading hardware and labware + source_plate = protocol.load_labware(params["dna_plate_name"], params["dna_plate_slot"]) # plate containing dna to be transformed + thermocycler_mod = protocol.load_module("thermocycler") # thermocycler module, takes location 7,8,10,11 + transformation_plate = thermocycler_mod.load_labware(params["transformation_plate_name"]) # plate where transformations take place, loaded onto thermocycler module + + pipette_1_tipracks = [protocol.load_labware(load_name=params["pipette_1_tiprack_name"], location=i) for i in params["pipette_1_tiprack_slots"]] + pipette_1 = protocol.load_instrument(instrument_name=params["pipette_1_name"], mount=params["pipette_1_mount"], tip_racks=pipette_1_tipracks) # p20 pipette + + pipette_2_tipracks = [protocol.load_labware(load_name=params["pipette_2_tiprack_name"], location=i) for i in params["pipette_2_tiprack_slots"]] + pipette_2 = protocol.load_instrument(instrument_name=params["pipette_2_name"], mount=params["pipette_2_mount"], tip_racks=pipette_2_tipracks) # p300 pipette + + # loading liquid handling settings + pipette_2.flow_rate.aspirate = 10 # aspirate speed of the pipette + pipette_2.flow_rate.dispense = 10 # dispense speed of the pipette + + ########## HEAT-SHOCK TRANSFORMATION ########## + protocol.comment("Starting heat-shock transformation.") + protocol.set_rail_lights(True) + + # step 1: Preheat the module and open lid. + thermocycler_mod.set_block_temperature(temperature=params["init_temp"]) + thermocycler_mod.open_lid() + + # step 2: Transferring competent cells into the transformation plate. + protocol.pause("Put plate on the thermocycler module and click 'resume'.") # wait for operator to put the plate + + pipette_2.distribute(volume=csv_params.cells_volume, # volume of competent cells to be transferred + source=[source_plate.wells_by_name()[well] for well in csv_params.cells_source_wells], # transfer from the specified well in the resevoir containing competent cells + dest=[transformation_plate.wells_by_name()[well] for well in csv_params.transformation_well], # transfer to transformation plate in the thermocycler + mix_before=(1,50)) # resuspend the competent cells once before transfering into the transformation plate with the total volume to be trasfered, volume not specified sets the default to the max volume of pipette + + # step 3: Transfer DNA into wells of the transformation plate. + pipette_1.well_bottom_clearance.aspirate = 0.5 # aspiration height of the pipette (when volume of DNA is low) + + for i in zip(csv_params.dna_source_wells, csv_params.transformation_well, csv_params.dna_volume, csv_params.cells_volume): + pipette_1.pick_up_tip() + pipette_1.well_bottom_clearance.aspirate = 0.5 + pipette_1.aspirate(volume=i[2], location=source_plate.wells_by_name()[i[0]]) + pipette_1.well_bottom_clearance.aspirate = 1 + pipette_1.dispense(volume=i[2], location=transformation_plate.wells_by_name()[i[1]]) + mixing_volume = (i[2]+i[3])/2 + pipette_1.aspirate(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + pipette_1.dispense(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + pipette_1.aspirate(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + pipette_1.dispense(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + pipette_1.blow_out(location=transformation_plate.wells_by_name()[i[1]]) + pipette_1.move_to(transformation_plate.wells_by_name()[i[1]].bottom()) + pipette_1.drop_tip() + + # step 4: Close the thermocycler lid and cool the thermocycler down for specified temperature and time, deafult: 4 degrees celcius and 20 minutes + thermocycler_mod.close_lid() + thermocycler_mod.set_block_temperature(temperature=params["init_temp"], + hold_time_minutes=params["init_time"]) + + # step 5: Perform heat-shock transformation for specified temperature and time, deafult: 42 degrees celcius and 1 minute + protocol.comment("Starting heat-shock transformation.") + thermocycler_mod.set_block_temperature(temperature=params["heat_temp"], + hold_time_seconds=params["heat_time"]) + + # step 6: Cool down thermocycler for specified temperature and time, default: 4 degrees celcius and 2 minutes. + protocol.comment("Cool down thermocycler to 4C post heatshock") + thermocycler_mod.set_block_temperature(temperature=params["cool_temp"], + hold_time_minutes=params["cool_time"]) + + pipette_2.flow_rate.aspirate = 15 # aspirate speed of the pipette + pipette_2.flow_rate.dispense = 15 # dispense speed of the pipette + + # step 7: Open the thermocycler lid and transfer SOC media to transformed cells. + thermocycler_mod.open_lid() + + for i in zip(csv_params.soc_source_wells, csv_params.transformation_well, csv_params.soc_volume, csv_params.dna_volume, csv_params.cells_volume): + pipette_2.pick_up_tip() + pipette_2.aspirate(volume=i[2], location=source_plate.wells_by_name()[i[0]]) + pipette_2.dispense(volume=i[2], location=transformation_plate.wells_by_name()[i[1]]) + mixing_volume = (i[2]+i[3]+i[4])/2 + for _ in range(3): + pipette_2.aspirate(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + pipette_2.dispense(volume=mixing_volume, location=transformation_plate.wells_by_name()[i[1]]) + + pipette_2.blow_out(location=transformation_plate.wells_by_name()[i[1]]) + pipette_2.move_to(transformation_plate.wells_by_name()[i[1]].bottom()) + pipette_2.drop_tip() + + # step 8: Close the thermocycler lid and heat up both thermocycler block and lid for specified temperature and time, default: 37 celcius degrees and 60 minutes + thermocycler_mod.close_lid() + thermocycler_mod.set_lid_temperature(temperature=params["inc_temp"]) + thermocycler_mod.set_block_temperature(temperature=params["inc_temp"], + hold_time_minutes=params["inc_time"]) + protocol.comment("Starting incubation.") + protocol.set_rail_lights(False) + + # step 9: Finish incubation and deactivate the thermocycler module. + protocol.comment("Incubation finished.") + thermocycler_mod.deactivate_lid() + thermocycler_mod.deactivate() + + protocol.comment("Run complete!") \ No newline at end of file diff --git a/parameters.json b/parameters.json deleted file mode 100644 index e69cae5..0000000 --- a/parameters.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "transformations_n":24, - "dna_volume":2, - "cc_volume":20, - "soc_volume":178, - "competent_cells_well": "H12", - "init_temp":4, - "init_time":20, - "heat_temp":42, - "heat_time":1, - "cool_temp":4, - "cool_time":2, - "inc_temp":37, - "inc_time":60, - "spot_volume":5, - - "dna_plate_loadname":"armadillo_96_wellplate_200ul_pcr_full_skirt", - "dna_plate_slot":2, - "reservoir_loadname": "usascientific_96_wellplate_2.4ml_deep", - "reservoir_slot":3, - "transformation_plate_loadname":"armadillo_96_wellplate_200ul_pcr_full_skirt", - "agar_plate_loadname":"nunc_singlewell_plate_90ml_4x6_grid", - "agar_def_json": "nunc_singlewell_plate_90ml_4x6_grid.json", - "agar_max_wells_n":24, - "agar_slot":[1], - "p20_tiprack_loadname":"opentrons_96_tiprack_20ul", - "p20_tiprack_slot":6, - "p20_name":"p20_single_gen2", - "p20_mount":"right", - "p300_tiprack_loadname":"opentrons_96_tiprack_300ul", - "p300_tiprack_slot":9, - "p300_name":"p300_multi_gen2", - "p300_mount":"left", - - "dispense_rate":60, - "aspirate_rate":60, - "agar_dispense_height":10.2, - - "test_dispense_height":false, - "agar_incubation":false, - "temp_mod_slot":4, - "agar_incubation_temp":37 -} \ No newline at end of file