Using EchoProto Templates - PCR Example¶
BiomationScripter Templates can be used to help quickly and easily generate automation protocols for common experiments or procedures. Shown here is an example of how the EchoProto.Templates.PCR Template can be used to generate an automation protocol to prepare PCR reactions using the Echo.
See the documentation for a full details about the PCR Template
Setting up¶
The first step is to import the EchoProto.Templates module, along with the BMS module so that we have access to any generic tools that may be required.
import BiomationScripter as BMS
from BiomationScripter.EchoProto.Templates import PCR
Next, we need to define the general parameters and inputs required for any Echo Template (see here).
For the source plates, we'll import some layouts which have already been defined. For more information on creating/importing BMS.Labware_Layout objects, see here and here.
Protocol_Name = "Unmerged Example PCR With MM"
metadata = {
"Author": "First Last",
"Author Email": "author@email.com",
"User": "Your Name",
"User Email": "user@email.com",
"Source": "BiomationScripter v0.2.0.dev",
"Robot": "Echo525"
}
Merge_Picklists = False # This merges source plates with the same TYPE into one picklist
Picklist_Save_Directory = "../../../../data/"
Source_Plate_Directory = "../../../../data/"
Source_Plates = [
BMS.Import_Labware_Layout("Example DNA Stocks", path = Source_Plate_Directory),
BMS.Import_Labware_Layout("Example Primer Stocks", path = Source_Plate_Directory),
BMS.Import_Labware_Layout("Example Plasmid Stocks", path = Source_Plate_Directory),
BMS.Import_Labware_Layout("Water and Buffer Plate", path = Source_Plate_Directory),
BMS.Import_Labware_Layout("Reagents", path = Source_Plate_Directory),
]
PCR_Plate_Layout = BMS.Labware_Layout("PCR Plate", "384 OptiAmp Plate")
PCR_Plate_Layout.define_format(16,24)
PCR_Plate_Layout.set_available_wells()
The full list of arguments, with descriptors, can be found here.
Polymerase = "Q5 Polymerase"
Polymerase_Buffer = None
Buffer_Stock_Conc = None # x
Master_Mix = "Q5 Master Mix"
Master_Mix_Stock_Conc = 2 # x
DNA_Amounts = [0.1, 0.5, 1] # uL
Volume = 5
Repeats = 1
The next step is to define the PCR reactions. This is done in the format (<TEMPLATE>, <PRIMER1>, <PRIMER2>)
Reactions = [
("J23100", "VF2", "VR"),
("J23119", "VF2", "VR"),
("J23101", "VF2", "VR"),
("J23102", "VF2", "VR"),
("J23103", "VF2", "VR"),
("J23104", "VF2", "VR"),
("J23105", "VF2", "VR"),
("J23106", "VF2", "VR"),
("J23107", "VF2", "VR"),
("J23108", "VF2", "VR"),
("J23109", "VF2", "VR"),
("J23110", "VF2", "VR"),
("J23111", "VF2", "VR"),
("J23112", "VF2", "VR"),
("J23113", "VF2", "VR"),
("J23114", "VF2", "VR"),
("J23115", "VF2", "VR"),
("J23116", "VF2", "VR"),
("J23117", "VF2", "VR"),
("J23118", "VF2", "VR"),
("pOdd1", "VF2", "VR"),
]
The final step is to create the Template, and call the run method on it
# This code block shouldn't need to be modified
PCR_Protocol = PCR.Template(
Name = Protocol_Name,
Picklist_Save_Directory = Picklist_Save_Directory,
Metadata = metadata,
Volume= Volume,
Reactions = Reactions,
Polymerase = Polymerase,
Polymerase_Buffer = Polymerase_Buffer,
Polymerase_Buffer_Stock_Conc = Buffer_Stock_Conc,
Master_Mix = Master_Mix,
Master_Mix_Stock_Conc = Master_Mix_Stock_Conc,
Repeats = Repeats,
DNA_Amounts = DNA_Amounts,
Source_Plates = Source_Plates,
Destination_Plate_Layout = PCR_Plate_Layout,
Merge = Merge_Picklists
)
PCR_Protocol.run()
..\..\..\..\Resources\data\Unmerged Example PCR With MM-384PP-(Example DNA Stocks).csv ..\..\..\..\Resources\data\Unmerged Example PCR With MM-384PP-(Example Primer Stocks).csv ..\..\..\..\Resources\data\Unmerged Example PCR With MM-384PP-(Example Plasmid Stocks).csv ..\..\..\..\Resources\data\Unmerged Example PCR With MM-6RES-(Water and Buffer Plate).csv ..\..\..\..\Resources\data\Unmerged Example PCR With MM-384LDV-(Reagents).csv