Home | Getting Started | Generic Tools | EchoProto | EchoProto Templates | OTProto | OTProto Templates
BiomationScripter - EchoProto
Feature Overview
EchoProto is a module within the BiomationScripter package which contains tools specifically aimed at writing protocols for the Echo525. EchoProto enables users to write python scripts which can then generate a set of CSV picklists. The picklists contain a list of transfer actions for the Echo to perform. There is one picklist generated per source plate, and all of the picklists together form the entire protocol. Instructions for importing the picklists to the Echo can be found here.
EchoProto contains two submodules:
- EchoProto: A set of functions and classes which are used to capture information about an Echo protocol, and convert this information into a set of picklists
- EchoProto.Templates: A set of classes which generate picklists for common protocols, such as Loop assembly and Q5 PCR, based on user inputs
If you are planning on using the Echo to automate common protocols, such as PCR, there may be a pre-written EchoProto template available. A list of currently available templates can be found here.
If you are planning on automating a protocol which you will use many times, but with slightly different variations/inputs, it may be helpful to create your own EchoProto template. A walkthrough explaining how this can be done can be found here.
If you are planning to automate a protocol for which there are no existing templates, and that protocol will only be repeated identically (or not at all), it may be best to not write a template. In this case, the general BiomationScripter tools and EchoProto tools can be used to help write the protocol.
Importing picklists via Plate Reformat
Plate Refomrat is the proprietary of choice for importing custom picklists into the Echo 525 liquid handling robot. To get started simply launch the software "Labcyte Echo Plate Reformat". Please not that custom picklists should be correctly formatted and saved as a .csv file before continuing this process.
A dialog box should appear to Connect to an Instrument. The instrument can be connected to via its IP address or there is an option to Work Offline.

Working offline may be useful for testing out protocols for simple errors without the need of inserting plates into the machine. After the connection is established, the software GUI should open.
Set-up a new protocol by clicking the new protocol button, this will open the Protocol Setup wizard.

Select the source plate type, the destination plate type and set the mapping type to custom. Click Ok to confirm and generate a new protocol file.

Now, the custom picklist can be imported to the new protocol. This is done using the "Import region definitions" option from the file menu. Import the custom picklist using the wizard. The import wizard will assist in retrieving the correct attributes using the file headers. Ensure that the following have been selected for import and that they map to the correct columns in the csv file:
- Source Plate Name
- Source Plate Type
- Source Well
- Destination Plate Name
- Destination Well
- Transfer Volume

The wizard will show a preview of the custom picklist file being imported, this is useful for proof checking the file before importing. There is a check box to remove duplicate line entries - it is recommended to uncheck this. There is also an option to Preview the import before finalising this. Select Import to import the picklist.
Now that the file has been imported, there should be two of each source and destination plate. The first of each will be the original blank plate from creating the protocol - this should be deleted. The second will contain the transfer steps from the picklist.

The protocol can be simulated and ran from the same software. This is done using the run button, represented by a blue play button.

Using EchoProto
Begin by importing the EchoProto module:
import BiomationScripter.EchoProto as EchoProto
The EchoProto module has the following architecture:

