Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



80 Commits

Repository files navigation


AI-Powered Petri Dish Analysis

Michael Shamash
Maurice Lab
McGill University

Current Version

OnePetri v1.1.1-11 is the latest public release


Please consider citing our article in the journal PHAGE if you found OnePetri useful:

Shamash, M. & Maurice, C. F. OnePetri: Accelerating Common Bacteriophage Petri Dish Assays with Computer Vision. PHAGE: Therapy, Applications, and Research 2(4), 224-231 (2021).

Table of Contents

  1. Changelog
  2. App Description
  3. Using OnePetri
  4. Benchmark Dataset & Results
  5. Trained Models
  6. Contact
  7. Copyright


The full changelog for OnePetri (iOS) can be found here or on the releases page here.

App Description

Harness the power of AI and accelerate common microbiological Petri dish assays with OnePetri!

Tired of manually counting plaques on Petri dishes? Count plaques in near real-time with OnePetri, an automated plaque counting iOS app!

OnePetri currently supports bacteriophage plaque-based assays, with support for bacterial CFU counts coming in a future release!

About OnePetri

OnePetri uses machine learning models & computer vision to automatically detect Petri dishes and plaques, count plaques, and perform common assay calculations with these values (plaque/titration assay).

Note that as of now, OnePetri only works with circular Petri dishes; however, other shapes (square & rectangle) may be added if sufficient training images can be obtained. Additionally, the models used in the app require one plate per dilution, and as such, spot assays are not currently supported.

All image processing & detection is done locally on-device, with no need for an internet connection once the app has been installed. As such, OnePetri does not collect, store, or transmit any user data or images. Updates are likely to be released regularly, so regular access to the internet is strongly recommended.

Plaque count accuracy & validation

There are no restrictions on how OnePetri is used; however, the models included in the app may occasionally miscount plaques (too many, or too few) and this could affect downstream experiments and calculations. As such, all counts done by the app should always be validated by manual counting or another established "gold standard", especially in cases where it is critical to know precise values (ie. phage titration for phage therapy). The model accuracy will improve with each release thanks to additional training data provided by the community.

Using OnePetri

Quick count

Using the quick count feature, you can quickly get plaque counts for any image from your photo library or taken with your camera! Select the photo library or camera button to choose a photo from your library or take one with your camera, respectively. Then, Petri dishes will be detected. Tap the Petri dish of interest to proceed with analysis on that plate specifically. Finally, plaques will be detected and a final count will be returned. Don't blink or you'll miss it!

Plaque assay

Choose the plaque assay option from the main menu. Using the stepper control, tap the + until reaching the number of plates/dilutions you would like to process. A maximum of 15 plates can be analyzed at any given moment. Select the plate you would like to analyze first and choose an image or take a photo for analysis. Once plaques are counted, the plate will be added to the plaque assay and PFU/mL calculated based on the value entered in the 'volume plated (uL)' field. The final averaged titre over all plates is shown at the bottom of the screen.

Note: plate 1 corresponds to tenfold dilution factor 10^-1, plate 2 corresponds to 10^-2, and so on...

Note 2: if you do not have all sequential plates in a dilution series, you may leave those plates blank and they will not be included in the final calculations.

More assays coming soon...

Benchmark Dataset & Results

The benchmark dataset of 100 images and corresponding results can be found here

Trained Models

The trained YOLOv5 models used within OnePetri can be found here The repository contains the PyTorch weights file (.pt extension) as well as the converted Apple CoreML model file (.mlmodel extension) and will be updated regularly, as new versions of the models are released.


If you have any questions or comments on OnePetri, please create a GitHub issue in this repository!


OnePetri - AI-Powered Petri Dish Analysis
Copyright (C) 2021 Michael Shamash

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see