OT-2 PCR sample preparation protocol
Ana Mariya Anhel, Lorea Alejaldre, Ángel Goñi-Moreno, Manuel Gimenez
Disclaimer
Abstract
This protocol is meant to perform samples preparation of PCR plates for several primer sets to the same samples, i.e, we will have for all the selected samples (we can set the initial well and number of samples) of all source plates the master mix with different primer sets (combination of primers, water and polymerase mix) in the final plates.
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, number of primers per set, 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 PCR samples
Before start
Note that if more than one primer set wants to be used in the same final plate, the protocol should be re-run to create the new PCR master mix, the new starting position in the final plate should be specified.
Steps
Files Preparation
Preparing Customized Template
Preparing the template (a .csv) with the specific variables for each experiment.
Here we attach one excel with several sheets:
- Template to use in protocol
- Explanation of each variable
- Several examples
Fill the template with the corresponding values
Store it as a comma-separated values file (csv) with the name Variables-PCRs-OT.csv (if the file has another name the python script will not work).
Transferring csv to Robot
Transfer the Variables-PCRs-OT.csv to the directory /data/user_storage of the OT system that we are going to use to perform the protocol.
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
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

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-PCRs-OT.csv (in our computer) to the directory /data/user_storage in the robot.
Adding the custom labware
Creation of .json file
The description file can be obtained by describing the labware dimensions in https://labware.opentrons.com/create/
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
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
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)
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/PCRsamplePreparation (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)
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
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
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:
- (Optional) Warnings
- General Information: General Information: pieces of information that are extracted from variables in the variables file and are only remainders
- Deck Labware Position: this information will be provided by the OT as well
- Coldblock Reactive Positions: for each coldblock that is needed (with 12 positions) we have a table with the reactives and their respective volumes
In the case that something went wrong, the variables are not consistent 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
Setting Labware
Wipe the surface of the deck with 70% ethanol to clean and desinfect the surfaces
Set the respective labwares in the slots as the OT App and the instruction file set
Set the different reactives in their respective coldblock positions, as stated in the instruction file
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.
Load the script
Protocols > Import > Drag the python script
Select Robot to Perform Script
Click in the protocol > Run Protocol > Choose the OT where the file Variables-PCRs-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

Run Protocol in OT
Make sure the needed calibrations are done
Labware position check is performed (if needed)
Start Run
The procedure that the robot is going to do is mainly divided in 3 parts:
- Creation of primer sets combining water, primer(s) and polymerase
- Mixing and distributing the primer set(s)
- Transfering samples to the corresponding wells of all set of primers
After-running
Retrieve labware from the OT
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_PositionSlot.csv
To retrieve we can and reproduce it with transfering the files to the computer.
They will be in the directory /data/user_storage
Example
We want to perform a sample preparation of 56 colonies and 2 controls distributed in 2 source plates with 2 primer sets (Example 1 in the excel file in Step 1)
We will use a computer with an Ubuntu system connected via USB to the robot
Excel temple filled and exported to csv with the name Variables-PCRs-OT.csv
Retrieve labwares from the OT
Pass the scipt that I have downloaded from https://github.com/Biocomputation-CBGP/OT2/tree/main/PCRsamplePreparation (I name it PCR-example.py)

Wipe OT-2 with 70% ethanol
Load protocol labware as instructed in Step 10.6