OT-2 Media dispensing and culture inoculation protocol

Ana Mariya Anhel, Lorea Alejaldre, Ángel Goñi-Moreno

Published: 2022-10-27 DOI: 10.17504/protocols.io.q26g7yb3kgwz/v1

Abstract

This protocol is meant to distribute reactive(s) into well plates with a single channel pipette, and then transfer culture samples from a source plate to these plates with a multi channel pipette.

This protocol uses a python script for an Opentrons 2 robot and a .csv 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

Before start

Note that the source and final 96-well plates will follow the same order (If a row of the source plates has empty wells the tips for the multichannel will aspirate in that well)

Steps

Files Preparation

1.

Preparing Customized Template

Preparing the template (a .csv) with the specific variables for each experiment.

Here we attach one excel with several sheets:

  1. Template to use in protocol
  2. Explanation of each variable
  3. Several examples

Template_Variables_PlateGeneration.xlsx

1.1.

Fill the template with the corresponding values

1.2.

Store it as a comma-separated values file (csv) with the name Variables-AntibioticPlatesCreation-OT.csv

Safety information
The file should be spelled exactly Variables-SamplesMerging-OT.csv or the python script won't work.Make sure that the final csv is separated by commas, not by semicolons and that the variables have 2 quotation marks and not 6, in case they need quotation marks (these are added when going from excel to csv)

Note
In Windows 10 to change excel separator from ";" to "," you should go to Region Setings > Change date, time, or number formats > Additional settings > change List separator from ; to , Other option is opening the exported .csv file in an editor and replace all ; to , and remove the extra quotation marks

2.

Transfering csv to Robot

Transfer the Variables-AntibioticPlatesCreation-OT.csv to the directory /data/user_storage of the OT system that we are going to use to perform the protocol.

Safety information
Previous to transfering 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 use (In the OT-App > Devices > (three dots) Networking)

Here we present a summary of how to transfer the files in 3 OS: Windows, Mac and Ubuntu (applicable to most Linux)

Mac/Linux

We will use the command line with scp to transfer the file Variables-PCRs-OT.csv to the OT system.

We need to perform the following line:

#Passing Files to OT (Ubuntu)
scp -i [ot_key] [file] root@[IP_OT]:/data/user_storage

Safety information
The ot key should have been previously generated, for more info visit The ot key should have been previously generated, for more info visit https://support.opentrons.com/s/article/Setting-up-SSH-access-to-your-OT-2

Windows

There are several ways to pass files from a windows to a linux (for example with a virtual machine).

