OT-2 PCR sample preparation protocol  

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

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

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

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_PCR.xlsx

1.1.

Fill the template with the corresponding values

Safety information
Verify volume range of the OT-2 pipettes available with the volume of a single reaction.This can be a source of the errors displayed by the simulation in later steps

1.2.

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

Safety information
The file should be spelled exactly Variables-PCRs-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-PCRs-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-PCRs-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.

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)

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.

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. Coldblock Reactive Positions: for each coldblock that is needed (with 12 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 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

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.For example, the cold block needs an adapter to fit in a slot, for the coldblock used in this protocool (see Materials) you can find the adaptor in our github page For example, the cold block needs an adapter to fit in a slot, for the coldblock used in this protocool (see Materials) you can find the adaptor in our github page https://github.com/Biocomputation-CBGP/OT2/tree/main/3DPrinterLabware

5.3.

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

Safety information
Make sure that the caps of these 1.5mL eppendorfors are removed (cut them)

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/PCRsamplePreparation (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-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

Example of a Labware Setup for a PCR sample Preparation
Example of a Labware Setup for a PCR sample Preparation

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. Creation of primer sets combining water, primer(s) and polymerase
  2. Mixing and distributing the primer set(s)
  3. Transfering samples to the corresponding wells of all set of primers

Citation
One or more final plates (usually PCR plates) with the mix for each set of primers combined with the colony 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

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_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

Citation
The maps contains a table of each well in the source plate containing a list (of one or more elements) that expresses in which final plates position is that sample dispensed

Example

10.

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

10.1.

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

Variables-PCRs-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
Coldblock reactives and their respectives volumes at the end of the running
Coldblock reactives and their respectives volumes at the end of the running
10.11.

Retrieve labwares from the OT

10.2.

Export the variables and source plates maps (for the creation of the final map) 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
10.3.

We have never used the labware stacked_abgenes_pcr_96well_300ul, 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/PCRsamplePreparation (I name it PCR-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_Example1.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_Example1.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 PCR-Example1.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.

Wipe OT-2 with 70% ethanol

10.9.

Load protocol labware as instructed in Step 10.6

推荐阅读

Nature Protocols
Protocols IO
Current Protocols
扫码咨询