Chemios Framework π¨πΎβπ¬: Accelerating Science through Automation
Laboratories have a lot of equipmentβpumps, spectrometers, incubators, etc. One laboratory's equipment is usually worth millions of dollars.
Despite their price tag, these devices rarely have simple software interfaces. So, monitoring them remotely or integrating them into automated experiments is difficult.
We looked at the existing solutions, and we were not satisfied. Tetrascience is a paid monitoring platform that is unaffordable for most labs. Labview has been used to automate lab equipment (see Epps et al., Reizman et al., or Dragone et al.). However, LabView licenses cost $5000 annually. ThermoFisher Cloud is the most promising solution, but it only works with a limited number of Thermofisher products.
The Chemios Framework is a simple, open-source (i.e. FREE) software package for laboratory automation and monitoring. It is easy-to-use and extensible. It currently works with pumps, spectrometers and temperature controllers. And, the list of equipment will continue to grow (see Compatible Equipment) through an open source community.
The framework is written in python (the unoffical language of science) and actively maintained. We are looking for which equipment to automate next; please vote for what equipment you'd like to see with what you would like to see!
Follow the steps below to design and run your first experiment in minutes.
$ git clone https://github.com/Chemios/chemios.git
pip install -e .;pip install -r requirements.txt
Here is a how you'd use chemios to run a pump in an automated fashion.
from chemios.pumps import Chemyx
from time import sleep
import serial
#Set up serial port for communciation with pump over USB
ser = serial.Serial(port='ttyUSB0', timeout=1, baudrate=9600)
#Connect to a Harvard Apparatus PhD Ultra
C = Chemyx(model='Phd-Ultra', ser=ser,
syringe_manufacturer='Hamilton', syringe_volume=10)
#Set the flowrate to infuse at 100 microliters per minute
rate = {'value': 100, 'units': 'UM'}
C.set_rate(rate=rate, direction = 'INF')
#Run the pump for 5 seconds
C.run()
sleep(5)
#Stop the pump
C.stop()
You can find documentation for the chemios framework here. More examples will be added soon.
Chemios currently works with the following types of devices:
Please vote for what equipment you'd like to see with what you would like to see!
Roadmap:
We β€οΈ contributors! The Chemios Framework came out of a senior design project at NC State and is now maintained by Kobi Felton @marcosfelt.
We are looking in particular for people to extend the framework to work with more types of laboratory equipment. Feel free to email Kobi if you're interested. If you already have some changes, please submit a pull request.