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
Experiment profiles choreograph everything that happens across your cluster: which jobs start, when they update, and when they stop. This page walks through creating your first "hello world" profile in the UI, explains how to edit it, and points you to the raw files if you prefer the command line.
7
8
8
-
### Create a profile in the UI
9
+
##Before you begin
9
10
10
-
1. In the sidebar, open **Profiles** for your current experiment and choose **Create new profile**.
11
-
2. Enter a filename.
12
-
3. Use the YAML editor to define the profile. The starter template includes metadata and empty `common` / `pioreactors` blocks. Click **Search jobs and automations** to discover sample tasks for common jobs.
13
-
4. Select **Save** to write the profile to the leader. Saved profiles appear in the **Available profiles** list immediately.
11
+
- Open the experiment you want to control in the UI. Profiles always run in the context of the currently selected experiment.
12
+
- Make sure every Pioreactor that should receive actions is assigned to that experiment and is online.
13
+
- Decide on a short, descriptive filename (for example `hello-world.yaml`). The file is stored on the leader under `~/.pioreactor/experiment_profiles/`.
14
14
15
-

15
+
## Build your first profile in the UI
16
16
17
-
### Edit a profile in the UI
17
+
1. In the sidebar, select **Profiles → Create new profile**.
18
+
2. Enter the filename (omit the `.yaml` extension—Pioreactor adds it for you).
19
+
3. Replace the placeholder YAML with the following starter profile, then customize the commented lines for your cluster:
18
20
19
-
1. On the **Profiles** page, pick the profile from the **Available profiles** dropdown and select **Edit**.
20
-
2. Update the YAML directly in the editor. The same validation rules apply—fix any schema errors surfaced below the editor before saving.
21
-
3. Choose **Save** to persist the update. The file stored at `~/.pioreactor/experiment_profiles/<filename>.yaml` is overwritten with your new contents.
21
+
```yaml
22
+
experiment_profile_name: hello-world-stirring
23
+
metadata:
24
+
author: "Your name"
25
+
description: Kick off stirring everywhere and record OD on a specific worker.
22
26
23
-
Use **Duplicate profile** when you want to branch a profile without overwriting the original, and **View source code** to open a read-only preview in a new tab.
27
+
common:
28
+
jobs:
29
+
stirring:
30
+
actions:
31
+
- type: start
32
+
hours_elapsed: 0
33
+
options:
34
+
target_rpm: 600
24
35
25
-

36
+
pioreactors:
37
+
pio001: # Replace with your worker id
38
+
jobs:
39
+
od_reading:
40
+
actions:
41
+
- type: start
42
+
hours_elapsed: 0
43
+
- type: stop
44
+
hours_elapsed: 1
45
+
```
26
46
27
-
### Alternatively: On the command line
47
+
4. Click **Search jobs and automations** if you want to insert additional sample actions—results paste directly into the editor.
48
+
5. Choose **Save**. The profile appears immediately under **Available profiles**, ready to run with **Start profile**.
28
49
29
-
All profiles are stored on the leader's disk under `~/.pioreactor/experiment_profiles/`, allowing you to create and edit profiles in this directory, as well.
50
+

30
51
31
-
Need the full syntax reference? See [Experiment profile schema and syntax](/user-guide/experiment-profiles-schema).
52
+
### How the example works
53
+
54
+
- `common` tasks run for **every** worker in the experiment. Here we start the stirring job everywhere at `0` hours elapsed.
55
+
- `pioreactors`lets you target individual workers. Swap `pio001` for your unit name (the UI autocompletes known workers) to start and stop OD readings only on that Pioreactor.
56
+
- `hours_elapsed`is relative to when the profile starts. Setting `1` means "one hour after I launch this profile".
57
+
- You can add as many jobs as you like. Keep related actions in chronological order so they are easy to read later.
58
+
59
+
## Edit and iterate on a profile
60
+
61
+
1. Go back to **Profiles**, pick the file from **Available profiles**, and click **Edit**.
62
+
2. Adjust the YAML—validation hints appear directly under the editor if you break the schema.
63
+
3. Select **Save**. The file in `~/.pioreactor/experiment_profiles/<filename>.yaml` is overwritten.
64
+
4. Use **Duplicate profile** when you want to branch an idea without touching the original, or **View source code** for a read-only copy in a new tab.
65
+
66
+

