Home | Getting Started | Generic Tools | EchoProto | EchoProto Templates | OTProto | OTProto Templates
BiomationScripter - EchoProto Templates
Overview
BiomationScripter Templates can be used to help quickly and easily generate automation protocols for common experiments or procedures. Protocols generated using the same Template will all follow the same basic instructions, but will differ depending on user inputs. For example, the PCR Template accepts user inputs for aspects such as the type of polyemrase and buffer, the final volume of the reactions, and the DNA templates and primers to use in each reaction.
If you can't find a Template for a specific protocol, you can try raising an issue on the GitHub to see if anyone can help, or create your own Template following the walkthrough found here.
Below you can find documentation for Echo Templates included with BiomationScripter.
Echo Templates
Any Template can be imported using the statement below:
Replace <TEMPLATE_NAME> in the code above with one of the template names below:
Template: Loop_Assembly
Overview
This Template is used to generate an Echo protocol for preparing Loop assembly reactions. The protocol is based on the methods described by Pollak et al. 2018.
Generic Protocol Steps
The basic protocol is described below. Volumes stated below are for 5 uL final reaction volumes. These amounts will be scaled based on the user-defined final volume. DNA parts are assumed to be at 10 fmol/uL.
- Add 0.5 uL of buffer
- The buffer type is determined by the user
- A list of buffers can be supplied - in this case each buffer is added in equal amounts such that the total buffer volume is 0.5 uL
- Add 0.125 uL of enzyme
- The enzyme type is determined by the user, although the protocol is intended for use with SapI (even level assemblies) or BsaI (odd level assemblies)
- Add 0.125 uL of T4 ligase
- The ligase type can be modified by the user, but T4 Ligase is the intended reagent
- Add DNA backbone as supplied by the user
- The volume is 0.25 uL adjusted by the backbone to part ratio supplied by the user
- Add the DNA part(s) supplied by the user
- The volume is 0.25 uL per part, adjusted by the backbone to part ratio supplied by the user
- Add nuclease free water so that the final volume is 5 uL
Following set up by the Echo, the destination plate(s) should be vortexed and briefly span down to ensure all liquid is at the bottom of the wells.
Usage
Example
See an example protocol using this template here.
The Template object is created using the following code:
from BiomationScripter.EchoProto.Templates import Loop_Assembly
Protocol_Template = Loop_Assembly.Template(
Enzyme: str,
Buffer: str | List[str],
Volume: float, # uL
Assemblies: List[BiomationScripter.Assembly],
Backbone_to_Part: List[str] = ["1:1"],
Repeats: int = 1,
DNA_Concentration: float = 10, # uM
Name: str,
Source_Plates: List[BiomationScripter.Labware_Layout],
Destination_Plate_Layout: BiomationScripter.Labware_Layout,
Picklist_Save_Directory: str = ".",
Metadata: dict[str, str],
Merge: bool = False
)
Full Documentation
Attributes:
name|str: A name for the protocol (fromBMS.EchoProto.EchoProto_Templatesuperclass)metadata|dict[str]: A dictionary describing the metadata for the protocol (fromBMS.EchoProto.EchoProto_Templatesuperclass)save_dir|str: The directory where the picklist files should be saved (fromBMS.EchoProto.EchoProto_Templatesuperclass)_protocol|BiomationScripter.EchoProto.Protocol: ABiomationScripter.EchoProto.Protocolobject (fromBMS.EchoProto.EchoProto_Templatesuperclass)merge|bool: Defines whether source plates of the same type should be merged into one picklist (True) or if each source plate should have a different picklist (False) (fromBMS.EchoProto.EchoProto_Templatesuperclass)source_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects describing the source plates available for use (fromBMS.EchoProto.EchoProto_Templatesuperclass)destination_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects which define the destination plates, including their intended content once the transfer has completed (fromBMS.EchoProto.EchoProto_Templatesuperclass)volume|float: Final volume of each reaction in microlitresratios|list[str]: A list of backbone:part ratios, e.g.["1:1", "2:1"]repeats|int: The number of repeats for each unique assembly reactionenzyme|str: The name of the enzyme to be usedbuffer|str OR List[str]: The name of the buffer (or buffers) to be usedassemblies|List[BMS.Assembly]: A list ofBiomationScripter.Assemblyobjects which describe the assembly reactions to be preparedligase|str: The name of the ligase to usewater|str: The name of the water to be added
Methods:
__init__(self, Enzyme: str, Buffer: Union[str, List[str]], Volume: float, Assemblies: List[_BMS.Assembly], Backbone_to_Part: List[str] = ["1:1"], Repeats: int = 1, DNA_Concentration: float = 10, # fmol **kwargs)returnsBMS.EchoProto.Templates.Loop_Assembly.Templateobject- Creates a
BMS.EchoProto.Templates.Loop_Assembly.Templateobject - Initiates the default reaction volumes (see above)
- Creates a
run(self)returnsNone- Creates the Echo picklists for the protocol
Template: PCR
Overview
This Template is used to generate an Echo protocol for preparing PCR reactions. It is based upon the protocol described here for no mastermix, and here for with mastermix.
Generic Protocol Steps
The basic protocol is described below. Volumes stated below are for 5 uL final reaction volumes. These amounts will be scaled based on the user-defined final volume. Primer stocks are assumed to be at 10 μM. dNTPs are assumed to be pre-mixed in equimolar amounts to a final stock of 10mM.
If Master_Mix is None:
- Add template DNA according as specified by the user (
DNA_Amounts)- If a list of volumes (in uL) is specified, multiple reactions will be prepared, one for each volume
- If no volumes are given, then 1 uL of DNA is added
- Add 0.25 uL of forward primer, and 0.25 uL of reverse primer
- Primers are added to the DNA templates as specified by
Reactions
- Primers are added to the DNA templates as specified by
- Add 0.1 uL of dNTP solution
- Add the buffer specified by
Polymerase_Buffer- The volume of buffer to add is determined by
Polymerase_Buffer_Stock_Conc
- The volume of buffer to add is determined by
- Add 0.05 uL of the polymerase specified by
Polymerase - Add nuclease free water so that the final volume is 5 uL
Following set up by the Echo, the destination plate(s) should be vortexed and briefly span down to ensure all liquid is at the bottom of the wells.
If Master_Mix is not None:
- Add template DNA according as specified by the user (
DNA_Amounts)- If a list of volumes (in uL) is specified, multiple reactions will be prepared, one for each volume
- If no volumes are given, then 1 uL of DNA is added
- Add 0.25 uL of forward primer, and 0.25 uL of reverse primer
- Primers are added to the DNA templates as specified by
Reactions
- Primers are added to the DNA templates as specified by
- Add the mastermix specified by
Master_Mix- The volume of mastermix to add is determined by
Master_Mix_Stock_Conc
- The volume of mastermix to add is determined by
- Add nuclease free water so that the final volume is 5 uL
Following set up by the Echo, the destination plate(s) should be vortexed and briefly span down to ensure all liquid is at the bottom of the wells.
Usage
Example
See an example protocol using this template here.
The Template object is created using the following code:
from BiomationScripter.EchoProto.Templates import PCR
Protocol_Template = PCR.Template(
Volume: float,
Reactions: Tuple[str, str, str],
Polymerase: str = None,
Polymerase_Buffer: str = None,
Polymerase_Buffer_Stock_Conc: float = None,
Master_Mix: str = None,
Master_Mix_Stock_Conc = None,
Repeats: int = 1,
DNA_Amounts = None,
Name: str,
Source_Plates: List[BiomationScripter.Labware_Layout],
Destination_Plate_Layout: BiomationScripter.Labware_Layout,
Picklist_Save_Directory: str = ".",
Metadata: dict[str, str],
Merge: bool = False
)
Full Documentation
Attributes:
name|str: A name for the protocol (fromBMS.EchoProto.EchoProto_Templatesuperclass)metadata|dict[str]: A dictionary describing the metadata for the protocol (fromBMS.EchoProto.EchoProto_Templatesuperclass)save_dir|str: The directory where the picklist files should be saved (fromBMS.EchoProto.EchoProto_Templatesuperclass)_protocol|BiomationScripter.EchoProto.Protocol: ABiomationScripter.EchoProto.Protocolobject (fromBMS.EchoProto.EchoProto_Templatesuperclass)merge|bool: Defines whether source plates of the same type should be merged into one picklist (True) or if each source plate should have a different picklist (False) (fromBMS.EchoProto.EchoProto_Templatesuperclass)source_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects describing the source plates available for use (fromBMS.EchoProto.EchoProto_Templatesuperclass)destination_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects which define the destination plates, including their intended content once the transfer has completed (fromBMS.EchoProto.EchoProto_Templatesuperclass)volume|float: Final volume of each reaction in microlitresrepeats|int: The number of repeats for each unique assembly reactionpolymerase|str: The name of the polymerase to be usedbuffer|str OR List[str] OR None: The name of the buffer (or list of buffers) to be usedbuffer_stock_conc|float OR None: The stock concentration of the specified buffer - ignored ifbufferisNone- must not beNoneifbufferis definedmaster_mix|str OR None: The name of the mastermix to be used - no mastermix is used ifNonemaster_mix_stock_conc|float OR None: The stock concentration of the specified mastermix - ignored ifmaster_mixisNone- must not beNoneifmaster_mixis defineddna_amounts|float OR List[float] OR None: The amount of DNA template to be added (in uL) to each reaction - if a list is given a new reaction will be created with each different volume - ifNonethen 1/5 of the total volume is useddNTPs|str: The name of the dNTPs to be usedwater|str: The name of the water to be used
Methods:
__init__(self, Volume: float, Reactions: Tuple[str, str, str], Polymerase: str = None, Polymerase_Buffer: str = None, Polymerase_Buffer_Stock_Conc: float = None, Master_Mix: str = None, Master_Mix_Stock_Conc = None, Repeats: int = 1, DNA_Amounts = None, **kwargs)returnsBMS.EchoProto.Templates.PCR.Templateobject- Creates a
BMS.EchoProto.Templates.PCR.Templateobject - Initiates the default reaction volumes (see above)
- Creates a
run(self)returnsNone- Creates the Echo picklists for the protocol
Superclass: EchoProto_Template
Usage:
This class should ONLY be used as an extension of an Echo Template class, e.g.:
class My_New_Template(BMS.EchoProto.EchoProto_Template):
def __init__(self, My_Arg1, My_Arg2, **kwargs):
super().__init__(**kwargs)
self.my_arg1 = My_Arg1
self.my_arg2 = My_Arg2
def run(self):
pass
Attributes:
name|str: A name for the protocolmetadata|dict[str]: A dictionary describing the metadata for the protocolsave_dir|str: The directory where the picklist files should be saved_protocol|BiomationScripter.EchoProto.Protocol: ABiomationScripter.EchoProto.Protocolobjectmerge|bool: Defines whether source plates of the same type should be merged into one picklist (True) or if each source plate should have a different picklist (False)source_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects describing the source plates available for usedestination_plate_layouts|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects which define the destination plates, including their intended content once the transfer has completed
Methods:
__init__(self, Name: str, Source_Plates: List[BiomationScripter.Labware_Layout], Destination_Plate_Layout: BiomationScripter.Labware_Layout, Picklist_Save_Directory: str = ".", Metadata: dict[str, str], Merge: bool = False)returnsBMS.EchoProto.EchoProto_Templatesuperclass- This method is inherently called when an Echo Template class extends the
BMS.EchoProto.EchoProto_Templatesuperclass - The
BiomationScripter.Labware_Layoutobjects used forSource_Platesmust contain content representing the source material available - The
BiomationScripter.Labware_Layoutobject used forDestination_Plate_Layoutshould have no content specified; this is generated by the Template class - The
Destination_Plate_Layoutwill be assumed to have all wells available if itsavailable_wellsattribute has not been specified
- This method is inherently called when an Echo Template class extends the
add_source_layout(self, Layout: BiomationScripter.Labware_Layout)returnsNone- This method is used to add a source plate layout
- This is called within the
__init__function when a Template object is generated, and so users should not need to call it manually - If source plate layouts are added after object creation, they should only be added using this method; if they are added by simply appending to
self.source_plate_layoutsunexpected behaviour will occur
add_destination_layout(self, Layout: BiomationScripter.Labware_Layout)returnsNone- This method is used to add a destination plate layout
- The first destination layout is added when
__init__is called - Users may need to call this during the
runmethod of their template if additional destination plates are required - If destination plate layouts are added after object creation, they should only be added using this method; if they are added by simply appending to
self.destination_plate_layoutsunexpected behaviour will occur
create_picklists(self)returnsNone- This method should be called at the end of a Template
runmethod to generate the Echo picklists
- This method should be called at the end of a Template