Colony Counting Models
Pre-trained models for automated colony counting in 96-well plate images, developed at the Center for Living Systems, University of Chicago.
Models
This repository contains three files that work together as a two-stage pipeline:
| File | Architecture | Task |
|---|---|---|
CLS_colony_counting_bw_model.pth |
EfficientNet-B0 (PyTorch) | Binary well classification backbone |
CLS_colony_counting_lr_head.joblib |
Logistic Regression (scikit-learn) | Binary classifier head (positive / negative) |
CLS_colony_counting_count_model_smoothl1.pth |
EfficientNet-B0 (PyTorch) | Colony count regression |
Stage 1 β Binary Well Classification
Classifies each cropped well image as positive (colony growth present) or negative (no growth).
- Backbone: EfficientNet-B0 fine-tuned end-to-end, 1280-d average-pool features
- Head: Logistic Regression (
class_weight="balanced") - Output: binary label + probability of positive (
p_pos) + two confidence scores (MSP, entropy)
Stage 2 β Colony Count Regression
Predicts the colony count for positive wells. Zero-count wells are handled by Stage 1.
- Backbone: EfficientNet-B0 with a single regression output neuron
- Loss: SmoothL1 (Huber loss)
- Uncertainty: Monte Carlo dropout (20 forward passes at inference)
- Output: predicted count (clamped to [0, 100]) + standard deviation across MC samples
Usage
Download the models using the companion script in the colony_counting repository:
git clone https://github.com/Center-for-Living-Systems/colony_counting.git
cd colony_counting
conda env create -f environment.yml
conda activate colony_counting
pip install -e .
python download_models.py
Then run the full pipeline:
jupyter notebook notebooks/run_full_pipeline.ipynb
Set PLATE_IMAGE_FOLDER and OUTPUT_DIR in the config cell β model paths are auto-discovered from trained_models/.
Input Format
- Plate images: grayscale TIFF, uint16, 1944 Γ 2592 px, one per 96-well plate
- Well crops: 96 PNG images per plate (~154 Γ 154 px), extracted by the pipeline's well detection step
Training Data
Models were trained on 96-well plate images from yeast colony growth experiments. Labels were collected using a custom Streamlit labelling interface and split at the plate level to minimise data leakage.
License
BSD 3-Clause β see LICENSE.
Citation
If you use these models, please cite the colony_counting repository:
Center for Living Systems, University of Chicago.
Colony Counting Pipeline. https://github.com/Center-for-Living-Systems/colony_counting