Oct 22, 2025
  • 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;
  • 2Centro Nacional de Biotecnología (CNB-CSIC)
Icon indicating open access to content
QR code linking to this content
Protocol CitationAna Mariya Anhel, Lorea Alejaldre, Ángel oñi-Moreno 2025. OT-2 Counter-Selection. protocols.io https://dx.doi.org/10.17504/protocols.io.5qpvor5xdv4o/v4Version created by Biocomputation Lab
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: June 05, 2024
Last Modified: October 22, 2025
Protocol  Integer ID: 101231
Keywords: well plates with different antibiotic, selecting bacterial variant, throughput workflow for the genotypic characterization, well format plates with molecular biology grade water, transposon insertion library variant, bacterial variant, different antibiotic, media with different antibiotic, laboratory this protocol, genotype, genotypic characterization, bacterial stock, subsequent pcr, different fluorescence value, samples this protocol, molecular biology grade water, laboratory
Funders Acknowledgements:
Comunidad de Madrid
Grant ID: Y2020/TCS-6555,2019-T1/BIO-14053
MCIN/AEI
Grant ID: CEX2020-000999-S,PID2020-117205GA-I00, PID2023-152470NB-I00, CNS2022-135951
ERC
Grant ID: 101044360
Abstract
This protocol is meant to select samples from one or more source plate(s) that has 2 different selecting conditions: one condition gives higher values and the other lower values (i.e different fluorescence values or OD600nm values to indicate growth/no growth). From these selected samples this protocol creates final plates with given reactive(s) (i.e media with different antibiotics or inductors) and inoculates samples from a source plate. In our laboratory this protocol has been used as part of the "High-throughput workflow for the genotypic characterization of transposon insertion library variants" also available in protocols.io to select variants to keep as glycerol stock and perform subsequent PCRs to assign a genotype. In particular, this protocol is used for selecting bacterial variants grown in two 96-well plates with different antibiotics by measuring OD600nm after overnight growth. Bacterial variants are selected based on growth/no growth and inoculated in final plates.
Final plates consist of 96-well format plates with molecular biology grade water to perform subsequent PCR on selected samples and 2 stock plates containing 30% glycerol to perform bacterial stocks of selected samples.

To run this protocol a python script for an Opentrons OT-2 robot and an excel file with several variables are needed . This protocol is a set of instructions or description of the LAP repository entry LAP-ColonyCounterSelection-OT2-2.0.0
You can find the script and complementary information for this specific version of the protocol in this LAP entry link and GitHub Link to LAP entry documents

The major changes from previous version are:
  • Change of name variable API Name Rack 15mL Falcon Reactives which is called now API Name Rack Falcon Reactives
  • The program now accepts falcon tubes and tube racks of 15ml or 50ml. It does not accept mix tube racks.
  • Description of robot and protocol setup in a separate protocols.io entry (Setting and Customizing OT-2 for LAP Entries)
  • Sheets that corresponds to the map of values to compare now need to have the name of the rows and columns of the source labware
Guidelines
This protocol was developed with python 3.7.1, OT App Software Version 6.3.1 and 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 and numpy (1.15.1)

It has been tested with cultures from Pseudomonas putida KT2440 as part of a counter-selection step in the High-throughput workflow for the genotypic characterization of transposon library variants.
30% glycerol and water have been successfully dispensed using this protocol.

The maximum number of 96-well plates per run given 1 source plates, 1 pipette and replacement of the tiprack set as True is 8 final plates (using 1 tip rack and 1 tube rack for falcons tubes).
Materials
Software

  • Python 3.7.1
  • opentrons software version 7.0.2
  • python packages: opentrons (7.0.2), pandas (0.25.3), openpyxl (3.1.2), numpy(1.15.1), math, random
  • OT-App
  • Excel


OT-2 Labware

  • Opentrons Tip racks
Equipment
Opentrons 96 Tip Rack 300 µL
NAME
Tip rack
TYPE
Opentrons
BRAND
-
SKU
LINK

