Skip to content

Commit ac00343

Browse files
authored
Docs Update: add placeholder notebook for BMG Labtech CLARIOstar (#660)
1 parent 29564b4 commit ac00343

File tree

7 files changed

+336
-53
lines changed

7 files changed

+336
-53
lines changed
Lines changed: 324 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,324 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "18708b66",
6+
"metadata": {},
7+
"source": [
8+
"# BMG Labtech CLARIOstar (Plus)\n",
9+
"\n",
10+
"| Summary | Photo |\n",
11+
"|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|\n",
12+
"| - [OEM Link](https://www.bmglabtech.com/en/clariostar-plus/)<br>- **Communication Protocol / Hardware**: Serial (FTDI)/ USB-A<br>- **Communication Level**: Firmware<br>- **Measurement Modes**: Absorbance, Luminescence, Fluorescence <br>- **Plate Delivery**: Loading tray<br>- **Additional Standard Features**: Temperature sontrol, Shaking<br><br>- **Additional Upgrades**: Injector system, increased max temperature, plate stacking system, ... | ![quadrants](img/bmg-labtech-clariostar-plus.png) |\n"
13+
]
14+
},
15+
{
16+
"cell_type": "markdown",
17+
"id": "80e2e5dc",
18+
"metadata": {},
19+
"source": [
20+
"---\n",
21+
"## Setup Instructions (Physical)\n",
22+
"\n",
23+
"The CLARIOstar and CLARIOstar Plus require a minimum of two cable connections to be operational:\n",
24+
"1. Power cord (standard IEC C13)\n",
25+
"2. USB cable (USB-B with security screws at CLARIOstar end; USB-A at control PC end)\n",
26+
"\n",
27+
"Optional:\n",
28+
"If you have a plate stacking unit to use with the CLARIOstar (Plus), an additional RS-232 port is available on the CLARIOstar (Plus).\n"
29+
]
30+
},
31+
{
32+
"cell_type": "markdown",
33+
"id": "adb29364",
34+
"metadata": {},
35+
"source": [
36+
"---\n",
37+
"## Setup Instructions (Programmatic)\n",
38+
"\n"
39+
]
40+
},
41+
{
42+
"cell_type": "code",
43+
"execution_count": null,
44+
"id": "34531f2c",
45+
"metadata": {},
46+
"outputs": [],
47+
"source": [
48+
"%load_ext autoreload\n",
49+
"%autoreload 2"
50+
]
51+
},
52+
{
53+
"cell_type": "markdown",
54+
"id": "e7a179e9",
55+
"metadata": {},
56+
"source": [
57+
"To control the BMG Labtech CLARIOstar (Plus), generate a `PlateReader` frontend instance that uses a `CLARIOstarBackend` instance as its backend.\n",
58+
"\n",
59+
"To access the CLARIOstar-specific machine features you can still use the backend directly.\n",
60+
"For convenience, it is useful to therefore store the backend instance as a separate `clariostar_backend` variable."
61+
]
62+
},
63+
{
64+
"cell_type": "code",
65+
"execution_count": null,
66+
"id": "363b8144",
67+
"metadata": {},
68+
"outputs": [],
69+
"source": [
70+
"from pylabrobot.plate_reading import PlateReader\n",
71+
"\n",
72+
"from pylabrobot.plate_reading.clario_star_backend import CLARIOstarBackend\n",
73+
"clariostar_backend = CLARIOstarBackend()\n",
74+
"\n",
75+
"pr = PlateReader(\n",
76+
" name=\"CLARIOstar\",\n",
77+
" backend=clariostar_backend,\n",
78+
" size_x=0.0, # TODO: generate new handling for resources with loading tray \n",
79+
" size_y=0.0,\n",
80+
" size_z=0.0\n",
81+
" )"
82+
]
83+
},
84+
{
85+
"cell_type": "code",
86+
"execution_count": null,
87+
"id": "30720acb",
88+
"metadata": {},
89+
"outputs": [],
90+
"source": [
91+
"await pr.setup()"
92+
]
93+
},
94+
{
95+
"cell_type": "markdown",
96+
"id": "65555028",
97+
"metadata": {},
98+
"source": [
99+
"```{note}\n",
100+
"Expected behaviour: the machine should perform its initialization routine.\n",
101+
"```"
102+
]
103+
},
104+
{
105+
"cell_type": "markdown",
106+
"id": "7d2e9ed2",
107+
"metadata": {},
108+
"source": [
109+
"---\n",
110+
"\n",
111+
"## Usage / Machine Features\n",
112+
"\n",
113+
"### Loading Tray"
114+
]
115+
},
116+
{
117+
"cell_type": "code",
118+
"execution_count": null,
119+
"id": "c0834a6e",
120+
"metadata": {},
121+
"outputs": [],
122+
"source": [
123+
"await pr.open()"
124+
]
125+
},
126+
{
127+
"cell_type": "code",
128+
"execution_count": 2,
129+
"id": "77c3406b",
130+
"metadata": {},
131+
"outputs": [],
132+
"source": [
133+
"# perform arm movement to move your plate of interest onto the CLARIOstar's loading tray\n",
134+
"# this movement can be performed by a human\n",
135+
"# or it can be performed by a robotic arm"
136+
]
137+
},
138+
{
139+
"cell_type": "code",
140+
"execution_count": null,
141+
"id": "092a02fa",
142+
"metadata": {},
143+
"outputs": [],
144+
"source": [
145+
"await pr.close()"
146+
]
147+
},
148+
{
149+
"cell_type": "markdown",
150+
"id": "9c4d21b7",
151+
"metadata": {},
152+
"source": [
153+
"### Set Temperature\n",
154+
"\n",
155+
"The CLARIOstar offers a temperature control feature.\n",
156+
"Reaching a set temperature is relatively slow compared to standalone temperature controllers.\n",
157+
"We therefore recommend setting the temperature early on in your automated Protocol (aP)."
158+
]
159+
},
160+
{
161+
"cell_type": "code",
162+
"execution_count": 3,
163+
"id": "bb2de16b",
164+
"metadata": {},
165+
"outputs": [],
166+
"source": [
167+
"# WIP: feature exposure in active development"
168+
]
169+
},
170+
{
171+
"cell_type": "markdown",
172+
"id": "bf4840ea",
173+
"metadata": {},
174+
"source": [
175+
"### Set Shaking\n",
176+
"\n",
177+
"The CLARIOstar offers a shaking feature."
178+
]
179+
},
180+
{
181+
"cell_type": "code",
182+
"execution_count": null,
183+
"id": "60b71bea",
184+
"metadata": {},
185+
"outputs": [],
186+
"source": [
187+
"# WIP: feature in active development"
188+
]
189+
},
190+
{
191+
"cell_type": "markdown",
192+
"id": "c4be6218",
193+
"metadata": {},
194+
"source": [
195+
"---\n",
196+
"### Measuring Absorbance\n",
197+
"\n"
198+
]
199+
},
200+
{
201+
"cell_type": "code",
202+
"execution_count": null,
203+
"id": "e23acc3d",
204+
"metadata": {},
205+
"outputs": [],
206+
"source": [
207+
"# WIP: feature in active development including\n",
208+
"# reading subsets of wells\n",
209+
"# specifying orbital diameter\n",
210+
"# specifying number of technical replicate measurements per well\n",
211+
"# specifying start position for reading: topleft, topright, bottomleft, bottomright\n",
212+
"# ...\n",
213+
"\n",
214+
"results_absorbance = await pr.read_absorbance()\n"
215+
]
216+
},
217+
{
218+
"cell_type": "markdown",
219+
"id": "d9a13de2",
220+
"metadata": {},
221+
"source": [
222+
"`results` will be a width x height array of absorbance values.\n",
223+
"\n"
224+
]
225+
},
226+
{
227+
"cell_type": "markdown",
228+
"id": "e57e55de",
229+
"metadata": {},
230+
"source": [
231+
"\n",
232+
"#### Performing a Spectral Scan\n",
233+
"\n"
234+
]
235+
},
236+
{
237+
"cell_type": "code",
238+
"execution_count": null,
239+
"id": "8cae50a6",
240+
"metadata": {},
241+
"outputs": [],
242+
"source": [
243+
"# WIP: feature in active development"
244+
]
245+
},
246+
{
247+
"cell_type": "markdown",
248+
"id": "c7a70d7e",
249+
"metadata": {},
250+
"source": [
251+
"### Measuring Luminescence\n"
252+
]
253+
},
254+
{
255+
"cell_type": "code",
256+
"execution_count": null,
257+
"id": "c8656ef6",
258+
"metadata": {},
259+
"outputs": [],
260+
"source": [
261+
"# WIP: feature in active development\n",
262+
"\n",
263+
"results_luminescence = await pr.read_luminescence()"
264+
]
265+
},
266+
{
267+
"cell_type": "markdown",
268+
"id": "8554a66c",
269+
"metadata": {},
270+
"source": [
271+
"### Measuring Fluorescence\n"
272+
]
273+
},
274+
{
275+
"cell_type": "code",
276+
"execution_count": null,
277+
"id": "637f06a7",
278+
"metadata": {},
279+
"outputs": [],
280+
"source": [
281+
"# WIP: feature in active development"
282+
]
283+
},
284+
{
285+
"cell_type": "markdown",
286+
"id": "362dd696",
287+
"metadata": {},
288+
"source": [
289+
"### Using the Injector Needles\n"
290+
]
291+
},
292+
{
293+
"cell_type": "code",
294+
"execution_count": null,
295+
"id": "cd676c58",
296+
"metadata": {},
297+
"outputs": [],
298+
"source": [
299+
"# WIP: feature in active development"
300+
]
301+
}
302+
],
303+
"metadata": {
304+
"kernelspec": {
305+
"display_name": "plr",
306+
"language": "python",
307+
"name": "python3"
308+
},
309+
"language_info": {
310+
"codemirror_mode": {
311+
"name": "ipython",
312+
"version": 3
313+
},
314+
"file_extension": ".py",
315+
"mimetype": "text/x-python",
316+
"name": "python",
317+
"nbconvert_exporter": "python",
318+
"pygments_lexer": "ipython3",
319+
"version": "3.12.11"
320+
}
321+
},
322+
"nbformat": 4,
323+
"nbformat_minor": 5
324+
}

