New Pioreactor feature: experiment profiles!

New Pioreactor feature: experiment profiles!

Our goal is automate more and more for you. We started with a great UI, then added easy-calibrations, and then we built out dosing, LED, and temperature automations. Next, we want to automate your research even while you sleep! 

In the latest Pioreactor software release, 23.6.7 available today, we are introducing experiment profiles. These are "scripts" (like a movie script) that you can write to automate activities in your Pioreactor cluster. For example, suppose you always start your cultures at 400RPM stirring, 37℃, and with LED channel B turned to 50% intensity. A risk to your experiments is if you forget to perform one of these steps, thus invalidating your results. To solve this, an experiment profile can be created that will start all these jobs and settings across all your Pioreactors when you begin your experiment. 

Another example: suppose you need to change a setting every hour. But for a multi-day experiment, and you can't be available 24/7 to make changes. An experiment profile can be created to automate changing settings for you.

A simple way to think about experiment profiles is as "headless clicking in the UI". That is, actions can be started, paused, stopped, and updated as defined in the experiment profile, just like actions can be controlled in the UI, but no user is needed to be present.

How to create an experiment profile

Here's an example of an experiment profile that controls stirring, defined as a yaml file:


experiment_profile_name: demo_stirring_example

metadata:
  author: Cam Davidson-Pilon
  description: A simple profile to start stirring in your Pioreactor(s), update RPM at 90 seconds, and turn off after 180 seconds.

common:
  stirring:
    actions:
      - type: start
        hours_elapsed: 0.0
        parameters:
          target_rpm: 400.0
      - type: update
        hours_elapsed: 0.025
        options:
          target_rpm: 800.0
      - type: stop
        hours_elapsed: 0.05

While we have plans to implement a web-based way to create profiles, currently, the only way is by writing a yaml document and adding it to your Raspberry Pi's filesystem's ~/.pioreactor/experiment_profiles/ . Here are some examples of experiment profiles you can use. 

We've created documentation on experiment profiles, too. More coming soon! 

What's next?

We think of experiment profiles as in-between the UI (very user friendly, but limiting), and Python (advanced knowledge required, but freedom to do nearly anything). As such, it is a very useful addition for all Pioreactor users! However, writing YAML files and accessing the RPi's filesystem can be challenging, so we are going to make it easy to create and edit profiles from your UI. Stay tuned!