Commands & Types
This page lists the commands and types available in Roboliq protocols. Note that:
Types begin with an uppercase letter, whereas command and namespaces begin with a lowercase letter.
A namespace group related commands and types, such as the
pipetter
namespace contains items relevant to pipetting. Normally the namespaces will be nouns by convention.As a matter of convention, all commands belong to a namespace. Normally commands will start with a verb. For example,
pipetter.mix
is a command to use the pipetter to mix well contents.Commands and types that begin with an underscore, such as
pipetter._mix
, are low-level commands. Normally you will not need to use them and can use the other higher-level commands instead.
Basic types
Duration
Duration specified as a string. Parsing is handled by mathjs. Valid units are: second (s, secs, seconds), minute (mins, minutes), hour (h, hr, hrs, hours), day (days), week (weeks), month (months), year (years), decade (decades), century (centuries), millennium (millennia)
Example:
1s
= 1 second3 minutes
= 3 minutes4 h
= 4 hours
SiteOrStay
When a command is performed on a plate, sometimes the plate first needs to
be moved to the proper equipment (e.g. you might put a plate onto a shaker in
order to shake it). By default, the plate will be moved back to its prior
location after the command is finished. Such commands have a destinationAfter
property with type SiteOrStay
which can be used to override this behavior.
Either you can specify different Site
where the plate should be moved to after
the command, or you can specify "stay"
to leave the plate there.
Object types
scale
The scale
commands specify actions using weight scale equipment.
Scale
Scale equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Scale |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
scale.ScaleProgram
Program for scale.
scale.weigh
Weigh an object.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | scale.ScaleProgram | Program for shaking |
|
object | Plate | Plate identifier |
required |
site | Site | Site identifier on scale |
|
destinationAfter | SiteOrStay | Site to move the plate to after this command |
absorbanceReader
The absorbanceReader
commands specify actions using equipment for absorbance readouts.
Reader
Reader equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Reader |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
absorbanceReader.measurePlate
Measure the absorbance of a plate.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | Program parameters |
||
shakerProgramBefore | Program for shaker. |
||
excitationWavelength | Length | Excitation wavelength |
|
excitationBandwidth | Length | Excitation bandwidth |
|
excitationWavelengthMin | Length | Minimum excitation wavelength for a scan |
|
excitationWavelengthMax | Length | Maximum excitation wavelength for a scan |
|
excitationWavelengthStep | Length | Size of steps for a scan |
|
wells | Wells | Array of wells to read |
|
wellDesignFactor | string | Name of design column that indicates which wells to measure (deprecated, use |
|
userValues | object | User-specificed values that should be included in the output table (deprecated, use |
|
programFileTemplate | string | Program template; well information will be substituted into the template automatically. |
|
programFile | string | Program filename |
|
programData | Program data |
||
outputFile | string | Filename for output (deprecated, use |
|
outputDataset | string | Name of dataset to which the measurements values will be appended. (deprecated, use |
|
output | Output definition for where and how to save the measurements |
||
joinKey | string | The key used to left-join the measurement values with the current DATA |
|
writeTo | string | Filename to write measurements to as JSON |
|
appendTo | string | Filename to append measurements to as newline-delimited JSON |
|
userValues | object | User-specificed values that should be included in the output table |
|
simulated | string | An expression to evaluate with mathjs |
|
units | Map of factor names to unit type; converts the factor values to plain numbers in the given units. |
||
object | Plate | Plate identifier |
required |
site | Site | Site identifier in reader |
|
destinationAfter | SiteOrStay | Site to move the plate to after measurement |
centrifuge
The centrifuge
commands specify actions using centrifuge equipment.
Centrifuge
Centrifuge equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Centrifuge |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
sitesInternal | array | required |
centrifuge:
type: Centrifuge
sitesInternal: ["ourlab.mario.site.CENTRIFUGE_1", "ourlab.mario.site.CENTRIFUGE_2", "ourlab.mario.site.CENTRIFUGE_3", "ourlab.mario.site.CENTRIFUGE_4"]
centrifuge.centrifuge2
Centrifuge two plates.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | Program for centrifuging |
required | |
object1 | Plate | Plate identifier 1 |
required |
object2 | Plate | Plate identifier 2 |
required |
site1 | Site | Location identifier for the centrifugation site of object1 |
|
site2 | Site | Location identifier for the centrifugation site of object2 |
|
destinationAfter1 | SiteOrStay | Location identifier for where object1 should be placed after centrifugation |
|
destinationAfter2 | SiteOrStay | Location identifier for where object2 should be placed after centrifugation |
This will centrifuge 2 plates at 3000rpm for 2 minutes at 25°C:
{
"command": "centrifuge.centrifuge2",
"object1": "plate1",
"object2": "plate2",
"program": {
"rpm": 3000,
"duration": "2 minutes",
"temperature": "25 degC"
}
}
centrifuge.insertPlates2
Insert up to two plates into the centrifuge.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
object1 | Plate | Plate identifier 1 |
|
object2 | Plate | Plate identifier 2 |
|
site1 | Site | Location identifier for the centrifugation site of object1 |
|
site2 | Site | Location identifier for the centrifugation site of object2 |
This will insert two plates into the centrifuge:
{
"command": "centrifuge.insertPlates2",
"object1": "plate1",
"object2": "plate2",
}
equipment
The equipment
commands specify generic actions such as 'run' and 'open'
that may apply to various types of equipment.
equipment._run
Run the given equipment.
This is a generic command, and any addition parameters may be passed that are required by the target equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
equipment.open
Open the given equipment.
This is a generic command that expands to a sub-command named equipment.open|${agent}|${equipment}
. That command should be defined in your configuration for your lab.
The handler should return effects indicating that the equipment is open.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
equipment.openSite
Open an equipment site. This command assumes that only one equipment site can be open at a time.
This is a generic command that expands to a sub-command named
equipment.openSite|${agent}|${equipment}
.
That command should be defined in your configuration for your lab.
The handler should return effects indicating that the equipment is open, the given site is open, and all other equipment sites are closed.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
site | Site | Site identifier |
required |
equipment.close
Close the given equipment.
This is a generic command that expands to a sub-command named
equipment.close|${agent}|${equipment}
.
That command should be defined in your lab configuration.
The handler should return effects indicating the the equipment is closed and all of its sites are closed.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
equipment.start
Start the given equipment.
This is a generic command that expands to a sub-command named
equipment.start|${agent}|${equipment}
.
That command should be defined in your configuration for your lab.
Any addition parameters may be passed that are required by the target equipment.
The handler returns effects indicating that the equipment is running.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
equipment.stop
Stop the given equipment.
This is a generic command that expands to a sub-command named
equipment.stop|${agent}|${equipment}
.
That command should be defined in your configuration for your lab.
Any addition parameters may be passed that are required by the target equipment.
The handler returns effects indicating that the equipment is not running.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
incubator
The incubator
commands specify actions using incubator equipment.
Incubator
Incubator equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Incubator |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
sitesInternal | array | required |
"incubator": {
"type": "Incubator",
"sitesInternal": ["ourlab.luigi.site.BOX_1", "ourlab.luigi.site.BOX_2", "ourlab.luigi.site.BOX_3", "ourlab.luigi.site.BOX_4", "ourlab.luigi.site.BOX_5", "ourlab.luigi.site.BOX_6", "ourlab.luigi.site.BOX_7", "ourlab.luigi.site.BOX_8"],
}
incubator.incubatePlates
Incubate the given plates.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | Program for incubation |
required | |
plates | array | List of plates to incubate |
required |
sites | array | Internal sites to put the plates on |
|
destinationAfters | array | Location identifier for where the plates should be placed after incubation |
This will incubate 2 plates at 300rpm for 2 minutes at 25°C:
{
"command": "incubator.incubatePlates",
"plates": ["plate1", "plate2"],
"program": {
"rpm": 300,
"duration": "2 minutes",
"temperature": "25 degC"
}
}
incubator.insertPlates
Insert up to two plates into the incubator.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
plates | array | List of plates to incubate |
|
sites | array | Internal sites to put the plates on |
This will insert two plates into the incubator:
{
"command": "incubator.insertPlates",
"plates": ["plate1", "plate2"]
}
incubator.run
Run the incubator with the given program.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | object | Program for shaking and incubating |
required |
rpm | number | ||
duration | Duration | ||
temperature | Temperature | ||
plates | array | List of plates to incubate |
required |
sites | array | Internal sites to put the plates on |
|
destinationAfters | array | Location identifier for where the plates should be placed after incubation |
This will incubate 2 plates at 300rpm for 2 minutes at 25°C:
{
"command": "incubator.incubatePlates",
"plates": ["plate1", "plate2"],
"program": {
"rpm": 300,
"duration": "2 minutes",
"temperature": "25 degC"
}
}
pipetter
The pipetter
commands specify actions using pipetting equipment.
Pipetter
Pipetting equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Pipetter |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
Syringe
Pipetting syringe.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Syringe |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
tipModel | string | Tip model identifier for the tip currently on the syringe |
|
tipModelPermanent | string | Tip model identifier if this syringe has a permanent tip |
|
contaminants | array | List of contaminants the syringe has had contact with |
|
contents | array | Current contents of the syringe |
|
cleaned | string | Last cleaning intensity |
pipetter._MixSpec
Parameters for mixing in higher-level commands like pipetter._PipetteItem.
Properties:
Name | Type | Description | Required |
---|---|---|---|
count | integer | Number of times to aspirate and re-dispense |
required |
volume | Volume | Amount to aspirate, either as a fraction or absolute volume |
required |
pipetter._AspirateItem
Parameters for pipette items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
source | Well | Source specifier |
required |
volume | Volume | Volume |
required |
pipetter._DispenseItem
Parameters for pipette items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
destination | Well | Destination specifier |
required |
volume | Volume | Volume |
required |
pipetter._MeasureVolumeItem
Parameters for low-level pipetter._measureVolume items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
well | Well | Well specifier |
required |
pipetter.MeasureVolumeItem
Parameters for pipetter.measureVolume items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
|
well | Well | Well specifier |
|
cleanAfter | pipetter.CleaningIntensity | intensity of cleaning required after this item. |
pipetter._MixItem
Parameters for mixing with pipetter.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
well | Well | Well to mix |
required |
count | integer | Number of times to aspirate and re-dispense |
|
volume | Volume | Volume |
|
program | string | Program identifier |
pipetter.CleaningIntensity
Intensity of cleaning.
The enum lists the intensities in increase order.
pipetter._PipetteItem
Parameters for low-level pipette items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
source | Well | Source specifier |
|
destination | Well | Destination specifier |
|
volume | Volume | Volume |
required |
sourceMixing | pipetter._MixSpec | Parameters for mixing the source prior to aspiration |
|
destinationMixing | pipetter._MixSpec | Parameters for mixing the destination after dispense |
|
tipModel | string | Tip model identifier, in order to use a specific tip model |
pipetter.PipetteItem
Parameters for pipette items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
|
source | Source | Source specifier |
|
destination | Well | Destination specifier |
|
volume | Volume | Volume |
|
volumeCalibrated | object | Calculate a calibrated volume |
|
volumeTotal | Volume | Volume that the well should be brought up to. |
|
program | string | Program identifier |
|
layer | A layer identifier for hinting that to items in the same layer should be grouped together, even if they aren't in adjacent in the items list. |
||
cleanAfter | pipetter.CleaningIntensity | intensity of cleaning required after this item. |
|
sourceMixing | boolean,pipetter.MixSpec | Parameters for mixing the source prior to aspiration |
|
destinationMixing | boolean,pipetter.MixSpec | Parameters for mixing the destination after dispense |
pipetter._PunctureItem
Parameters for low-level puncture items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
required |
well | Well | Well specifier |
required |
distance | Length | Distance for puncturing |
required |
pipetter.PunctureItem
Parameters for puncture items.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
|
well | Well | Well specifier |
|
distance | Length | Distance for puncturing |
|
cleanAfter | pipetter.CleaningIntensity | intensity of cleaning required after this item. |
pipetter.DilutionItem
Parameters for a dilution series.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,Syringe | Syringe identifier |
|
source | Source | Source specifier |
|
destinations | Wells | Destination wells |
required |
volume | Volume | Volume |
pipetter.MixItem
Parameters for mixing with pipetter.
Properties:
Name | Type | Description | Required |
---|---|---|---|
syringe | number,nameOf Syringe | Syringe identifier |
|
well | Well | Well to mix |
|
count | integer | Number of times to aspirate and re-dispense |
|
amount | Volume,number | Amount to aspirate, either as a fraction or absolute volume |
|
program | string | Program identifier |
pipetter.MixSpec
Parameters for mixing (used in higher-level commands like pipetter.pipette and pipetter.pipetteDilutionSeries).
Properties:
Name | Type | Description | Required |
---|---|---|---|
count | integer | Number of times to aspirate and re-dispense |
|
amount | Volume,number | Amount to aspirate, either as a fraction or absolute volume |
|
program | string | Program identifier |
pipetter._aspirate
Aspirate liquids from sources into syringes.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | string | Program identifier |
required |
items | array | Data about what should be aspirated from where |
pipetter._dispense
Dispense liquids from sryinges into destinations.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | string | Program identifier |
required |
items | array | Data about what should be dispensed where |
pipetter._measureVolume
Measure well volume using pipetter tips.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | string | Program identifier |
|
items | array | List of parameters for individual wells |
required |
output | Output definition for where and how to save the measurements |
||
joinKey | string | The key used to left-join the measurement values with the current DATA |
|
writeTo | string | Filename to write measured to as JSON |
|
appendTo | string | Filename to append measured to as newline-delimited JSON |
pipetter._mix
Mix liquids by aspirating and re-dispensing.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | string | Program identifier |
required |
itemDefaults | Default values for items |
||
count | integer | Number of times to aspirate and re-dispense |
|
volume | Volume | Volume |
|
items | array | Data about mixing |
pipetter._pipette
Pipette liquids from sources to destinations.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | string | Program identifier |
required |
sourceProgram | string | Program identifier for aspirating from source, if it should differ from 'program' |
|
items | array | Data about what should be pipetted where |
|
sourceMixing | pipetter._MixSpec | Parameters for mixing the source prior to aspiration |
|
destinationMixing | pipetter._MixSpec | Parameters for mixing the destination after dispense |
pipetter._punctureSeal
Puncture the seal on a plate using pipetter tips.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
items | array | List of parameters for individual punctures |
required |
pipetter._washTips
Clean the pipetter tips by washing.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | name,object | Program identifier |
required |
syringes | array | List of syringe identifiers |
required |
intensity | pipetter.CleaningIntensity | Intensity of the cleaning |
required |
pipetter.cleanTips
Clean the pipetter tips.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier |
|
items | array | List of which syringes to clean at which intensity |
|
syringes | array | Optional list of syringes to serve as default for missing syringes in items list |
|
intensity | pipetter.CleaningIntensity | Optional intensity to serve as default intensity for missing intensities in items list |
pipetter.measureVolume
Measure well volume using pipetter tips.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier |
|
items | array | List of parameters for individual wells to measure |
|
wellLabware | Plate | Labware for wells |
|
wells | Wells | Specifier for well(s) to measure, if missing from items |
|
syringes | array | Specifier for syringe(s) to use, if missing from items |
|
clean | string | Default value for cleaning intensity (see cleanBegin, cleanBetween, cleanEnd) |
|
cleanBegin | string | intensity of cleaning before the first puncture. |
|
cleanBetween | string | Intensity of cleaning between wells. |
|
cleanEnd | string | Intensity of cleaning after the last puncture. |
|
tipModel | string | Tip model identifier, in order to use a specific tip model |
|
output | Output definition for where and how to save the measurements |
||
joinKey | string | The key used to left-join the measurement values with the current DATA |
|
appendTo | string | Filename to append measured to as newline-delimited JSON |
|
userValues | Map of user-defined key-values to include in the output |
pipetter.mix
Mix well contents by aspirating and re-dispensing.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier |
|
items | array | Data about which wells to mix and how to mix them |
|
wellLabware | Plate | Labware for wells |
|
wells | Wells | Specifier for well(s) to mix, if missing from items |
|
counts | integer | Number of times to aspirate, if missing from items |
|
amounts | Volume,number | Amount to aspirate, either as a fraction or absolute volume, if missing from items |
|
syringes | array | Specifier for syringe(s) to use, if missing from items |
|
clean | string | Default value for cleaning intensity (see cleanBegin, cleanBetween, cleanBetweenSameSource, cleanEnd) |
|
cleanBegin | string | intensity of first cleaning at beginning of pipetting, before first aspiration. |
|
cleanBetween | string | Intensity of cleaning between different liquids. |
|
cleanBetweenSameSource | string | Intensity of cleaning between transfers of the same liquid. |
|
cleanEnd | string | Intensity of cleaning after the last dispense. |
pipetter.pipette
Pipette liquids from sources to destinations.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | array,string | Program identifier |
|
sourceProgram | string | Program identifier for aspirating from source, if it should differ from 'program' |
|
items | array | Data about what should be pipetted where |
|
sourceLabware | Plate | Labware for source wells |
|
destinationLabware | Plate | Labware for source wells |
|
sources | Sources | Specifier for source(s) to aspirate from, if missing from items |
|
destinations | Wells | Specifier for destination(s) to despense to, if missing from items |
|
volumes | Volumes | Volume(s) to pipette, if missing from items |
|
syringes | array | Specifier for syringe(s) to use, if missing from items |
|
clean | string | Default value for cleaning intensity (see cleanBegin, cleanBetween, cleanBetweenSameSource, cleanEnd) |
|
cleanBegin | string | intensity of first cleaning at beginning of pipetting, before first aspiration. |
|
cleanBetween | string | Intensity of cleaning between different liquids. |
|
cleanBetweenSameSource | string | Intensity of cleaning between transfers of the same liquid. |
|
cleanEnd | string | Intensity of cleaning after the last dispense. |
|
sourceMixing | boolean,pipetter.MixSpec | Parameters for mixing the source wells with pipetter before aspirating |
|
destinationMixing | boolean,pipetter.MixSpec | Parameters for mixing the destination after dispense |
|
tipModel | string | Tip model identifier, in order to use a specific tip model |
|
calibrators | object | A map from calibrator names to calibrator data (DOCUMENTAITON REQUIRED) |
pipetter.pipetteDilutionSeries
Pipette a dilution series.
First the diluent is distributed to the destination wells (if diluent is specified). Then the source is transfered to the first destination well of each item (if source is specified -- otherwise the first destination well is assumed to be already prepared). Then aliquots are serially transfered from the first destination well to the next, and so on for each item. In general, mixing should be performed after each dilution dispense, and perhaps also before the first aspriation -- this can be specified how ???
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier |
|
dilutionFactor | number | Dilution factor by which each subsequent well is diluted |
|
dilutionMethod | string | How to dilute -- |
|
lastWellHandling | string | How to handle the last well in a series One of: none,diluteOnly,diluteAndExtract |
|
items | array | Array of dilution items |
required |
diluent | Source | Diluent to be used in dilution |
|
sourceLabware | Plate | Labware for source wells |
|
destinationLabware | Plate | Labware for source wells |
|
volume | Volume | Final volume of dilution wells (with the possible exception of the last well, see parameter |
|
cleanBegin | string | Intensity of first cleaning at beginning of pipetting, before first aspiration. |
|
cleanEnd | string | Intensity of cleaning after the last dispense. |
|
sourceParams | Extra parameters for pipetting the source |
||
diluentParams | Extra parameters for pipetting the diluent |
||
dilutionParams | Extra parameters for pipetting the diluted aliquots |
pipetter.pipetteMixtures
Pipette the given mixtures into the given destinations.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier |
|
mixtures | array | Array of arrays, where each sub-array is a list of components to be mixed into a destination well |
required |
sourceLabware | Plate | Labware for source wells |
|
destinationLabware | Plate | Labware for source wells |
|
destinations | Wells | Destination specifier |
|
order | array | Order in which to pipette the mixtures. Defaults to the order given in the mixtures array. |
|
clean | string | Default value for cleaning intensity (see cleanBegin, cleanBetween, cleanBetweenSameSource, cleanEnd) |
|
cleanBegin | string | intensity of first cleaning at beginning of pipetting, before first aspiration. |
|
cleanBetween | string | Intensity of cleaning between different liquids. |
|
cleanBetweenSameSource | string | Intensity of cleaning between transfers of the same liquid. |
|
cleanEnd | string | Intensity of cleaning after the last dispense. |
pipetter.punctureSeal
Puncture the seal on a plate using pipetter tips.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
items | array | List of parameters for individual punctures |
|
wellLabware | Plate | Labware for wells |
|
wells | Wells | Specifier for well(s) to puncture, if missing from items |
|
syringes | array | Specifier for syringe(s) to use, if missing from items |
|
distances | Length,array | Distance for puncturing |
|
clean | string | Default value for cleaning intensity (see cleanBegin, cleanBetween, cleanEnd) |
|
cleanBegin | string | intensity of cleaning before the first puncture. |
|
cleanBetween | string | Intensity of cleaning between wells. |
|
cleanEnd | string | Intensity of cleaning after the last puncture. |
|
tipModel | string | Tip model identifier, in order to use a specific tip model |
fluorescenceReader
The fluorescenceReader
commands specify actions using equipment for fluorescence readouts.
Reader
Reader equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Reader |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
fluorescenceReader.measurePlate
Measure the fluorescence of wells on a plate.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | Program parameters |
||
shakerProgram | Program for shaker. |
||
excitationWavelength | Length | Excitation wavelength |
|
emissionWavelength | Length | Emission wavelength |
|
wells | Wells | Array of wells to read |
|
programFileTemplate | string | Program template; well information will be substituted into the template automatically. |
|
programFile | string | Program filename |
|
programData | Program data |
||
output | Output definition for where and how to save the measurements |
||
joinKey | string | The key used to left-join the measurement values with the current DATA |
|
writeTo | string | Filename to write measurements to as JSON |
|
appendTo | string | Filename to append measurements to as newline-delimited JSON |
|
userValues | object | User-specificed values that should be included in the output table |
|
simulated | string | An expression to evaluate with mathjs |
|
units | Map of factor names to unit type; converts the factor values to plain numbers in the given units. |
||
object | Plate | Plate identifier |
required |
site | Site | Site identifier in reader |
|
destinationAfter | SiteOrStay | Site to move the plate to after measurement |
data
The data
module contains two commands for working with data tables:
data.forEachRow
executes sub-steps for each row in the active data table.data.forEachGroup
executes sub-steps for each group of rows in active data table. The grouping criterion is specified bygroupBy
parameter.
data.forEachGroup
Perform sub-steps for every grouping of rows in the active data table.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
groupBy | array,string | The factor(s) to group by |
required |
distinctBy | array,string | The factor(s) to distinguish row by |
|
orderBy | array,string | The factor(s) to order by |
|
durationTotal | Duration | The total duration of this step. The execution of all groups should complete within the allotted time. If execution completes earlier, the protocol will sleep for the remainder of the duration. |
|
durationGroup | Duration | The duration of each row. The execution of each group should complete within the allotted time. If execution completes earlier, the protocol will sleep for the remainder of the duration. |
|
interleave | Duration | The time offset for interleaving each group |
|
timers | array | Timers that should be used |
|
startTimerAfterStep | integer | The duration timer will be started after this step rather than from the beginning, if specified |
|
steps | object | The sequence of commands to perform for each set of factor values. |
data.forEachRow
Perform sub-steps for every row in the active data table. The row's values are placed in SCOPE for the sub-steps.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
distinctBy | array,string | The factor(s) to distinguish row by |
|
orderBy | array,string | The factor(s) to order by |
|
durationTotal | Duration | The total duration of this step. The execution of all rows should complete within the allotted time. If execution completes earlier, the protocol will sleep for the remainder of the duration. |
|
durationRow | Duration | The duration of each row. The execution of each row should complete within the allotted time. If execution completes earlier, the protocol will sleep for the remainder of the duration. |
|
interleave | Duration | The time offset for interleaving each group |
|
timers | array | Timers that should be used |
|
steps | object | The sequence of commands to perform for each set of factor values. |
sealer
The sealer
commands specify actions using sealing equipment.
Sealer
Sealing equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Sealer |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
sealer.sealPlate
Seal a plate.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | string | Program identifier for sealing |
|
object | Plate | Plate identifier |
required |
site | Site | Site identifier of sealer |
|
count | number | Number of times to seal (defaults to 1) |
|
destinationAfter | SiteOrStay | Site to move the plate to after this command |
Agent
An agent that can execute commands.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Agent |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
Data
Specification of an experimental design.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Data |
required |
description | markdown | Optional user description of this item |
|
design | object | ||
actions | array |
Lid
Lid labware
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Lid |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
model | string | required | |
location | string |
LidModel
Model for lid labware
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: LidModel |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
Liquid
Liquid substance.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Liquid |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
wells | array |
Plate
Plate labware.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Plate |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
model | PlateModel | required | |
location | Site | ||
contents | object,array | ||
sealed | boolean | Indicated whether the plate is sealed |
PlateModel
Model for plate labware.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: PlateModel |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
rows | integer | required | |
columns | integer | required |
Site
Represents a bench site where labware can placed.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Site |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
Template
A template object, used by the system.call
command.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Template |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
template |
Variable
User-defined variable.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Variable |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
|
value |
system
The system
commands specify several general, high-level actions that are
not specific to any particular type of equipment.
system._description
Include the value as a description in the generated script.
Properties:
Name | Type | Description | Required |
---|---|---|---|
text | string | Description text |
system._echo
Include the value in the generated script for trouble-shooting.
Properties:
Name | Type | Description | Required |
---|---|---|---|
name | string | Name of echoed thing |
|
value | Thing to echo |
system.call
Call a template function.
The template function should be an object of type Template
with a property template
holding either a Handlebars template string or an object whose properties may be Handlebars template strings. The template will be expanded using the values passed in the params
property.
Properties:
Name | Type | Description | Required |
---|---|---|---|
name | Object | Name of the template function. |
required |
lazyParams | object | Parameters to pass to the template function. |
system.description
Include the value as a description in the generated script.
Properties:
Name | Type | Description | Required |
---|---|---|---|
value | Value to use as description |
system.echo
Include the value in the generated script for trouble-shooting.
Properties:
Name | Type | Description | Required |
---|---|---|---|
value | Value to echo |
system.if
Conditionally execute steps depending on a conditional test.
Properties:
Name | Type | Description | Required |
---|---|---|---|
test | boolean | A boolean value; if true, the |
required |
then | object | The sequence of steps to perform if the test is true. |
|
else | object | The sequence of steps to perform if the test is false. |
system.repeat
Repeat sub-steps a given number of times.
Properties:
Name | Type | Description | Required |
---|---|---|---|
count | integer | The number of times to repeat. |
required |
steps | object | The sequence of commands to repeat. |
|
variableName | string | If provided, a variable will this name will be added to the scope containing the loop index (starting from 1). |
system.runtimeExitLoop
Test at run-time whether to exit the current loop.
Properties:
Name | Type | Description | Required |
---|---|---|---|
testType | string | The type of code to execute to determine whether to break; a JSON truthy value should be returned. One of: nodejs,R |
required |
test | string | The code to execute at runtime that will test whether to exit. |
required |
system.runtimeLoadVariables
Load the runtime values into variables.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
varset | string | Name of the variable set to load |
required |
variables | array | Array of variables to load from 'varset' |
required |
system.runtimeSteps
Handle steps that require runtime variables.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
varset | string | Name of the variable set to load |
required |
variables | array | Array of variables to load from 'varset' |
required |
steps | array,object | Steps to compile at runtime |
required |
timer
The timer
commands specify actions using timer equipment.
Timer
Timer equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Timer |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
timer._sleep
Sleep for a given duration using a specific timer.
Handler should return effects
that the timer is not running.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
duration | Duration | Duration to sleep |
required |
stop | boolean | Whether to stop the timer after waiting, or let it continue |
timer._start
Start the given timer.
Handler should return effects
that the timer is running.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
timer._stop
Stop the given timer.
Handler should return effects
that the timer is not running.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
timer._wait
Wait until the given timer has reacher the given elapsed time.
Handler should:
- expect that the timer (identified by the
equipment
parameter) is running - return
effects
that the timer is not running
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
till | Duration | Number of seconds to wait till from the time the timer was started |
required |
stop | boolean | Whether to stop the timer after waiting, or let it continue |
required |
timer.doAndWait
Start a timer, perform sub-steps, then wait till duration has elapsed.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
duration | Duration | Duration that this command should last |
required |
steps | object,array | Sub-steps to perform |
required |
timer.sleep
Sleep for a given duration.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
duration | Duration | Duration to sleep |
required |
timer.start
Start a timer.
If no parameters are supplied, a timer will be automatically chosen.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
timer.stop
Stop a running a timer.
If only one timer is running, this command can be called without any parameters. Otherwise, the equipment identifier must be supplied.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
timer.wait
Wait until the given timer has reacher the given elapsed time.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
till | Duration | Time that the timer should reach before continuing with the next step |
required |
stop | boolean | Whether to stop the timer after waiting, or let it continue |
required |
shaker
The shaker
commands specify actions using shaker equipment.
Shaker
Shaker equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Shaker |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
shaker.ShakerProgram
Program for shaker.
Properties:
Name | Type | Description | Required |
---|---|---|---|
amplitude | string | Amplitude One of: min,low,high,max |
|
duration | Duration | Duration of shaking |
required |
rpm | number | Rotations per minute (RPM) |
shaker.shakePlate
Shake a plate. If necessary, the plate will be transfered to the shaker first. By default, the plate will also be automatically moved back to its prior location after shaking.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | shaker.ShakerProgram | Program for shaking |
required |
object | Plate | Plate identifier |
required |
site | Site | Site identifier on shaker |
|
destinationAfter | SiteOrStay | Site to move the plate to after this command |
This will shake plate1
for 1 minute:
command: shaker.shakePlate
program:
duration: 1 minute
object: plate1
shaker.run
Run the shaker. This will simply run the given shaker program, regardless of what plate is on the shaker or whether the shaker is empty.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | shaker.ShakerProgram | Program for shaking |
required |
transporter
The transporter
commands specify actions using equipment to transport
labware from one location to another.
Transporter
Labware transporter equipment.
Properties:
Name | Type | Description | Required |
---|---|---|---|
type | string | Type of this object One of: Transporter |
required |
description | markdown | Optional user description of this item |
|
label | markdown | Optional user label for this item |
transporter._moveLidFromContainerToSite
Transport a lid from a container to a destination site.
Developer notes:
Handler should return effects
with the lid's new location.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | name | Program identifier for transport |
required |
object | Labware | Lid identifier |
required |
container | Plate | Container identifier |
required |
destination | Site | Site to move the lid to |
required |
transporter._moveLidFromSiteToContainer
Transport a lid from an origin site to a labware container.
Developer notes:
Handler should return effects
with the lid's new location.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | name | Program identifier for transport |
required |
object | Labware | Lid identifier |
required |
origin | Site | Site to move the lid from |
required |
container | Plate | Container to place the lid on |
required |
transporter._movePlate
Transport a plate to a destination.
Handler should return effects
with the plate's new location.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
required |
equipment | Equipment | Equipment identifier |
required |
program | name | Program identifier for transport |
required |
object | Plate | Plate identifier |
required |
destination | Site | Site to move the plate to |
required |
transporter.doThenRestoreLocation
Perform steps, then return the given labwares to their prior locations.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
objects | array | Plate identifier |
required |
equipment | Equipment | Equipment identifier |
|
program | name | Program identifier for transport |
|
steps | object,array | Sub-steps to perform |
transporter.moveLidFromContainerToSite
Transport a lid from a container to a destination site.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | name | Program identifier for transport |
|
object | Labware | Lid identifier |
required |
destination | Site | Site to move the lid to |
required |
transporter.moveLidFromSiteToContainer
Transport a lid from an origin site to a labware container.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | name | Program identifier for transport |
|
object | Labware | Lid identifier |
required |
container | Labware | Container to move the lid to |
required |
transporter.movePlate
Transport a plate to a destination.
Properties:
Name | Type | Description | Required |
---|---|---|---|
agent | Agent | Agent identifier |
|
equipment | Equipment | Equipment identifier |
|
program | name | Program identifier for transport |
|
object | Plate | Plate identifier |
required |
destination | Site | Site to move the plate to |
required |