Here we will use FileZilla (https://filezilla-project.org/download.php?type=client).

Go to File > Site Manager > New Site > Change Protocol to SFTP . Then introduce in Host the OT IP, change the Logon Type to key file, change the user name to root and give the directory were the ot key is. Should look something like this

Example of setting the FileZilla to transfer files from windows (our computer) to linux (OT)
Example of setting the FileZilla to transfer files from windows (our computer) to linux (OT)

Then press connect and we will have a conection between our computer and the robot.

After this connection, we should be able to move out Variables-SamplesMerging-OT.csv (in our computer) to the directory /data/user_storage in the robot.

Note
Take in account that the IP of the robot could change, so it is possible that from time to time it will be needed to change the host in these connections.

Note
The method described for the Windows system can be done as well in Ubuntu and Mac

3.

Adding the custom labware

Note
There is only a need to do this step when a labware that you ar eusing is not OT official or your labware is not in the OT directory /data/labware/v2/custom_definitions/custom_labware

Safety information
This process/step is needed in the version 6.0.1 or below (when this protocol was developed).According to their guide, this protocol should be possible only loading the labware in the OT-App (According to their guide, this protocol should be possible only loading the labware in the OT-App (https://support.opentrons.com/s/article/Using-labware-in-your-protocols).).This bug has been reported and, hopefully, will be resolved as soon as possible. It is possible that you do not need to do this step if this error does not occur to you.

3.1.

Creation of .json file

The description file can be obtained by describing the labware dimensions in https://labware.opentrons.com/create/

3.2.

Creating description folder

We need to create for our custom labware a folder with the API name containing the description file (.json) called 1.json

3.3.

Transfer the description folder to the OT robot

We need to transfer the directory or directories created in Step 3.2

For that we need to introduce the following command (in Linux), for Windows process

#Transfering directory to OT (Linux)
scp -i [ot_key] -r [directory_custom_labware] root@[IP_OT]:/data/labware/v2/custom_definitions/custom_beta

Note
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 that we are using

4.

Simulating and getting the output (user instructions)

For more information in how to setup the ssh visit the official OT support blog (https://support.opentrons.com/s/article/Setting-up-SSH-access-to-your-OT-2)

4.1.

Passing python script

To make sure that the protocol will work with the variables we have introduced we need to run the python script in the robot with the OT simulator.

The last script version can be found at https://github.com/Biocomputation-CBGP/OT2/tree/main/AntibioticPlatesGeneration (name of this file is user's choice)

For that we can but instead of passing the variables file, we pass the python script. In this case we can transfer it to the directory /data/user_storage or we can directly pass it to the directory /root (recommended)

Note
You can do this step only once and use always the same python scriptThe only time that you need to change it is when there is an update in github, then you should download the new script version and do this step

4.2.

Simulating

We should connect to the robot via ssh

#Connect to Linux based OT via ssh (Linux)
ssh -i [ot_key] root@[Robot_IP]

Then we would move to the directory where the python script is with the cd command

Finally we are going to perform the simulation of the opentrons

#Simulate OT protocol (Linux)
opentrons_simulate -o nothing -e [name_script].py > [name_instruction_file].txt 2>&1

Note
Do not wory if it takes a little bit of time

4.3.

In case that you want to see the instruction file before the next step, you can see the instruction file with cat

#Show content file cmd (Linux)
cat [name_instruction_file].txt
4.4.

Retriving output file (user instructions)

To retrive the output from the OT system you can , replicate it but transfering the file from the OT to your computer

In this file we have 3 or more sections:

  1. (Optional) Warnings
  2. General Information: General Information: pieces of information that are extracted from variables in the variables file and are only remainders
  3. Deck Labware Position: this information will be provided by the OT as well
  4. 15mL Falcon Reactive Positions: for each Falcon tuberack that is needed (with 15 positions) we have a table with the reactives and their respective volumes

Note
It is recommended to have at least 10uL more of each reactive in each tube to make sure that the pipette does not take a bubble when aspirating

In the case that something went wrong, the variables are not consistents or there is not enough deck place to perform the experiments the instruction file will be sorter and will have a single section, Errors .

Run Protocol

5.

Setting Labware

5.1.

Wipe the surface of the deck with 70% ethanol to clean and desinfect the surfaces

Note
For more information in how to clean the robot go to the following link For more information in how to clean the robot go to the following link https://support.opentrons.com/s/article/Cleaning-the-robot-s-surfaces

5.2.

Set the respective labwares in the slots as the OT App and the instruction file set

Safety information
Make sure that the source and final A1 wells are at the left top (common mistake), and each labware fits appropierly.

5.3.

Set the different reactives in their respective falcon tuberack positions, as stated in the instruction file

Safety information
The protocol is going to aspirate from the falcon at a scpecific height which is set with the volume of the faqlcon, so make sure that you dont have a falcon with more than 1mL more than the instruction file specific volume.This way, the pipette will not end wet in the running of the protocol

6.

Load script in OT-App

Now that we have made sure that the protocol is going to work we import the python script in the OT-App.

Safety information
This whole step has been developed with version 6 of the OT-App Indications may vary from version to version

6.1.

Load the script

Protocols > Import > Drag the python script

Note
The last script version can be found at The last script version can be found at https://github.com/Biocomputation-CBGP/OT2/tree/main/AntibioticPlatesGeneration (name of this file is user's choice) (name of this file is user's choice)

Safety information
The App with version 6 analyzes your protocol before setting a robot to run, so the labware will not be shown before assigning the protocol to a specific robot.

6.2.

Select Robot to Perform Script

Click in the protocol > Run Protocol > Choose the OT where the file Variables-AntibioticPlatesCreation-OT.csv is > Proceed To Setup

After clicking in Proceed to Setup you should obtain the setup of the labware as instructed in the Deck Labware Positions section of the instructions file.

The Labware Setup tab should look similar to the following image

Example of Labware Setup for this protocol
Example of Labware Setup for this protocol

Note
It is recommended that you perform a labware position check.You can do it with test plates before cleaning the surface, that way you reduce the probability of contamination (using the test plates and labware) and pipetting errors (position check).

7.

Run Protocol in OT

7.1.

Make sure the needed calibrations are done

7.2.

Labware position check is performed (if needed)

7.3.

Start Run

The procedure that the robot is going to do is mainly divided in 2 parts:

  1. Distributing of antibiotic or reactives in respective plates
  2. Transfering samples to corresponding plates

Safety information
Make sure that the wells of the source plates are at least filled with 25µl so the pipettes can aspirate a sample

Citation
As many final plates as antibiotics per source plates introduced in the variables .csv fileWe are going to obtain 1 plate per antibiotic and source plate, there will be no combining of source plates samples

Note
The script is going to be the same so we can load it only once to the OT-App.To re-run the protocol make sure that the filled template is in the OT system and

After-Running

8.

Retrieve labware from the OT

Example

9.

We want to transfer samples from 3 source plates to different antibiotic plates, one per antibiotic and source plate (Example 2 in Template_Variables_PlateGeneration.xlsx )

We will use a computer with an Ubuntu system connected via USB to the robot

9.1.

Excel temple filled and exported to csv with the name Variables-AntibioticPlatesCreation-OT.csv

Variables-AntibioticPlatesCreation-OT.csv

9.10.

Retrieve labwares from the OT

9.2.

Export the csv to /data/user_storage

cmd window with scp commands to transfer the .csv from our computer to the OT
cmd window with scp commands to transfer the .csv from our computer to the OT
9.3.

We have never used a 96-well tissue plate labware with the API name vwrblueprintdepth105_96_wellplate_390ul, so we must pass the directory regarding this labware to the robot

cmd window with scp commands to transfer the custom labware directory from our computer to the OT
cmd window with scp commands to transfer the custom labware directory from our computer to the OT
9.4.

Pass the scipt that I have downloaded from https://github.com/Biocomputation-CBGP/OT2/tree/main/AntibioticPlatesGeneration (I named it AntibioticPlateGeneration-example.py), connect to OT computer, simulate, exit OT system, store the output in instructions_AntibioticPlateGeneration_Example2.txt and import it to the computer

cmd window with scp commands to transfer the python script from our computer to the OT
cmd window with scp commands to transfer the python script from our computer to the OT

instructions_AntibioticPlateGeneration_Example2.txt

9.5.

Prepare all reactives and labwares

Initial Labware Setup and Coldblocks setup should look like the following picture

Deck sketch with labware and reactives leyend
Deck sketch with labware and reactives leyend
Falcon Tuberack with reactives (positions and volumes)
Falcon Tuberack with reactives (positions and volumes)
9.6.

Load to OT-App the AntibioticPlateGeneration-example.py > Run > Select robot in which we are going to run the protocol

The window and tabs of the OT-App should look like the following pictures

Calibration Tab OT with Example2 variables
Calibration Tab OT with Example2 variables
Labware Setup Tab OT with Example2 variables
Labware Setup Tab OT with Example2 variables
9.7.

Turn HEPA module on and desinfect OT-2

9.8.

Load protocol labware as instructed in Step 9.6

9.9.

Run protocol

The final results should look like the following pictures

Deck reactives positions and volumes at the end of the run
Deck reactives positions and volumes at the end of the run
Falcon tuberack reactive volumes at the end of the protocol
Falcon tuberack reactive volumes at the end of the protocol

推荐阅读

Nature Protocols
Protocols IO
Current Protocols
扫码咨询