Input Types
Types
Name | Meaning | autoprotocol-python type |
---|---|---|
aliquot | A single aliquot. | Well |
aliquot+ | Several aliquots. | WellGroup |
aliquot++ | Groups of multiple aliquots. | list(WellGroup) |
container | A single container. | Container |
container+ | Several containers. | list(Container) |
integer , decimal | An integral or decimal number, respectively. | int , float |
acceleration , mass_concentration , amount_concentration , frequency , flowrate , temperature , time , volume | A dimensioned value. | Unit |
bool | True or false. | bool |
string | A string. | str |
group | A group of related inputs. | dict |
group+ | Groups of groups of related inputs. | list of dicts |
choice | A list of options that renders as a dropdown menu | list of dicts |
group-choice | A list of options that render another set of inputs when selected | Combination, see details below. |
thermocycle | Groups of thermocycle cycles with groups of steps. | Combination, see details below. |
csv , csv_table | Bulk input from a comma-separated values (CSV) file. | list of dicts , see details below. |
Manifest UI mapping
Demonstrated below are the input types and parameters to construct the manifest. All input types have a "label," "type," "description," and "required" field. The choice
and group-choice
input types do not have the "required" fieldThe "required" field accepts a boolean value that indicates if this input type must be completed.
Aliquots
"sample": {
"type": "aliquot",
"label": "...",
"required": true,
"description": "...",
}
"sample": {
"type": "aliquot+",
"label": "...",
"required": true,
"description": "...."
},
"compounds": {
"type": "aliquot++",
"label": "List of compounds.",
"required": true,
"description": "..."
},
Implementation of the aliquot input type.

Containers
"sample": {
"type": "container",
"label": "...",
"required": true,
"description": "...",
}
"samples": {
"type": "container+",
"label": "Destination(s) from Your Inventory",
"required": true,
"description": "Select destination(s) from your inventory."
}
Implementation of Container+

Dimensional Values, Strings, and Integers
Please note, acceleration
, mass_concentration
, amount_concentration
, frequency
, flowrate
, temperature
, time
, and volume
are just extensions of an integer or string.
"input": {
"type": "volume",
"label": "...",
"default": "10:microliter",
"description": "....",
"required": true,
},
"id": {
"type": "string",
"label": "...",
"default": "example",
"required": true,
"description": "..."
}
"number": {
"type": "integer",
"label": "your_label",
"default": "5",
"required": true,
"description": "number of your input"
}
Implementation of integer, string, and value
Please note that wavelength was used in example, but any dimension can be used.

Boolean
"boolean_box": {
"type": "bool",
"default": false,
"label": "your_label",
"required": true,
"description": "Is false until assigned true"
},
Implementation of boolean.
Note that the default for this boolean selector is set to "true."

Group and Group+
"sample": {
"type": "group",
"label": "...",
"required": true,
"description": "...",
"inputs": {
"group1": {
"label": "your_label",
"type": "another_type",
"default": "00",
},
"group2": {
"label": "your_label",
"type": "another_type",
"default": "00",
}
}
}
"samples": {
"type": "group+",
"label": "...",
"required": true,
"description": "...",
"inputs": {
"sample": {
"type": "...",
"label": "...",
"description": "..."
},
"sample2": {
"type": "...",
"description": "...",
"label": "..."
}
... (ability to add more groups)
}
}
Implementation of Group+.
Similar to Group but with ability to add more groups

Choice and Group-Choice
# One drop-down choice
"source": {
"type": "choice",
"label": "Choose ...",
"default": "value1",
"description": "...",
"options": [
{
"value": "value1",
"name": "..."
},
{
"value": "...",
"name": "..."
}
]
}
# List of options, each provides unique set of inputs
"source": {
"type": "group-choice",
"label": "your_label",
"description": "...",
"default": "this_must_match",
"options": [
{
"value": "this_must_match",
"name": "your_name",
"inputs": {
"name": {
"type": "group+",
"label": "...",
"inputs": {
"source": {
"type": "...",
"label": "..."
},
"name1": {
"type": "...",
"label": "..."
},
"name2": {
"type": "...",
"label": "..."
}
}
}
}
}
]
}
Implementation of Choice.
Group-Choice provides ability to add more groups with choice functionality.

Thermocycle
"therm": {
"label": "Thermocycling Parameters",
"description": "Vendor specific defaults for the chosen polymerase are filled in below, you can make any changes to the thermocycle protocol by changing temperatures and durations or adding or removing steps or groups below.",
"type": "thermocycle",
"required": true,
"default": [
{
"cycles": 1,
"steps": [
{
"temperature": "98:celsius",
"duration": "30:second"
}
]
},
{
"cycles": 30,
"steps": [
{
"temperature": "98:celsius",
"duration": "10:second"
},
{
"temperature": "60:celsius",
"duration": "60:second"
},
{
"temperature": "72:celsius",
"duration": "120:second"
}
]
},
... (more cycles can be added here)
]
}
},
Implementation of Thermocycle

CSV Table
"drugs":{
"type": "csv-table",
"label": "...",
"required": true,
"template": {
"header": ["header1", "header2", "header3", "header4"],
"keys": ["key1", "key2", "key3", "key4"],
"col_type": ["integer", "string", "container", "aliquot"],
"rows": [["0", "1", "2"],
["0", "1", "2"]],
"label": "..."
}
}
"bulk_upload": {
"type": "csv",
"label": "...",
"required": true,
"template": {
"label": "...",
"header": [
"sample_name",
"sample_volume",
"sample_well"
],
"rows": [
[
"compound_1",
"00:microliter",
"A1"
],
[
"compound_2",
"00:microliter",
"A2"
]
]
}
}
Implementation of CSV Table upload

Updated over 2 years ago