A tool for automated, quantitative characterization of morphological features and fluorescence signals in organoid and spheroid cultures.
-
Web Interface: organoid-profiler.com
This code accompanies the manuscript: "Automated, high-throughput and quantitative morphological characterization uncovers conserved longitudinal developmental kinetics in microfluidics-engineered organoids" by Galan et al. (Under review).
Full-text preprint available at BioRxiv: 10.64898/2026.01.01.694533v1.
Organoid Profiler is an automated software designed to streamline the analysis of microscopy images. It eliminates the need for manual segmentation and metric extraction. By simply uploading your images, Organoid Profiler identifies organoids and extracts 25 comprehensive morphological metrics. This allows researchers to quantitatively discover patterns in data—such as growth rates and phenotypic changes—that are not evident via qualitative visual inspection.
-
Find the Organoid: Automatically detects organoids in images and generates segmentation masks.
-
Filter Debris: Applies user-defined criteria (e.g., size or circularity constraints) to ignore dust, shadows, and small cell clumps, preventing data skew.
-
Calculate Metrics: Computes 25 morphological metrics related to size, shape, pixel intensity, and distribution.
-
Validate Results: Generates mask overlays on original images, allowing for visual validation of the segmentation accuracy.
You can run the code locally or via the provided Jupyter Notebook.
Bash
# Create the environment
conda create -n organoidprofiler python=3.11 -y
# Activate the environment
conda activate organoidprofiler
Bash
# Install scientific packages with conda
conda install -c conda-forge numpy scipy scikit-image matplotlib pillow -y
Bash
# Install the remaining dependencies
pip install cellpose==2.0.2 torch fastapi uvicorn pydantic-settings supabase loguru python-dotenv httpx python-multipart anyio
If you plan to run the workflow via the notebook:
Bash
# Install the kernel
pip install ipykernel numpy
# Register the kernel
python -m ipykernel install --user --name=organoidprofiler --display-name "Org Profiler"
The tool offers two segmentation and analysis modes tailored to different datasets:
| Mode | Target Images | Primary Use Cases | Key Features |
|---|---|---|---|
| Brightfield (Morphology) | Standard light microscopy | Measuring size, shape, swelling, and disintegration (death). | Tracks individual organoids across time-points to calculate specific growth rates. |
| Fluorescence (Intensity) | Immunofluorescence, Live/Dead staining | Gene expression, protein levels, cell viability. | Ignores saturated pixels; performs automated background subtraction for standardized Corrected Total Fluorescence (CTF). |
-
Supported Formats:
.jpg,.png,.tif,.tiff(Multichannel support, e.g.,.nd2, coming soon). -
File Naming Convention:
To enable time-point tracking, organize your folders or name your files as follows:
-
Option A (Filename):
experiment-name_d[dd]_org[oo].jpgorexperiment-name_d[dd]_[oo].jpg-
[dd]: Day of experiment. -
[oo]: (Optional) Organoid identifier number for individual longitudinal tracking.
-
-
Option B (Folder Structure):
experiment-name/d[dd]/image.jpgorexperiment-name/Day[dd]/image.jpg
Note: Example datasets with this naming convention can be found in the dataset folder of this repository.
-
The tool outputs a data table in .csv format containing the 25 extracted metrics.
- Coming Soon: Automated plotting (line plots, strip plots, clustermaps, variance heatmaps) and AI-integrated reporting to generate scientific descriptions of data patterns.
For every processed image, the tool saves a ROI Overlay image.
-
Check for: A magenta line outlining the organoid.
-
Action:
-
Line follows contour
$\rightarrow$ Valid Data. -
Poor segmentation
$\rightarrow$ Adjust parameters (Area/Circularity thresholds for standard mode; Flow/Probability thresholds for deep learning mode).
-
The following 25 metrics are calculated for every identified object:
| Feature | Description | Equation | Notes |
|---|---|---|---|
| Area | Projected area of the object (ROI). | Calibrated in pixel_size. |
|
| Growth Rate | Relative change in area normalized to |
|
|
| Perimeter | Length of the outside boundary. | Calculated from boundary pixel centers. | |
| Feret Max | Longest distance between any two points on boundary. | Max caliper diameter. | |
| Feret Min | Min distance between parallel tangents. | Min caliper diameter. | |
| Major Axis | Primary axis of best-fitting ellipse. | ||
| Minor Axis | Secondary axis of best-fitting ellipse. | ||
| Aspect Ratio | Ratio of major to minor axis. | 1.0 = Circle; >1.0 = Elongated. | |
| Equiv. Diameter | Diameter of a circle with same area. | ||
| Circularity | Resemblance to a perfect circle. | 1.0 = Perfect circle; |
|
| Roundness | Inverse AR derived from area. | Insensitive to irregular borders (smoothness). | |
| Solidity | Density relative to convex hull. | Measures convexity. | |
| Mean Intensity | Average pixel intensity. |
|
|
| Int. Density | Sum of pixel intensities. | ||
| Corr. Total Fluor. | Total fluorescence corrected for background. |
|
|
| Corr. Mean Fluor. | Mean intensity corrected for background. | Average signal density per unit area. | |
| Skewness | Asymmetry of intensity distribution. | ||
| Kurtosis | "Tailedness" of intensity distribution. | Flatness of pixel value distribution. | |
| Centroid Dist. | Geometric vs. Intensity-weighted center shift. | Indicates uneven density. | |
| Eccentricity | Deviation of fitted ellipse from circle. | 0 = Circular; |
|
| Criteria | Boolean validation of object. | Used to filter artifacts. |
If you encounter issues or the tool does not fulfill your experimental needs, please contact us. We appreciate your feedback.
Email: edgar.galan@tsinghua.org.cn