67
+
68
+
## Prefer the command line?
69
+
70
+
Profiles are plain text. You can edit them locally on the leader with any editor:
After saving, return to the UI and refresh the Profiles page—your changes load instantly. Keep the [Experiment profile schema and syntax](/user-guide/experiment-profiles-schema) reference open for the full list of jobs, actions, and options.
description: Automations let Pioreactor run dosing, temperature, LED, and growth workflows for you.
4
5
hide_table_of_contents: true
5
6
---
6
7
7
-
So far, we have worked with basic activities that you can directly set as a one time thing, typically at the beginning of your experiment (starting stirring, OD readings, etc.). For more advanced experiments, we introduce automations.
8
+
Automations are Pioreactor’s presets for running repeatable tasks without babysitting every step. Instead of manually toggling stirring, repeatedly starting a pump, or scheduling LED cycles, you can hand those decisions to an automation and focus on interpreting the experiment.
8
9
9
-
Automations are preset functions that are _automated_, or performed by the Pioreactor without the need of your intervention. This is great for when you want to change the environment of your experiment in some way, whether periodically or at a given time — and you don't want to change your settings each time!
10
+
Use an automation when:
10
11
11
-
Some examples:
12
-
* Every 15 minutes, you want to introduce new media and remove old media using [pumps](/user-guide/dosing-automations#chemostat).
13
-
* When working with phototrophs (such as algae), you want to create “day/night” cycles by [turning on/off your LEDs](/user-guide/led-automations).
12
+
* You need to maintain a culture state (for example, chemostat or turbidostat modes).
13
+
* The experiment requires timed cycles such as day/night lighting or periodic dosing.
14
+
* You want Pioreactor to react to sensor data (growth rate calculations, temperature feedback loops, etc.).
14
15
15
-
Setting automations can be done so that the Pioreactor performs these tasks automatically. These automations can be found under _Activities_, when you _Manage_ your Pioreactor.
16
+
## Start an automation from the UI
16
17
17
-

18
+
1. Open **Pioreactors** → choose the reactor you want to configure.
19
+
2. Click **Manage** (or **Control**) to open the activities drawer.
20
+
3. In **Activities**, locate the automation you need and use **Start**.
18
21
22
+

23
+
_Highlighted rows show where temperature, dosing, and LED automations live inside the Activities dialog._
19
24
20
-
### `Skip first run`?
25
+
Each automation runs as its own background job, so you can mix and match—for example, keep stirring and growth-rate measurements active while only dosing automatically.
21
26
22
-
When starting an automation, like a chemostat, it is ambiguous whether to start dosing (or checking whether to dose) _immediately_, or wait _N_ minutes to start. Checking `Skip first run` will choose the latter: wait _N_ minutes, and then begin.
27
+
## Available automation types
28
+
29
+
The three most common automation families live in this drawer:
30
+
31
+
***Temperature automation** – closes the loop on vial temperature using the heater. Options include thermostat-style control or logging-only mode. See [Temperature automations](/user-guide/temperature-automations).
32
+
***Dosing automation** – runs pumps in chemostat, turbidostat, or fed-batch patterns and logs media usage automatically. See [Dosing automations](/user-guide/dosing-automations).
33
+
***LED automation** – coordinates LED intensity and scheduling (for example day/night cycles for phototrophs). See [LED automations](/user-guide/led-automations).
34
+
35
+
You can also create custom automations or profiles (see [Writing automations](/user-guide/writing-automations)) when your experiment requires bespoke logic.
36
+
37
+
## `Skip first run`
38
+
39
+
When you start an automation, Pioreactor needs to know whether it should execute immediately or after the first interval. Selecting **Skip first run** delays the initial action by one full interval (_N_ minutes) before beginning the loop. Use this when the culture needs to equilibrate before the automation intervenes, or when you schedule automations ahead of time and do not want them to fire right away.
0 commit comments