Equipment
Opentrons 96 Tip Rack 20 µL
NAME
Tip rack
TYPE
Opentrons
BRAND
-
SKU
LINK

  • 96-well plates
Equipment
96-well plates, flat bottom, non treated
NAME
Cell culture plates
TYPE
VWR
BRAND
734-2781
SKU
LINK

  • Opentrons Falcon Tube Rack
Equipment
Opentrons 15 Tube Rack with Falcon 15 mL Conical
NAME
OT Tube Rack
TYPE
Opentrons
BRAND
-
SKU
LINK

  • 15mL Falcon tubes


Equipment
Equipment
OT-2
NAME
Liquid handler
TYPE
Opentrons
BRAND
OT-2
SKU

Equipment
HEPA Module
NAME
Opentrons
BRAND
OT-2-HEPA
SKU
LINK

Equipment
Single Channel Electronic Pipette (GEN2) 300uL
NAME
Opentrons Pipette
TYPE
Opentrons
BRAND
-
SKU
LINK

Safety warnings
It is important to use HEPA module to work in sterility
Before start
Note that this protocol needs 2 values to do a selection for each source plate
Files Preparation
Preparing Customized Template

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

Here we attach a template of the variable file with several sheets and a PDF file explaining each variable:

  1. GeneralVariables: variables related mainly to the labware that is going to be used
  2. PipetteVariables: variables related to the pipettes that are going to be used
  3. PerPlateVariables: variables related to the specifications of each source plate
  4. Sheet(s) for comparable values (OD, fluorescence, etc): values that will be compared against the threshold established in the PerPlateVariables sheet -> Not in the template but should be present in the final file

Download TemplateVariablesCounterSelection.xlsxTemplateVariablesCounterSelection.xlsx
Download CounterSelectionInstructionsv200.pdfCounterSelectionInstructionsv200.pdf

Note
The most updated Excel template can be found in the LAPrepo page with all the available entries

Fill the template with the corresponding values
Store it with the name VariablesCounterSelection.xlsx

Note
The file should be spelt exactly VariablesCounterSelection.xlsx or the Python script won't work correctly


Setting the robot
Prepare the system of the robot to run the protocol

For this protocol to work we need to transfer the VariablesCounterSelection.xlsx to the directory /data/user_storage of the OT system that we will use to perform the protocol

As well, if we are using custom labware we need to upload it to the OT App and send it to the directory /data/labware/v2/custom_definitions/custom_beta if the labware is not there yet.

Finally, we need to make sure the package openpyxl is installed in the robot system

We can do this entire step by following the protocol Setting and Customizing OT-2 for LAP Entries with the specifications given in the text above
Protocol
Setting and Customizing OT-2 for LAP Entries
CREATED BY
Biocomputation Lab

Running Protocol
Load script in OT-App

Now that we have transferred the variable files to the robot, we can load the script and run it in the selected robot

Note
This whole step has been developed and tested with version 7.0.2 of the OT-App

Indications may vary from version to version of the opentrons App and the version of the script.

Software
Opentrons App
NAME
Windows >=10, Mac >=10 , Ubuntu >=12.04
OS
Opentrons
DEVELOPER

Load the script in the OT App

Protocols -> Import -> Drag Python script

Download CounterSelectionScript_v200.pyCounterSelectionScript_v200.py

The name of the python file is user's choice, it will work with any name in the app.

Note
The last script version can be found at https://github.com/BiocomputationLab/LAPrepository/tree/main/LAPEntries. The name of the directory should be LAP-ColonyCounterSelection-OT2 followed by the version.

As well we can find the latest version of the script at https://www.laprepo.com/repository/ with the same name as in GitHub

Software
LAP Repository
NAME
https://biocomputationlab.com/
DEVELOPER
REPOSITORY

Note
The App with version 7.0.2 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 file VariablesCounterSelection.xlsx is -> 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. A lot of errors are contemplated already and have a specific message that gives a hint of what could have gone wrong.

