Skip to content

Commit 1829c4c

Browse files
new svgs
1 parent cad2aba commit 1829c4c

13 files changed

+173
-36
lines changed

core/pioreactor/calibrations/protocols/od_reference_standard.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,11 +261,7 @@ class ODReferenceStandardProtocol(CalibrationProtocol[pt.ODCalibrationDevices]):
261261
protocol_name = "od_reference_standard"
262262
title = "Optics Calibration Jig"
263263
description = "Calibrate OD using the Pioreactor Optical Reference Standard."
264-
requirements = (
265-
"OD reading must be off before starting.",
266-
"Insert the Optics Calibration Jig.",
267-
"Set ir_led_intensity in [od_reading.config] to a numeric value.",
268-
)
264+
requirements = ("Optics Calibration Jig", "2x tubes from the Vial Cap S")
269265
step_registry: ClassVar[StepRegistry] = _REFERENCE_STANDARD_STEPS
270266

271267
@classmethod

core/pioreactor/calibrations/protocols/od_standards.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,12 @@ class ChannelConfirm(SessionStep):
349349

350350
def render(self, ctx: SessionContext) -> CalibrationStep:
351351
channel_summary = ctx.data.get("channel_summary", "")
352-
return steps.info("Confirm channels", f"Using channels {channel_summary}.")
352+
channel_lines = channel_summary.split(", ") if channel_summary else []
353+
if channel_lines:
354+
message = "Using channels:\n" + "\n".join(channel_lines)
355+
else:
356+
message = "Using channels."
357+
return steps.info("Confirm channels", message)
353358

354359
def advance(self, ctx: SessionContext) -> SessionStep | None:
355360
if ctx.inputs.has_inputs:
@@ -389,7 +394,15 @@ def render(self, ctx: SessionContext) -> CalibrationStep:
389394
_get_channel_angle_map(ctx),
390395
)
391396
if chart:
392-
step.metadata = {"chart": chart}
397+
step.metadata["chart"] = chart
398+
else:
399+
step.metadata = {
400+
"image": {
401+
"src": "/static/svgs/place-standard-arrow-pioreactor.svg",
402+
"alt": "Place a non-blank standard vial with a stir bar into the Pioreactor.",
403+
"caption": "Place a non-blank standard vial with a stir bar into the Pioreactor.",
404+
}
405+
}
393406
return step
394407

395408
def advance(self, ctx: SessionContext) -> SessionStep | None:
@@ -436,7 +449,7 @@ def render(self, ctx: SessionContext) -> CalibrationStep:
436449
[
437450
fields.choice(
438451
"next_action",
439-
["record another standard", "continue to blank"],
452+
["record another standard", "finish, and continue to blank"],
440453
label="Next action",
441454
default="record another standard",
442455
)
@@ -469,7 +482,7 @@ def advance(self, ctx: SessionContext) -> SessionStep | None:
469482
return PlaceStandard()
470483
next_action = ctx.inputs.choice(
471484
"next_action",
472-
["record another standard", "continue to blank"],
485+
["record another standard", "finish, and continue to blank"],
473486
default="record another standard",
474487
)
475488
if next_action == "record another standard":
@@ -485,13 +498,14 @@ def render(self, ctx: SessionContext) -> CalibrationStep:
485498
"Place blank",
486499
"Place the blank (media only) standard vial into the Pioreactor.",
487500
)
488-
chart = _build_standards_chart_metadata(
489-
ctx.data.get("od600_values", []),
490-
ctx.data.get("voltages_by_channel", {}),
491-
_get_channel_angle_map(ctx),
492-
)
493-
if chart:
494-
step.metadata = {"chart": chart}
501+
step.metadata = {
502+
"image": {
503+
"src": "/static/svgs/place-blank-arrow-pioreactor.svg",
504+
"alt": "Place the blank (media only) standard vial into the Pioreactor.",
505+
"caption": "Place the blank (media only) standard vial into the Pioreactor.",
506+
}
507+
}
508+
495509
return step
496510

497511
def advance(self, ctx: SessionContext) -> SessionStep | None:
@@ -582,9 +596,9 @@ class StandardsODProtocol(CalibrationProtocol[pt.ODCalibrationDevices]):
582596
title = "OD standards calibration"
583597
description = "Calibrate OD channels using a series of OD600 standards and a blank."
584598
requirements = (
585-
"OD reading and stirring must be off before starting.",
586-
"Have OD600 standards ready (including a blank).",
587-
"Each vial should include a stir bar.",
599+
"OD600 standards (including a blank)",
600+
"Vials",
601+
"Stir bars",
588602
)
589603
step_registry: ClassVar[StepRegistry] = _OD_STANDARDS_STEPS
590604

