Skip to main content
Phenotypic Logo

PhenoTypic: A Python Framework for Bio-Image Analysis

Development Stage GUI checks Docs PyPI Python License GitHub release Pull requests

A modular image processing framework developed at the NSF Ex-FAB BioFoundry, focused on arrayed colony phenotyping on solid media.


Links:

docs

exfab

Overview

PhenoTypic provides a modular toolkit designed to simplify and accelerate the development of reusable bio-image analysis pipelines. PhenoTypic provides bio-image analysis tools built-in, but has a streamlined development method to integrate new tools.

Installation

uv (recommended)

See more on installing uv

Regular Install (recommended when deploying on a cluster)

uv add phenotypic

Interactive / GUI Install (Plotly dashboards, Jupyter, Dash hub)

uv add phenotypic --extra gui

napari Desktop Viewer Install (for image.*.napari(), point picker, sweep viewer)

uv add phenotypic --extra napari

Pip

Regular Install

pip install phenotypic

Interactive / GUI Install

pip install "phenotypic[gui]"

napari Desktop Viewer Install

pip install "phenotypic[napari]"

Note: may not always be the latest version. Install from repo when latest update is needed

Manual Installation (For latest updates)

git clone https://github.com/exfab/PhenoTypic.git
cd PhenoTypic
uv sync

Dev Installation

For extending PhenoTypic.

git clone https://github.com/exfab/PhenoTypic.git
cd PhenoTypic
uv sync --group dev --all-extras

CPU compatibility (polars build)

PhenoTypic installs the polars-lts-cpu build by default so it runs on older CPUs (e.g. pre-AVX2 HPCC nodes) without crashing. On AVX2-capable machines you can swap in the faster stock polars build for quicker measurement compilation — see Choosing the polars CPU build.

GPU-Accelerated Detection (SAM2, micro-sam)

PhenoTypic ships optional deep-learning detectors backed by Meta's Segment Anything Model 2 and micro-sam.

See GPU Detection Setup for model downloads and SLURM deployment instructions.

Optional Installation

To extract metadata from raw images, PhenoTypic uses the PyExifTool module. This requires an external software called ExifTool. You can install ExifTool here: https://exiftool.org/install.html. If you don't use it, some metadata from raw files may not be able to be imported. Read more here: https://pypi.org/project/PyExifTool/#pyexiftool-dependencies

Run the CLI

Process a directory of plate images through a saved pipeline:

uv run python -m phenotypic --mode full --pipeline pipeline.json --input ./images --output ./out

Use --mode process --layer {rgb|gray|detect_mat|objmap} for an apply-only export run that writes a single image layer per input (mirroring the input tree) and skips the measurement/analysis suite — handy for previewing detection or enhanced layers.

Launch the GUI

The unified GUI hub bundles the pipeline builder, results viewer, and run console under one URL. Two equivalent entry points:

# Console script (preferred)
uv run phenotypic-gui --root ./images --port 8050

# Module entry (works in environments without the console script on PATH)
uv run python -m phenotypic.gui --root ./images --port 8050

--root freezes the sandbox the GUI's file browser is allowed to see (defaults to the current working directory). --host 127.0.0.1 (the default) keeps the server loopback-only — pair with SSH port forwarding for remote workstations:

ssh -L 8050:localhost:8050 user@cluster

Open http://localhost:8050/ in your browser. The GUI hub guide walks through the file browser, builder, run console, and results viewer.

For Open OnDemand-style proxies, pass only the browser-visible path prefix:

uv run phenotypic-gui --root /rhome/ejaco020 --host 0.0.0.0 --port 30099 --url-prefix /node/hz01/30099/

Then open the full proxy URL, for example https://ondemand.hpcc.ucr.edu/node/hz01/30099/.

Note: phenotypic gui (no hyphen, as a subcommand) is not supported. Use phenotypic-gui or python -m phenotypic.gui.

Hyperparameter Tuning

Search an ImagePipeline's parameters to maximize a scorer with the tuning engine:

uv run python -m phenotypic.tune run spec.json -i ./plates -o ./out

Grid and random search work out of the box; the Optuna samplers (tpe/cmaes/gp/nsga2) need the tune extra. See the tuning how-to for an end-to-end walkthrough.

Module Overview

Module Description
phenotypic.analysis Tools for downstream analysis of the data from phenotypic in various ways such as growth modeling or statistical filtering
phenotypic.correction Different methods to improve the data quality of an image such as rotation to improve grid finding
phenotypic.data Sample images to experiment your workflow with
phenotypic.detect A suite of operations to automatically detect objects in your images
phenotypic.enhance Preprocessing tools that alter a copy of your image and can improve the results of the detection algorithms
phenotypic.grid Modules that rely on grid and object information to function
phenotypic.measure The various measurements PhenoTypic is capable of extracting from objects
phenotypic.detect.nn GPU-accelerated detectors (SAM2, micro-sam) with checkpoint management — see setup guide
phenotypic.refine Different tools to edit the detected objects such as morphology, relabeling, joining, or removing
phenotypic.prefab Various premade image processing pipelines that are in use at ExFAB
phenotypic.tune Hyperparameter-tuning engine: grid/random search plus Optuna samplers (behind the tune extra), pluggable scorers, robust held-out evaluation, distributed search over HPCC SLURM/Postgres, and a /tune/ GUI co-pilot

Sponsors

Phenotypic Logo

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phenotypic-0.18.1.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phenotypic-0.18.1-py3-none-any.whl (8.2 MB view details)

Uploaded Python 3

File details

Details for the file phenotypic-0.18.1.tar.gz.

File metadata

  • Download URL: phenotypic-0.18.1.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for phenotypic-0.18.1.tar.gz
Algorithm Hash digest
SHA256 6b89764f54f580b0ae145819b69c97daacd14d9611f444f66c3b5c9c11550aa1
MD5 451be33fc42a7f5ce0bf0694267adbf4
BLAKE2b-256 4c718781c6e5d7c64bd0fd7f4e4d4059483cde46b3bde4f8beeb930b6bc45675

See more details on using hashes here.

File details

Details for the file phenotypic-0.18.1-py3-none-any.whl.

File metadata

  • Download URL: phenotypic-0.18.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for phenotypic-0.18.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fcdb784293c35c61626de14236927683b17f4ffa33b4aa0f617b7958d138cfa7
MD5 5a85899a0e51252ba776559eabd85a57
BLAKE2b-256 6b002c5ce2c387a4489cd071ab6d47ca27cc8c1ca2ea72262a00658face72ea5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.18.1 This release

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.15.1

2 files

0.15.0

2 files

0.12.0

2 files

0.11.1

2 files

0.11.0

2 files

0.9.2

2 files

0.7.6

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.0

2 files

0.6.0

2 files

0.5.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page