The following hardware and software solution is a 3rd party, open source add-on to the OpenTron OT-2 liquid handling automation platform. The solution leverages computer vision & the precision contrl of the OT-2 to automate the picking of colonies from a 90mm petri dish.
A Jupyter Notebook file for orchestrating the colony picking protcol including REST API data retrieval, calibration and precision control of the OT-2 P300 single channel pipette used to pick colonies.
Simply import the Jupyter notebook file onto the native Jupyter server hosted on OT-2 robot.
A custome Labware definitionf file is also provided and must be manually imported using the OT-2 Host PC application.
Python3 including the following packages: opentrons
A micro REST-style API to facilitate information exchange between the PiCam API and the OT-2 Client. The client also uses TensorFlow to detect potential colonies and return the corresponding x,y location coordinates.
The pre-trained TensorFlow model, NeuralNetClient\frozen_inference_graph.pb, was adopted from the from the iGEMMarburg2019 project (Link).
GET pi-cam-image
GET colony-locations
The web server is configured to run on the Windows OS. Configuration details are stored in the ConfigManager\config.json file. To set-up, simply copy the ManInTheMiddle directory & contents to the OT-2 host PC.
python3 OpenTronColonyPicker\ManInTheMiddle\wsgi.py
It is recommended to configure a Windows Schedule Task to ensure the server resumes after reboot. For production gUnicorn & NGINX are recommended.
Python3 including the following packages: Flask, TensorFlow, Requests, Pillow,MatPlotLib, Numpy,
A micro REST-style API to enable remote orchestration of the light table and and the Pi Cam HQ. To set-up, simply copy the Server directory & contents to the RasPi.
GET image
GET light-table-on
GET light-table-off
The web server is configured to run on the RasPi OS. Configuration details are stored in the ConfigManager\config.json file. You will need to specify the USB com port for the light table.
python3 OpenTronColonyPicker\Server\wsgi.py
It is recommended to configure a CronJob to ensure the server resumes after reboot. For production gUnicorn & NGINX are recommended.
Python3 including the following packages: Flask, PiCamera2, PySerial, Requests
The CAD files for the camera mount & light table are included as STL files. The hardware design was adopted from the iGEMMarburg2019 project (Link).
The solution also incorporates an Arduino Uno microcontroller for operation of the light table.
- RasPi 4 & Peripherals (SD card, USB-C power cable, keyboard, mouse, etc.)
- Arduino Uno, Led Strips & Breadboard, USB A-B cable
- PiCam HQ + Lens
- 130mm x 86 mm x 3 mm Frosted Acrylic Sheet
- Nuts and Bolts for Camera Mounts
- Ethernet Switch
- USB-to-Ethernet Converter
- 2 CAT-6 Ethernet Cables
Imperial Systems & Synthetic Biology (SSB) MRes - 2022
This software is provided open-source under the GNU General Public License version 3 (GLPv3) and our hardware is provided open-source under the CERN Open Hardware Licence version 1.2 (CERN OHL).