Despite being the key to accelerating life science research in academia and industry, lab automation has been adopted far too slowly. Without programming expertise or access to expensive commercial solutions, it remains difficult for startups or labs to develop automation that satisfies their requirements of integrating various different components in experimental setups.
Here, we present Automancer, a software application that enables researchers to design, automate, and manage their experiments. Automancer is open-source, easy-to-use, and can automate just about any process in your lab.
Protocols typically interact with lab devices, such as temperature controllers, relays, microscopes and liquid handlers, but can perform any action, such as uploading a file to S3 or asking the user for confirmation. All of those functionalities are defined via plugins. Automancer is highly extensible, you can support custom actions by creating your own plugins and developing your own connections for devices.
Protocols are written in a simple, YAML-like declarative text language. In the example below, the protocol acts on a setup which only contains a camera. Automancer will first ask for the user to confirm that the camera’s focus is ready, and then create a timelapse by taking a picture every 10 seconds, until 200 pictures have been taken.
name: Timelapse
protocol:
actions:
- query: Confirm that focus is correct # Sends a prompt to the user
- actions:
- Camera.capture:
exposure: 50 ms
output: {{ f"images/{index}.jpg" }}
- wait: 10 sec
repeat: 200Once running, protocols can be interacted with at any moment. They can be paused, halted, modified, etc. Automancer will take appropriate action to ensure graceful resource management, e.g. by closing open files, stopping timers or turning off unused devices.
For more advanced protocols, Automancer has support for expressions that depend on variables that change in real-time (like sensor feedback). In this second example, the setup being controlled contains a temperature controller which must reach its target temperature before proceeding. To implement this, we use the ‘until’ clause with a check against the temperature readout.
name: Temperature control
protocol:
TempController.setpoint: 37 degC
actions:
- until: {{ TempController.readout > 36.5 * unit.degC }}
- ... # Proceed with the rest of the protocolNote how achieving a similar result using a regular programming language would require a much larger amount of code, and be significantly less readable, as it would need to periodically check the temperature in a loop. Automancer abstracts away this logic to allow the scientist to focus on experiment design.
Let’s take a look at how this looks like in practice!
In this protocol we want to flow reagents onto a microfluidic chip by controlling both external rotary valves and on-chip microfluidic valves. Automancer makes it easy to integrate the different devices and control them via one protocol.
Here we want to generate a stable microfluidic droplet stream by controlling the pressure of the droplet phase vs the pressure of the encapsulation phase. Using Automancer, we can easily write a function that decreases the droplet phase pressure periodically and then uses a microscope camera to record images of the droplet stream, identify individual droplets and measure their size.
At Adaptyv Bio, Automancer allows us to explore more versions of experiments (i.e. protocol variants) either for assay development (searching for an assay configuration that works) or for process optimization (searching for what works best). It also helps us to limit human intervention and error, improve reproducibility, and run experiments out of office hours. Thanks to the text nature of protocols, we can store these in a Git repository to share them among members of the team and keep track of changes from one experiment to another. Development of Automancer was originally born out of a collaboration with the Maerkl Lab at EPFL and we would like to thank the lab for their support.
If you have any questions, suggestions, or would like to contribute to the project, please feel free to reach out to us at automancer@adaptyvbio.com or check out the code & docs.