You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To create a custom container, you need to create a JSON file that defines the shape of the container.
7
+
Here is an example of a custom container that represents a plate with only 3 circular wells.
8
+
9
+
.. code-block:: javascript
10
+
11
+
{
12
+
"containers": {
13
+
"tuberack-custom": {
14
+
"locations": {
15
+
"A1": {
16
+
"x":0,
17
+
"y":0,
18
+
"z":0,
19
+
"depth":30,
20
+
"diameter":6,
21
+
"total-liquid-volume":500
22
+
},
23
+
"B1": {
24
+
"x":20,
25
+
"y":0,
26
+
"z":0,
27
+
"depth":30,
28
+
"diameter":6,
29
+
"total-liquid-volume":500
30
+
},
31
+
"C1": {
32
+
"x":40,
33
+
"y":0,
34
+
"z":0,
35
+
"depth":30,
36
+
"diameter":6,
37
+
"total-liquid-volume":500
38
+
}
39
+
}
40
+
}
41
+
}
42
+
}
43
+
44
+
The first key, "containers", is required in every container file. The next key, "tuberack-custom", is the name of your custom container.
45
+
Inside "locations" you can define the x, y, z, depth, diameter, and total-liquid-volume (a volume tracking feature is coming soon).
46
+
47
+
If you would like to create a container with rectangular wells, simple replace the "diameter" attribute with a "length" and "width" attribute, like so:
48
+
49
+
.. code-block:: javascript
50
+
51
+
{
52
+
"containers": {
53
+
"trash-square": {
54
+
"locations": {
55
+
"A1": {
56
+
"x":0,
57
+
"y":0,
58
+
"z":0,
59
+
"depth":35,
60
+
"diameter":6,
61
+
"total-liquid-volume":500
62
+
},
63
+
}
64
+
}
65
+
}
66
+
}
67
+
68
+
69
+
In addition, you can include any number of custom containers in a container file - simply add more containers as values of the "containers" key. For example:
70
+
71
+
.. code-block:: javascript
72
+
73
+
{
74
+
"containers": {
75
+
"trash-square": {
76
+
"locations": {
77
+
"A1": {
78
+
"x":0,
79
+
"y":0,
80
+
"z":0,
81
+
"depth":35,
82
+
"diameter":6,
83
+
"total-liquid-volume":500
84
+
},
85
+
}
86
+
},
87
+
"trash-square": {
88
+
"locations": {
89
+
"A1": {
90
+
"x":5,
91
+
"y":10,
92
+
"z":15,
93
+
"depth":40,
94
+
"length":5,
95
+
"width":10,
96
+
"total-liquid-volume":538
97
+
}
98
+
}
99
+
}
100
+
}
101
+
}
102
+
103
+
104
+
Lastly, to load a custom container into your app, click "File" and then "Open Containers Folder". Then, drag or copy and paste in the custom container file you wrote in order to access it through a Python or JSON protocol.
105
+
106
+
Here is an example of loading into a Python protocol the custom trash container that I defined above.
The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
46
+
The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
47
47
48
-
We've designed it in a way we hope is accessible to anyone with basic computer and wetlab skills. As a bench scientist, you should be able to code your automated protocols in a way that reads like a lab notebook.
48
+
We've designed it in a way we hope is accessible to anyone with basic computer and wetlab skills. As a bench scientist, you should be able to code your automated protocols in a way that reads like a lab notebook.
49
49
50
50
.. testcode:: index_main
51
-
51
+
52
52
pipette.aspirate(tube_1).dispense(tube_2)
53
53
54
-
That is how you tell the Opentrons robot to aspirate its the maximum volume of the current pipette from one tube and dispense it into another one.
54
+
That is how you tell the Opentrons robot to aspirate its the maximum volume of the current pipette from one tube and dispense it into another one.
55
55
56
56
You string these commands into full protocols that anyone with Opentrons can run. This one way to program the robot to use a p200 pipette to pick up 200ul (its full volume) and dispense 50ul into the first four wells in a 96 well plate called 'plate.'
57
57
58
58
.. testcode:: index_main
59
-
59
+
60
60
p200.aspirate(trough[1])
61
61
p200.dispense(50, plate[0])
62
62
p200.dispense(50, plate[1])
@@ -66,7 +66,7 @@ You string these commands into full protocols that anyone with Opentrons can run
66
66
If you wanted to do this 96 times, you could write it like this:
* Dispense everything into well A2 on the same plate
89
89
90
-
**Permissive**: everyone's process is different and we are not trying to impose our way of thinking on you. Instead, our API allows for different ways of expressing your protocol and adding fine details as you need them.
90
+
**Permissive**: everyone's process is different and we are not trying to impose our way of thinking on you. Instead, our API allows for different ways of expressing your protocol and adding fine details as you need them.
91
91
For example:
92
92
93
93
.. testcode:: index_main
@@ -122,7 +122,7 @@ Below is a short protocol that will pick up a tip and use it to move 100ul volum
0 commit comments