The BiomationScripter.EchoProto.Protocol object is populated with BiomationScripter.EchoProto.TransferLists and BiomationScripter.EchoProto.Actions through the use of the BiomationScripter.EchoProto.Generate_Actions function. A populated Protocol is used to generate CSV picklists by calling the BiomationScripter.EchoProto.write_picklists function.
Classes
Class: Protocol
This class is used to store information about a protocol, and can be used to generate CSV picklist files.
Usage:
BMS.EchoProto.Protocol(Title: str) returns BiomationScripter.EchoProto.Protocol
Attributes:
title|str: A title for the protocolsource_plates|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects which represent the source platesdestination_plates|list[BiomationScripter.Labware_Layout]: A list ofBiomationScripter.Labware_Layoutobjects which represent the source plates objects which represent the destination platestransferlists|list[BiomationScripter.EchoProto.TransferList]: A list ofTransferListobjects, which each represent a picklist
Methods:
__init__(self, Title: str)returnsBiomationScripter.EchoProto.Protocol- Creates a
BiomationScripter.EchoProto.Protocolobject with a title Titleis stored asself.titleself.source_platesis initiated as an emptylist[]self.destination_platesis initiated as an emptylist[]self.transferlistsis initiated as an emptylist[]
- Creates a
add_source_plate(self, Plate: BiomationScripter.Labware_Layout)returnsNone- Appends the specified
Platetoself.source_plates
- Appends the specified
add_source_plates(self, Plates: list[BiomationScripter.Labware_Layout])returnsNone- Appends each of the plates specified in
Platestoself.source_plates
- Appends each of the plates specified in
make_transfer_list(self, Source_Plate: BiomationScripter.Labware_Layout)returnsBiomationScripter.EchoProto.TransferList- Creates a
BiomationScripter.EchoProto.TransferListobject and assigns the plate specified inSource_Plateto it - Appends the
TransferListtoself.transferlistsand returns the object
- Creates a
get_transfer_list(self, Source_Plate: BiomationScripter.Labware_Layout)returnsBiomationScripter.EchoProto.TransferList- Returns the
TransferListassociated with the source plate specified bySource_Plate
- Returns the
add_destination_plate(self, Plate: BiomationScripter.Labware_Layout, Use_Outer_Wells = True: bool)returnsNone- Appends the specified
Platetoself.destination_plates Use_Outer_Wellsspecifies whether or not wells in the first row, last row, first column, and last column should be used
- Appends the specified
add_destination_plates(self, Plates: list[BiomationScripter.Labware_Layout], Use_Outer_Wells = True: bool)returnsNone- Appends each of the plates specified in
Platestoself.destination_plates Use_Outer_Wellsspecifies whether or not wells in the first row, last row, first column, and last column should be used
- Appends each of the plates specified in
get_destination_plates(self)returnslist[BiomationScripter.Labware_Layout]- Returns a list of all
BiomationScripter.Labware_Layoutstored inself.destination_plates
- Returns a list of all
get_source_plates(self)returnslist[BiomationScripter.Labware_Layout]- Returns a list of all
BiomationScripter.Labware_Layoutstored inself.source_plates
- Returns a list of all
Class: TransferList
This class is used to group and store liquid transfer actions based on source plate, and acts as the basis for generating CSV picklist files. Each TransferList is associated with just one source plate, represented by a BiomationScripter.Labware_Layout object.
Usage:
BMS.EchoProto.TransferList(Source_Plate: BiomationScripter.Labware_Layout) returns BiomationScripter.EchoProto.TransferList
Attributes:
title|str: A title for the transfer listsource_plate|BiomationScripter.Labware_Layout: The source plate associated with the transfer list_actions|list[BiomationScripter.EchoProto.Action]: A list of liquid transfer events, where each transfer event is represented by aBiomationScripter.EchoProto.Actionobject__actionUIDs|list[int]: A list of unique ids for eachBiomationScripter.EchoProto.Actionin_actions_source_plate_type|str: The plate type for the associated source plate__source_plate_types|set(str): A set of allowed source plate types- This should only be modified after consulting the list of compatible Echo source plates
Methods:
__init__(self, Source_Plate: BiomationScripter.Labware_Layout)returnsBiomationScripter.EchoProto.TransferList- Creates a
BiomationScripter.EchoProto.TransferListobject, which is associated with the source plate specified bySource_Plate, which is aBiomationScripter.Labware_Layout self.titleis initialised using the the name of the associated source plate (Source_Plate.name)self.source_plateis initialised asSource_Plateself._actionsis initialised as an empty list (list[])self.__actionUIDsis initialised as an empty list (list[])self._source_plate_typeis initialised asSource_Plate.typeself.__source_plate_typesis initialised as the following set of strings:set("384PP", "384LDV", "6RES")
- Creates a
get_source_plate_type(self)returnsstr- Returns the type of source plate associated with the transfer list (
self._source_plate_type)
- Returns the type of source plate associated with the transfer list (
get_actions(self)returnslist[BiomationScripter.EchoProto.Action]- Returns all liquid transfer events as a list of
BiomationScripter.EchoProto.Actionobjects
- Returns all liquid transfer events as a list of
get_action_by_uid(self, UID: int)returnsBiomationScripter.EchoProto.Action- Returns the
BiomationScripter.EchoProto.Actionassociated with the specifiedUID
- Returns the
add_action(self, Reagent: str, Calibration: str, Source_Well: str, Destination_Plate_Name: str, Destination_Plate_Type: str, Destination_Well: str, Volume: int)returnsNone- Creates a
BiomationScripter.EchoProto.Actionfrom the supplied arguments and appends it toself._actions Reagentis the name of the liquid to be transferredCalibrationis the acoustic calibration for the Echo525 to use in the liquid transfer event (e.g. "AQ_BP")Source_Wellis the well from which the reagent is transferred (e.g. "A1")Destination_Plate_Nameis the name of the plate to which the reagent will be transferredDestination_Plate_Typeis the type of the plate to which the reagent will be transferredDestination_Wellis the well to which the reagent is transferred (e.g. "B6")Volumeis the amount, in nanolitres, of reagent which will be transferred- The source plate is taken from
self.source_plate
- Creates a
Class: Action
This class is used to store information about a single liquid transfer event. Multiple BiomationScripter.EchoProto.Action objects make up a BiomationScripter.EchoProto.TransferList
Usage:
BMS.EchoProto.Action(UID: int, Reagent: str, Source_Plate_Name: str, Calibration: str, Source_Well: str, Destination_Plate_Name: str, Destination_Plate_Type: str, Destination_Well: str) returns BiomationScripter.EchoProto.Action
Attributes:
__uid|int: A unique identifier for the liquid transfer eventreagent|str: Name of the liquid to be transferredsource_plate|BiomationScripter.Labware_Layout: The source plate containing the reagentcalibration|str: Acoustic calibration the Echo525 will use during the liquid transfer event (e.g. "AQ_BP")source_well|str: The well from which the reagent is transferred (e.g. "A1")destination_plate_name|str: The name of the plate to which the reagent will be transferreddestination_plate_type|str: The type of the plate to which the reagent will be transferreddestination_well|str: The well to which the reagent is transferred (e.g. "B6")_volume|int: The amount of reagent, in nanolitres, which will be transferred
Methods:
__init__(self, UID: int, Reagent: str, Source_Plate: BiomationScripter.Labware_Layout, Calibration: str, Source_Well: str, Destination_Plate_Name: str, Destination_Plate_Type: str, Destination_Well: str)returnsBiomationScripter.EchoProto.Action- Creates a
BiomationScripter.EchoProto.Actionobject UIDis stored asself.__uidReagentis stored asself.reagentSource_Plateis stored asself.source_plateCalibrationis stored asself.calibrationSource_Wellis stored asself.source_wellDestination_Plate_Nameis stored asself.destination_plate_nameDestination_Plate_Typeis stored asself.destination_plate_typeDestination_Wellis stored asself.destination_wellself._volumeis initialised asNone
- Creates a
set_volume(self, Volume: int)returnsNone- Stores the volume of liquid, in nanolitres, to be transferred as
self._volume - Checks that the volume specified is valid:
- Checks that the volume is an
int - Checks that the volume is not below the minimum transfer volume of the Echo525 (25 nL)
- Checks that the volume is not above the maximum transfer volume for the specified source plate (2000 nL for 384PP plate, and 500 nL for 384 LDV plate)
- Checks that the volume is an
- Stores the volume of liquid, in nanolitres, to be transferred as
get_volume(self)returnsint- Returns
self._volume
- Returns
get_uid(self)returnsint- Returns
self.__uid
- Returns
get_all(self)returnslist[int, str, str, str, str, str, str, str, int]- Returns all attributes of the transfer action as a list in the format:
list[self.__uid, self.reagent, self.source_plate.name, self.calibration, self.source_well, self.destination_plate_name, self.destination_plate_type, self.destination_well, self._volume]
- Returns all attributes of the transfer action as a list in the format:
Functions
Function: Generate_Actions
This function is used to automatically generate liquid transfer instructions for a BiomationScripter.EchoProto.Protocol object.
Usage:
BMS.EchoProto.Generate_Actions(Protocol: BiomationScripter.EchoProto.Protocol) returns None
Behaviour:
The Generate_Actions function first generates and stores a BiomationScripter.EchoProto.TransferList object for each attached source plate. Reagents in destination plates attached to the Protocol object are then mapped to reagents in source plates attached to the same object, and BiomationScripter.EchoProto.Action objects are generated and attached to the relevant TransferList to capture each liquid transfer event required.
This function can only be called if the Protocol object has destination plate(s) which define the final output of the automation protocol, and source plate(s) which contain the required reagents.
Function: Write_Picklists
This function is used to generate picklists as CSV files from a BiomationScripter.EchoProto.Protocol object. The Protocol object must have defined source plates, destination plates, and transferlists. The transferlists must also be populated with liquid transfer events.
Usage:
BMS.EchoProto.Write_Picklists(Protocol: BiomationScripter.EchoProto.Protocol, Save_Location: str) returns None
Behaviour:
The Write_Picklists function first gets all BiomationScripter.EchoProto.TransferList objects stored within the BiomationScripter.EchoProto.Protocol object. From these TransferList objects, the attached BiomationScripter.EchoProto.Action objects are retrieved and the information captured by each Action object is converted into a string, which is written to a CSV file. The CSV file is stored in the directory specified by Save_Location, and can be uploaded to the Echo525 as described here.
EchoProto Templates
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.
See the full documentation here