docs/user_guide/02_analytical/plate-reading/bmg-clariostar.rst

Lines changed: 0 additions & 49 deletions
This file was deleted.
113 KB
Loading

docs/user_guide/02_analytical/plate-reading/plate-reading.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ Plate Readers
33

44
PyLabRobot supports the following plate readers:
55

6-
- :ref:`BMG Clariostar <clariostar>`
6+
- `BMG Labtech CLARIOstar`
77

8+
Plate readers are controlled by the :class:`~pylabrobot.plate_reading.plate_reader.PlateReader` class. This class takes a backend as an argument. The backend is responsible for communicating with the plate reader and is specific to the hardware being used.
89

910

1011
.. toctree::

docs/user_guide/machines.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ tr > td:nth-child(5) { width: 15%; }
144144

145145
| Manufacturer | Machine | Features | PLR-Support | Links |
146146
|--------------|---------|----------|-------------|--------|
147-
| BMG Labtech | CLARIOstar | <span class="badge badge-absorbance">absorbance</span><span class="badge badge-fluorescence">fluorescence</span><span class="badge badge-luminescence">luminescence</span> | Full | [PLR](https://docs.pylabrobot.org/user_guide/02_analytical/plate-reading/bmg-clariostar.html) / [OEM](https://www.bmglabtech.com/en/clariostar-plus/) |
147+
| BMG Labtech | CLARIOstar (Plus) | <span class="badge badge-absorbance">absorbance</span><span class="badge badge-fluorescence">fluorescence</span><span class="badge badge-luminescence">luminescence</span> | Full | [PLR](https://docs.pylabrobot.org/user_guide/02_analytical/plate-reading/bmg-clariostar.html) / [OEM](https://www.bmglabtech.com/en/clariostar-plus/) |
148148
| Agilent (BioTek) | Cytation 1 | <span class="badge badge-absorbance">absorbance</span><span class="badge badge-fluorescence">fluorescence</span><span class="badge badge-luminescence">luminescence</span><span class="badge badge-microscopy">microscopy</span> | Full | [PLR](https://docs.pylabrobot.org/user_guide/02_analytical/plate-reading/cytation5.html) / [OEM](https://www.agilent.com/en/product/cell-analysis/cell-imaging-microscopy/cell-imaging-multimode-readers/biotek-cytation-1-cell-imaging-multimode-reader-1623200) |
149149
| Agilent (BioTek) | Cytation 5 | <span class="badge badge-absorbance">absorbance</span><span class="badge badge-fluorescence">fluorescence</span><span class="badge badge-luminescence">luminescence</span><span class="badge badge-microscopy">microscopy</span> | Full | [PLR](https://docs.pylabrobot.org/user_guide/02_analytical/plate-reading/cytation5.html) / [OEM](https://www.agilent.com/en/product/cell-analysis/cell-imaging-microscopy/cell-imaging-multimode-readers/biotek-cytation-5-cell-imaging-multimode-reader-1623202) |
150150
| Byonoy | Absorbance 96 Automate | <span class="badge badge-absorbance">absorbance</span> | WIP | [OEM](https://byonoy.com/absorbance-96-automate/) |

0 commit comments

Comments
 (0)