OT-2 Counter-Selection

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

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

Abstract

This protocol is meant to select the samples from 1 source plate that has been growing in different conditions and has different values for these different conditions, one condition gives higher values and the other lower values. From this selected samples this protocol create final plates with 2 types of reactives

The instructions for running this protocol are a python script for an Opentrons 2 robot and need a csv file with several variables setted making the protocol modular to reactives, volumes of transfer, type of plates, etc.

In our lab we are selecting samples by their after night OD in 2 different antibiotics and create PCR plates (with water) and stock plates (with glycerol), but it can be used with other selection characteristics as expression of GFP and with other types of reactives.

Before start

Note that this protocol can be done for one 96-well source plate at a time. In addition, it can only be performed with two selection variables (2 files with 1 condition per file in which one should be higher than a value and the other lower than this same value ).

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. Example

Template_ColonieScreening.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-ColonieScreening-OT.csv

Safety information
The file should be spelled exactly Variables-ColonieScreening-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 , Alternatively open the exported .csv file in an editor and replace all ; to , and remove the extra quotation marks

2.

Transferring csv to Robot

Transfer the Variables-ColonieScreening-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-ColonieScreening-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-ColonieScreening-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 are using 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

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.

Transferring 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/ColonySelection (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 pnly 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 
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.

Retrieving output file (user instructions)

To retrieve 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 Tuberack Reactive Positions: for each 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 .

Running 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.

Safety information
Make sure that you are placing the source plate corespondant to the Antibiotic Transposition Genome File variable, i.e, the source plate where the colonies should grow (or the file where the value of the colonies that you want to select is higher than the variable Grow OD in the Template)

5.3.

Set the different reactives in their respective coldblock 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/ColonySelection (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-ColonieScreening-OT.csv is > Proceed To Setup Variables-ColonieScreening-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 a Labware Setup for a colonie counter selection protocol
Example of a Labware Setup for a colonie counter selection 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 3 parts:

  1. Select colonies that comply with the selected parameters
  2. Distribute reactives to respective plates
  3. Distribute to all plates the selected culture samples
  4. Generate identity maps (to be exported in following steps)

Citation
Several plates, with different reactives but the same samples in the same order in adittion toa map (csv file) that will give the position in these plates with their identifiers (location in the original source plate)

Safety information
This protocol can be done only for one source plate at a timeFor more plates, re-run the script. 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

9.

Importing maps from robot

This can be done if in Step 1 the variable Optional Map was set to True

There will be as many maps as source plates with the following structure of names: VariableNameMap.csv

To retrieve we can and reproduce it with transfering the files to the computer.

They will be in the directory /data/user_storage

Citation
The maps contains the identity (position in original plate) of the samples selected in the places that they have been placed/distributed

Example

10.

We want to select the samples that have an OD600nm higher than 0.07 in the Antibiotic Transposition genome file 600nm higher than 0.07 in the Antibiotic Transposition genome file ( ODvalues_ant_library1.csv ) and have an OD600nm lower than 0.07 in the Antibiotic ampicillin plasmid file 600nm lower than 0.07 in the Antibiotic ampicillin plasmid file ( ODvalues_amp_library1.csv ). This corresponds to the example in the Template excel file in

ODvalues_ant_library1.csv

ODvalues_amp_library1.csv

10.1.

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

Variables-ColonyScreening-OT.csv

10.10.

Run protocol

The final results should look like the following pictures

Final labware and final plates (PCRs plates) compositions
Final labware and final plates (PCRs plates) compositions
Falcon tube rack reactives and their respectives volumes at the end of the running
Falcon tube rack reactives and their respectives volumes at the end of the running
10.11.

Retrieve labwares from the OT

10.12.

Retrieve the final map (in this case will be called map_lib1_exampleColonieScreening.csv ) of the IDs of the samples that fulfilled the requisites

cmd windows with the transfer of the samples map from the OT to our computer
cmd windows with the transfer of the samples map from the OT to our computer

map_lib1_exampleColonieScreening.csv

10.2.

Export the variables csv and the OD csv files to /data/user_storage

cmd window with scp commands to transfer the variables .csv from our computer to the OT
cmd window with scp commands to transfer the variables .csv from our computer to the OT
cmd window with scp commands to transfer the OD values .csv from our computer to the OT
cmd window with scp commands to transfer the OD values .csv from our computer to the OT
10.3.

We have never used the labware 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
10.4.

Pass the scipt that I have downloaded from https://github.com/Biocomputation-CBGP/OT2/tree/main/ColonySelection (I name it ColonyScreening-Example.py )

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
10.5.

Connect to OT computer, simulate, exit OT system, store the output in instructions_example_coloniescreening.txt and importing it to the computer

cmd window with connection to OT, simulation of python script, exiting and transfering .txt from OT to our computer
cmd window with connection to OT, simulation of python script, exiting and transfering .txt from OT to our computer

instructions_example_coloniescreening.txt

10.6.

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
ColdBlock with reactives (positions and volumes)
ColdBlock with reactives (positions and volumes)
10.7.

Load to OT-App the ColonyScreening-Example.py ColonyScreening-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 Example1 variables
Calibration Tab OT with Example1 variables
Labware Setup Tab OT with Example1 variables
Labware Setup Tab OT with Example1 variables
10.8.

Turn HEPA module on and wipe OT with 70% ethanol

10.9.

Load protocol labware as instructed in Step 10.6

推荐阅读

Nature Protocols
Protocols IO
Current Protocols
扫码咨询