core/pioreactor/calibrations/protocols/pump_duration_based.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ class IntroConfirm3(SessionStep):
220220
def render(self, ctx: SessionContext) -> CalibrationStep:
221221
step = steps.info(
222222
"Keep hardware safe",
223-
"Keep the vial and tubing away from the Pioreactor hardware during this protocol",
223+
"Make space between the vial and Pioreactor hardware",
224224
)
225225
step.metadata = {
226226
"image": {
@@ -332,8 +332,8 @@ class TubingIntoWater(SessionStep):
332332
def render(self, ctx: SessionContext) -> CalibrationStep:
333333
pump_device = _get_pump_device(ctx)
334334
step = steps.info(
335-
f"Place tubing ends in water ({pump_device})",
336-
"Place both ends of the tubing into the larger container of water before priming.",
335+
f"Place tubing ends of {pump_device} in water",
336+
f"Place both ends of the {pump_device} tubing into the larger container of water to prime.",
337337
)
338338
step.metadata = {
339339
"image": {
@@ -356,8 +356,8 @@ class PrimePumpDuration(SessionStep):
356356
def render(self, ctx: SessionContext) -> CalibrationStep:
357357
return steps.form(
358358
"Prime pump",
359-
"Prime the pump by filling the tubes completely with water.",
360-
[fields.float("prime_duration_s", label="Prime duration (seconds)", default=10.0, minimum=0.1)],
359+
"Prime the pump by filling the tubes completely with water. There should be no air pockets by the end.",
360+
[fields.float("prime_duration_s", label="Prime duration (seconds)", default=15.0, minimum=5)],
361361
)
362362

363363
def advance(self, ctx: SessionContext) -> SessionStep | None:
@@ -375,7 +375,11 @@ def render(self, ctx: SessionContext) -> CalibrationStep:
375375
tracer_duration = float(ctx.data.get("tracer_duration_s", 1.0))
376376
step = steps.action(
377377
"Tracer run",
378-
f"Running the pump for {tracer_duration:.2f} seconds. While running, hold the tube above the vial. Please measure the volume expelled. Ready?",
378+
(
379+
f"Running the pump for {tracer_duration:.2f} seconds.\n\n"
380+
"While running, hold the tube above the vial. Please measure the volume expelled.\n\n"
381+
"Ready?"
382+
),
379383
)
380384
step.metadata = {
381385
"image": {
@@ -428,7 +432,7 @@ def render(self, ctx: SessionContext) -> CalibrationStep:
428432
duration = float(durations[test_index])
429433
step = steps.action(
430434
"Dispense",
431-
f"Next: running the pump for {duration:.2f} seconds. Please measure the volume expelled. Ready?",
435+
f"Next: running the pump for {duration:.2f} seconds. Please measure the volume expelled. \n\nReady?",
432436
)
433437
if results:
434438
step.metadata = {
@@ -581,8 +585,10 @@ class DurationBasedPumpProtocol(CalibrationProtocol[pt.PumpCalibrationDevices]):
581585
title = "Duration-based pump calibration"
582586
description = "Build a duration-to-volume curve for the {device} pump using a simple multi-step flow."
583587
requirements = (
584-
"Place the outflow tube into a measuring container or scale.",
585-
"Have clean water available for priming and tests.",
588+
"Peristaltic pump",
589+
"Pioreactor vial",
590+
"Container of clean water",
591+
"Measuring container or scale",
586592
)
587593
step_registry: ClassVar[StepRegistry] = _PUMP_DURATION_STEPS
588594

core/pioreactor/calibrations/protocols/stirring_dc_based.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,9 @@ class DCBasedStirringProtocol(CalibrationProtocol[Literal["stirring"]]):
278278
title = "Stirring DC-based calibration"
279279
description = "Maps duty cycle to RPM for the current stirrer configuration."
280280
requirements = (
281-
"Stirring must be off before starting.",
282-
"Insert a vial with a stir bar and the liquid volume you plan to use (water is fine).",
281+
"Vial",
282+
"Stir bar",
283+
"Liquid (water is fine)",
283284
)
284285
step_registry: ClassVar[StepRegistry] = _DC_BASED_STEPS
285286

frontend/public/svgs/calibration-complete.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 37 additions & 0 deletions
Loading
Lines changed: 40 additions & 0 deletions
Loading
Lines changed: 37 additions & 0 deletions
Loading

frontend/public/svgs/pump-measure-volume.svg

Lines changed: 2 additions & 2 deletions
Loading

frontend/public/svgs/tubing-ends-in-water.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)