Note
The volume of the initial samples is established to be 90% of the max volume of the well, but it is only a recommendation, just make sure that there is enough volume to transfer to all the final plates.

On the other hand, the volume of the reagents is exactly what is needed, so it is suggested to pour always more to take into account the error of pipetting

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

Note
Check the Opentrons page https://support.opentrons.com/s/article/Cleaning-your-OT-2? for more information about cleaning the OT-2 robot with the proper materials


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 4 parts:

  1. Select colonies that comply with the selected parameters (threshold)
  2. Distribute reagents to respective plates (if set in the input file)
  3. Distribute to all plates the selected samples
  4. Generate identity maps (to be exported in the following steps)

Expected result
Several plates, with different reagents but the same samples in the same order, in addition to a file with all the map(s) (XLSX file) located in the folder /data/user_storage that will give the position in these plates with their identifiers (location in the source plate)

This set of results will be given for each source plate the user has provided

After-Running
Retrieve labware from the OT
Import map(s) from robot


There will be 1 final file called [Name Final File Maps].xlsx with as many sheets as source plates. Each sheet will have the name set in the variable 'Final Map Name' for the corresponding source plate

To retrieve it, we can Linked Protocol and reproduce partially the protocol given there it by transferring the files from the robot to the computer.

The map will be in the directory /data/user_storage

Take in account that files overwrite, so if you have given the same name to the final map in 2 consecutive runs, you will get only the results of the last run

Expected result
The map contains the identity (position in original plate) of the samples selected in the places that they have been placed/distributed being the name of the column as the name of the plate


Example
1h 53m
We want to select the samples that have an OD600nm higher than 0.5 in the Antibiotic Transposition genome file and have an OD600nm lower than 0.5 in the Antibiotic ampicillin plasmid file in one of the source plates and the same selection in the second one but with the value 0.6

After selecting the samples, we want to transfer those samples to final plates that will have different media

We will use a computer with a Windows 10 system
Excel template that we can find filled and saved with the name VariablesCounterSelection.xlsx

Download VariablesCounterSelection.xlsxVariablesCounterSelection.xlsx
10m
Upload custom labware to app and robot system

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/)

Download vwrblueprintdepth105_96_wellplate_390ul.jsonvwrblueprintdepth105_96_wellplate_390ul.json11.7KB

We upload it to the opentrons app (make sure that is in the robot app) and the robot system as stated in the protocol in step Setting and Customizing OT-2 for LAP Entries

Download vwrblueprintdepth105_96_wellplate_390ul.zipvwrblueprintdepth105_96_wellplate_390ul.zip
2m
Send 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 downloaded from the step (I named it ColonyScreening_example_v200.py) to the OT-App

Download ColonyScreening_example_v200.pyColonyScreening_example_v200.py

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

ColonyScreening_example_v200.py -> Start setup -> Select robot in which we are going to run the protocol

If we do not have any errors, the output should look similar to the following pictures

Labware and liquid set-up layout

Volumes of the needed liquids 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 taking into account the notes in step Notes

5m
Start run

Expected result

Final layout of source and final plates in the run

Example of the content of A3 in the labware Selected Samples from 'Library ABC' with Medium3 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 image by the grey wells, and we can see the info of the plate and the media in the name of the labware.

1h 22m
Retrieve labwares from the OT
5m
Retrieve the final maps, in this case, they will be in a file called final_maps_CS_Example.xlsx, of the IDs of the samples that fulfilled the requisites that have the names set in the variable file by us.
This file has 2 sheets, one per source plate, called mapSelectedColoniesABC and mapSelectedColoniesDEF for the columns Library ABC and Library DEF, respectively.

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

Download final_maps_CS_Example.xlsxfinal_maps_CS_Example.xlsx

For more information about how to retrieve files from the robot Linked Protocol
2m
Protocol references
pBLAM1-x: standardized transposon tools for high-throughput screening (Synthetic Biology) https://doi.org/10.1093/synbio/ysad012

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