1Centro de Biotecnología y Genómica de Plantas, Universidad Politécnica de Madrid (UPM)-Instituto Nacional de Investigación y Tecnología Agraria y Alimentaria (INIA/CSIC), Madrid, Spain
License: This is an open access protocol distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Protocol status: Working
We use this protocol and it's working
Created: October 03, 2023
Last Modified: December 22, 2023
Protocol Integer ID: 88734
Keywords: automation, opentrons, OT-2, media dispensing, culture inoculation
Funders Acknowledgement:
Comunidad de Madrid
Grant ID: Y2020/TCS-6555, 2019-T1/BIO-14053
MCIN/AEI
Grant ID: CEX2020-000999-S, PID2020-117205GA-I00
European Research Council
Grant ID: 101044360
Abstract
This protocol is meant to distribute reactive(s) into well plates with a single channel pipette, and then transfer culture samples from source plate(s) to these plates with a multi-channel pipette.
This protocol uses a python script for an Opentrons 2 robot and an excel file containing the required variables to set the number of samples, volumes of transfer, type of plates, etc...
In our laboratory, this protocol has been used as part of the "High-throughput workflow for the genotypic characterization of transposon library variants" also available in protocols.io to prepare cultures plates to perform a subsequent counter-selection
This protocol is a set of instructions or description of the LAP repository entry LAP-CellMediaInoculation-OT2-1.0.0
Guidelines
This protocol was run in a python 3.7.1, OT App Software Version 6.3.1 and opentrons API level version 2.14 in a Linux 4.14.74 system (these are the OT-2 specifications). In the script several packages are used: pandas (0.25.3), openpyxl (3.1.2), math, random
It has been tested with cultures from Pseudomonas putida KT2440 as part of the High-throughput workflow for the genotypic characterization of transposon library variants. LB and M9-citrate media with either kanamycin, gentamicin, streptomycin or ampicillin haven been successfully run.
The maximum number of 96-well final plates per run given 1 source plate, 2 different types of tip racks (with the replacement of the tip rack set as True) is 7 final plates (use 1 falcon tube rack and 2 tip racks)
Materials
Software
Python 3.7.1
opentrons software version 6.3.1
python packages: pandas (0.25.3), openpyxl (3.1.2), math, random
It is important to use HEPA module to work in sterility
Before start
Note that the source and final 96-well plates will follow the same order (If the wells of a column of the source plates has empty wells the multichannel will aspirate in that well) but media will not be dispensed in those corrresponding final wells
Files Preparation
Files Preparation
Preparing Customized Template
Preparing the template (a .xlsx) with the specific variables for each experiment and a .pdf that contains the instructions on how to fill the template
Here we attach one Excel with several sheets:
GeneralVariables: variables related mainly to the labware that is going to be used
PipetteVariables: variables related to the pipettes that are going to be used
PerPlateVariables: variables associated with the specifications of each source plate
Template-VariablesPlateIncubation.xlsx17KB
InoculationInstructions.pdf179KB
Fill the template with the corresponding values
Store it as VariablesPlateIncubation.xlsx
Note
The file should be spelt precisely as VariablesPlateIncubation.xlsx or the Python script won't read it
Transferring file to Robot
Transfer the VariablesPlateIncubation.xlsx to the directory /data/user_storage of the OT system that we will use to perform the protocol.
Note
Before transferring any file to the OT, we need to know the IP of the robot.
This can be obtained in the Networking section of the Device that we are going to
In this tab, you can see 2 types of IP; one is shown if both the robot and you are connected to the same Wifi, and the other is shown if the computer and the robot are connected via USB. Both connections can be used for this step.
Note
An OT-key should have been previously generated to connect to the robot, and it is done with the ssh-keygen command and transferring the public key to the OT.
You could face difficulties transferring files in the MacOS Ventura (13) and Sonoma (14). These problems can be solved by adding the argument -O (uppercase o) to the command
There are several ways to send files from a Windows to a Linux (for example, with a virtual machine or Windows Powershell in the latest versions of Windows).
Go to File -> Site Manager -> New Site -> Change Protocol to SFTP. Then, introduce in Host the OT IP, change Logon Type to key file, change User to root and give the directory where the OT-key file is. The final window should look something like the following picture
Example of setting the FileZilla to transfer files from Windows (our computer) to Linux (OT)
Then press Connect, and we will have a connection between our computer and the robot.
After this connection, we should be able to transfer VariablesPlateIncubation.xlsx (in our computer) to the directory /data/user_storage in the robot.
This method of transferring files can also be done in Linux and MacOS.
Note
Take into account that the IP of the robot could change, so it is possible that the host in these connections will need to be changed from time to time.
Adding the custom labware
There is only a need to do this step when the labware you are using is not OT official or included in the OT app.
In the OT app, we need to perform the following route: Labware -> Import -> Choose File -> Select file we have created in step 3.1
Expected result
After uploading the labware, you should be able to see the new labware in the Labware tab of the OT App. All custom labware can be found more quickly in the category Custom Labware.
Transfer labware files to the robot
If you are using the entry LAP-CellMediaInoculation-OT2-1.0.0and custom labware,an additional step is needed, which is transferring a folder with the custom labware.
We need to create for our custom labware a folder with the API name containing the description file (.json) called 1.json and then transfer that folder to the robot's folder /data/labware/v2/custom_definitions/custom_beta in a similar way as in the Step 2 but with the difference that is a directory that needs to be transferred and not a file.
We do not need to execute this part every time the protocol is used, only when that labware is not included in the OT official labware and these directories are not in the robot.
Prepare Robot OS
Prepare Robot OS
Install needed packages
This script needs the package openpyxl, which is not installed by default in the OT-2 robots
Note
This step is only needed if the package is not installed in the robot.
If the package is not installed, an error will appear when running the script in the robot. This error will appear while simulating the script in the app, but you can ignore it.
Connect to the robot
go to step #2 to find the IP of the robot in which you want to run the script
To connect to the robot, you can do it via ssh with the following command
Command
Connect to Linux based OT via ssh
ssh -i [path ot_key] root@[Robot_IP]
In Windows, you can do this command in Windows Powershell
Expected result
If the connection has been successful, you should obtain a screen similar to the following image
Drawing obtained when entering an OT-2 system
Install the package
Once inside the robot's system, you need to run the following command
The App with version 6.3.1 analyzes your protocol before setting a robot to run, so the labware will not be shown before assigning the protocol to a specific robot when you import it into the App.
Select Robot to Perform Script
Click in the protocol -> Start setup -> Choose the OT where the fileVariablesPlateIncubation.xlsxis -> Proceed To Setup
After clicking on Proceed to Setup, you should obtain the labware positions in the Labware tab and the reagents, with their corresponding volume, in the Liquids tab.
In case the protocol with the set variables cannot run, an error will occur during the run. Many errors are contemplated already and have a specific message that hints at what could have gone wrong.
Expected result
A labware setup should look like the following image, where you can find the initial and final plates, the Falcon labware to store the reagents and the corresponding tips
Labware Set-up example of the Incubation Protocol
A liquid setup should look like the following image, where you can find the samples in the initial plates and the reactions in the 15-mL tube labware
Liquid Set-up Example of the Incubation Protocol
Note
The volume of the initial samples is established to be 90% of the max volume of the well, but this is only a recommendation. Justmake sure that there is enough volume to transfer to all the final plates.
On the other hand, the volume of the reagents is precisely what is needed, so it is suggested always to add more to consider the pipetting error.
Note
It is recommended that you perform a labware position check.
You can do it with test plates after loading the script but before cleaning the surface. That way, you reduce the probability of contamination (using the test plates and labware) and pipetting errors (position check).
Run Protocol in OT
Make sure the needed calibrations are done
Pipettes, tip racks and tip length calibrations need to be done for the items used in this run.
Labware position check is performed (if needed)
Clean the surface of the robot with 70% ethanol to clean and disinfect the surfaces
Set the labware and reagents as shown in the OT-App
Start Run
The procedure that the robot is going to do is mainly divided into 2 parts:
Distribute each reactive to the final plate(s) with the single-channel pipette
Distribute samples to the final plate(s) with the multi-channel pipette
Expected result
One or more plates with different reagents and same samples as set in the input variable file
This set of plates will be given for each source plate the user has provided with the reagents the user has provided, as well
After-Running
After-Running
Retrieve labware from the OT
Example
Example
1h
We want to transfer samples from 2 source plates, with 96 and 50 samples, to different antibiotic plates, one per antibiotic and source plate.
The first one will be mixed with Ampicillin and Kanamycin. The second plate will be mixed with Ampicillin and Gentamycin.
We will use a computer with a Windows 10 system.
Excel template that we can find go to step #1 filled with the name VariablesPlateIncubation.xlsx
VariablesPlateIncubation.xlsx17KB
10m
Upload custom labware to app
We are using a custom labware called vwrblueprintdepth105_96_wellplate_390ul that has been created with the labware creator that opentrons offers (https://labware.opentrons.com/create/)
vwrblueprintdepth105_96_wellplate_390ul.json11KB
Upload it to the labware and ensure it is loaded in the app.
List of custom labware recorded in the Opentrons App
1m
Because we are using version 1.0.0 of the script in this example, we will transfer the directory of the labware as well (here we have attached a zip, but it is the folder that must be transferred, not the zip)
vwrblueprintdepth105_96_wellplate_390ul.zip1KB
Command
Transferring the used custom labware to OT (Linux)
Export the variable file to the /data/user_storage folder in the robot.
command line window with scp commands to transfer the variables .xlsx from our computer to the OT-2
2m
Import the script that we have downloPythonaded from go to step #5.1 (I named it Example-PlateIncubation.py) to the OT-App
Example-PlateIncubation.py45KB
Result of importing the Python script in the OT-App
As we can see, we have an error, but that is programmed because the script is meant to work in the robot but not in your computer
30s
Run the protocol in the robot that we have transferred the Excel file
Example-PlateIncubation.py -> Start setup -> Select the robot in which we are going to run the protocol
If we do not have any errors, the output should look like the following pictures.
Labware and liquid set-up layout
Volumes of the antibiotics needed to perform the protocol
1m
Turn the HEPA filter module
30s
Clean platform of the robot that we are going to perform the protocol
2m
Prepare all reagents and labware in the places the App is showing and take into account the notes in step go to step #5.2 Notes
5m
Start Run
Expected result
Final labware layout in which the grey wells are a mix of the correspondent reactive with the sample
Example of the content of A1 in the labware Sample Plate 'Plate 1' with Km Slot 4
Here, we will obtain the mix between the volume of media and the samples set in the variable file in the final plates. These positions are seen in the first image by the grey wells, and we can see the info on the plate and the media in the name of the labware and an example of the composition of 1 well in the second picture.
The Laboratory Automation Protocol (LAP) Format and Repository: A Platform for Enhancing Workflow Efficiency in Synthetic Biology (ACS Synth. Biol.) https://doi.org/10.1021/acssynbio.3c00397