/opentrons-colony-counting-picking

Colony counting and picking functionality for OpenTrons

Primary LanguageMATLAB

OpenTrons Hack-A-Tron 2019 Hackathon

May 10 6PM EDT - May 11 6PM EDT

Slack workspace: https://hack-a-tron.slack.com

Invite link

Join the #colony_counting channel.

Colony Counting and Picking

Description

Colony counting and picking functionality for OpenTrons.

Pre-prepped agar plates with visible colonies are loaded onto the OpenTrons deck. Colony location data is uploaded to OpenTrons. After calibration, OpenTrons picks individual colonies using pipettor for processing.

Ideas

Instructions

This repository provides a way to import ImageJ regions of interest (ROI) data into python.

ImageJ outputs ROI data in a binary format. Dylan Muir provides a Matlab script to read binary ROI data to import into Matlab.

We use Octave, an open-source Matlab clone, to convert ROI data from binary to csv format for import into python.

Requirements

  1. Obtain plate image
  2. Run ImageJ Colony Counter on plate image (note location of ROI zip file output)
  3. Edit variables in ColonyROI2csv.m (create DATA_DIR if it doesn't exist)
  4. Import data into python (example):
from colony_roi_import import ColonyROIImportCSV

DATA_DIR = "data"

roi_import = ColonyROIImportCSV(DATA_DIR)

colony_count = roi_import.get_colony_count()
colony_roi_data = roi_import.colony_data()

Colony roi data is a python dictionary:

colony_data = {
	'colony_name': colony_name,
	'roi_data': roi_data,
    }

Where roi_data is a list of (x,y) pixel coordinates for the boundaries drawn around colonies by ImageJ.

Future

  • Create another python file to extend labware functionality interface, e.g. plate.colonies('1')
  • Improve agar_plate.py to use colony interface
  • Use a machine learning algorithm to improve performance of colony detection