User-friendly application for analyzing spheroid images to identify core, border, and background regions.
Download the latest release for your platform from the Releases page:
- macOS:
SpheroidAnalysis-macOS.zip - Windows:
SpheroidAnalysis-Windows.zip - Linux (Debian/Ubuntu):
SpheroidAnalysis-Linux-Debian.zip - Linux (RedHat/Fedora/AlmaLinux):
SpheroidAnalysis-Linux-RedHat.zip
macOS:
- Download
SpheroidAnalysis-macOS.zip - Unzip the file and drag
SpheroidAnalysis.appto the Applications folder - Right-click the app and select "Open"
- Click "Open" in the security dialog
- Note: The app is not code-signed, so macOS may show a security warning on first launch
Windows:
- Download
SpheroidAnalysis-Windows.zip - Extract the ZIP file
- Double-click
SpheroidAnalysis.exeto run - If Windows Defender blocks: Click "More info" → "Run anyway"
Linux:
- Download the appropriate ZIP for your distribution
- Extract:
unzip SpheroidAnalysis-Linux-*.zip - Make executable:
chmod +x SpheroidAnalysis - Run:
./SpheroidAnalysis
- Click "Load Image" - select your spheroid image
- Adjust sliders to crop the image and to fine-tune detection (hover i buttons for help)
- Switch between Overlay and Binary (black and white) views
- Click Save to export
The sliders help you fine-tune how the software identifies your spheroid and its core region. Hover over the i buttons in the app for quick reminders.
| Parameter | Range | What it does | When to adjust | Default |
|---|---|---|---|---|
| Denoise Strength | 1-20 | Smooths out grainy/noisy images | Increase if your image looks speckled or has noise from the microscope | 10 |
| Contrast Enhancement | 1-10 | Makes light and dark areas more distinct | Increase if your spheroid is hard to see or looks washed out | 2.0 |
| Threshold | 0-255 | Decides what counts as "spheroid" vs "background" | Adjust if the spheroid outline isn't capturing the right area - lower includes more, higher includes less | 127 |
| Core Size | 1-99% | Determines how much of the spheroid is considered "core" (darker region) vs "border" (lighter region) | 50% splits evenly, lower values give smaller and darker cores, higher gives larger cores | 50% |
| Min Area | pixels | Ignores small specks and artifacts | Increase if small dots are being counted as spheroid pieces | 100 |
- Red outline: Spheroid outer edge (border)
- Yellow outline: Core boundary
- Binary view: White spheroid on black background
- Pixel counts: Core, Border, and Total area
This project uses uv for package management.
# Clone the repository
git clone https://github.com/luigilunardon/spheroid-analysis.git
cd spheroid-analysis
# Create and activate virtual environment with uv
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
uv pip install -e .python src/spheroid_app.pyBuild macOS and Linux:
./scripts/build-all.shThis creates:
dist/SpheroidAnalysis-macOS.zip(native macOS build)dist/SpheroidAnalysis-Linux-Debian.zip(Docker)dist/SpheroidAnalysis-Linux-RedHat.zip(Docker)
Build Windows:
Windows builds must be created on a Windows machine:
scripts\build_windows.batThis creates dist/SpheroidAnalysis.exe
Requirements:
- macOS build: Must run on macOS with
uvinstalled - Linux builds: Require Docker (can run on any OS)
- Windows build: Must run on Windows with
uvinstalled
Version 1.0.0 | December 2025 License: MIT