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 second
  • 3 minutes = 3 minutes
  • 4 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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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 output.joinKey)

  userValues object

User-specificed values that should be included in the output table (deprecated, use output.userValues)

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

outputDataset string

Name of dataset to which the measurements values will be appended. (deprecated, use output.appendTo)

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:

NameTypeDescriptionRequired
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
Example:
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:

NameTypeDescriptionRequired
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

Example:

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:

NameTypeDescriptionRequired
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

Example:

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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
agent Agent

Agent identifier

required
equipment Equipment

Equipment identifier

required

incubator

The incubator commands specify actions using incubator equipment.

Incubator

Incubator equipment.

Properties:

NameTypeDescriptionRequired
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
Example:
"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:

NameTypeDescriptionRequired
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

Example:

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:

NameTypeDescriptionRequired
agent Agent

Agent identifier

equipment Equipment

Equipment identifier

plates array

List of plates to incubate

sites array

Internal sites to put the plates on

Example:

This will insert two plates into the incubator:

{
  "command": "incubator.insertPlates",
  "plates": ["plate1", "plate2"]
}

incubator.run

Run the incubator with the given program.

Properties:

NameTypeDescriptionRequired
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

Example:

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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
syringe number,nameOf Syringe

Syringe identifier

required
source Well

Source specifier

required
volume Volume

Volume

required

pipetter._DispenseItem

Parameters for pipette items.

Properties:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
syringe number,nameOf Syringe

Syringe identifier

required
well Well

Well specifier

required

pipetter.MeasureVolumeItem

Parameters for pipetter.measureVolume items.

Properties:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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 -- begin: distribute diluent to destination wells first (default); before: add diluent right before transfering aliquot; after: add diluent right after transfering aliquot; source: dilute the well that the aliquot will be extracted from.

One of: begin,before,after,source
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 lastWellHandling)

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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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 by groupBy parameter.

data.forEachGroup

Perform sub-steps for every grouping of rows in the active data table.

Properties:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
text string

Description text

system._echo

Include the value in the generated script for trouble-shooting.

Properties:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
value

Value to use as description

system.echo

Include the value in the generated script for trouble-shooting.

Properties:

NameTypeDescriptionRequired
value

Value to echo

system.if

Conditionally execute steps depending on a conditional test.

Properties:

NameTypeDescriptionRequired
test boolean

A boolean value; if true, the then steps are executed.

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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
agent Agent

Agent identifier

equipment Equipment

Equipment identifier

timer.wait

Wait until the given timer has reacher the given elapsed time.

Properties:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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

Example:

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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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:

NameTypeDescriptionRequired
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