Open-source · Python · Marine Biology

Measure growth
between two timepoints

PolypPal is a precision measurement tool for tracking size changes in biological specimens across two timepoints. Point-and-click simplicity, automatic image registration, and direct Excel export — built for fieldwork, refined for science.

PolypPal interface
v1.0 · MIT License
2 Timepoints Compared
3+ Platforms Supported
0.001cm Measurement Precision
0.99+ Pearson r vs ImageJ

From reef to
spreadsheet

Originally developed for coral recruitment studies in Palau, PolypPal was designed around the realities of fieldwork — underwater collection, lab photography with a ruler, and rapid measurement sessions with large sample sets.

The tool has since been validated against ImageJ on 23 recruits across 10 settlement plugs, achieving Pearson r > 0.994 at both timepoints.

Read Example Study ↗
Diver collecting coral recruits
Field collection · Palau, Pacific
Lab photography setup
Lab photography rig
Annotated plug
Annotated output

Core capabilities

Built for precision,
designed for speed

Everything needed for two-timepoint size tracking, from a single unified interface.

Point-and-click Measurement

Click two points for each diameter — no image processing expertise required. Measurements appear in real-time as you work.

Automatic Image Registration

Detects and aligns objects across timepoints automatically. Manual rotation (q/e keys) fine-tunes alignment — coordinates transform accordingly.

Direct Excel Export

All diameters, calculated areas, status flags, and timestamps export directly to .xlsx. Annotated PNG images saved alongside.

Resume & Progress Tracking

JSON-based state means you can close the window and pick up exactly where you left off. Progress shown in metadata-driven mode.

Validated Accuracy

Compared against ImageJ on 23 recruits across 10 plugs. Pearson r > 0.994 at T1 and T2. Mean absolute error < 0.007 cm.

Fully Configurable

YAML config file controls image paths, output locations, and button labels — adapt status buttons for any application without editing code.

Annotated
measurement outputs

Each output shows the same plug at T1 and T2 with orthogonal diameter measurements color-coded per recruit. Summary statistics appear in the caption: expected recruits, measured alive, and yield.

Plug 67 annotated
Plug #067 · Yield 1.00 · 4 recruits
Plug 121 annotated
Plug #121 · Yield 1.00 · 4 recruits
Plug 152 annotated
Plug #152 · Yield 1.00 · 3 recruits

Applications

Works for any
two-timepoint study

Customize status labels for your field — no code changes needed.

Marine Biology

Coral polyp recruitment tracking, growth rates across thermal stress experiments, mortality assessment on settlement plugs.

Microbiology

Bacterial colony growth curves, inhibition zone measurement in antibiotic assays, biofilm area quantification.

Cell Biology

Cell culture confluence tracking, spheroid growth in 3D culture, organoid size measurement between passages.

Botany & Ecology

Seedling growth monitoring, leaf spot disease progression, lichen colony expansion tracking in field studies.

Material Science

Crystal growth quantification, corrosion zone progression, particle size distribution across treatment conditions.

Medical Imaging

Lesion size tracking across imaging sessions, wound healing area measurement, tumor spheroid assay analysis.

Quick start

Up and running
in minutes

  1. Clone & install dependencies

    Requires Python 3.8+. Works on Windows, macOS, and Linux.

  2. Organize your images

    Two directories — one per timepoint. Matching filenames across folders (e.g. sample_001.jpg in both).

  3. Configure via YAML

    Set input/output paths, optional metadata file, and customize button labels in config.yaml.

  4. Run and measure

    Launch with python polyp_pal.py config.yaml. Point-and-click your diameters. Close when done to export.

Keyboard Shortcuts

KeyAction
qeRotate image 2 left / right
+-Zoom in / out
↑↓←→Pan the view
rReset view
uUndo last action
hShow help
Installation
# Clone repository
git clone https://github.com/NicolasCroft/PolypPal.git
cd PolypPal

# Install dependencies
pip install -r requirements.txt
config.yaml
# Image directories
dir1: "/path/to/timepoint1"
dir2: "/path/to/timepoint2"

# Output files
output_excel: "/path/to/output.xlsx"
annotated_dir: "/path/to/annotated"

# Optional metadata
metadata_excel: null

# Customize status buttons
button_labels:
  status_1: "Dead"
  status_2: "Chimera"
Run
python polyp_pal.py config.yaml

Using PolypPal
in your research?

PolypPal was validated against ImageJ measurements on settlement plug images and used in a coral feeding study examining the effects of heterotrophic diet on Acropora tenuis and A. digitifera recruits. Please cite accordingly if used in your work.

Croft, N., Alessi, C., Lalas, J., Humanes, A., Lachs, L., Cassidy, D., Elias, J., Sasao, M., Olsudong, D., Piot, L., Pernpeintner, S., Guest, J., & Tellei, I. (2025). PolypPal: Interactive two-timepoint measurement tool for biological image analysis. GitHub. https://github.com/NicolasCroft/PolypPal

Associated manuscript: Alessi et al. (under review). Effect of heterotrophic feeding on growth and bleaching response of Acropora tenuis and A. digitifera juveniles. Coral Reefs.