A modular, containerized web platform for automated fluorescence microscopy image analysis.
CelluleAnalyse is a production-ready web platform for automated analysis of fluorescence microscopy images (.nd2, .czi, .tiff). It provides a complete pipeline from image loading to statistical reporting, with a modular architecture that supports multiple detection methods β from classical thresholding to deep learning.
| Feature | Description | Status |
|---|---|---|
| π΅ Nucleus detection | Automated detection from DAPI/DNA channel | β Stable |
| π¬ Cell classification | Interphase vs mitosis classification | β Stable |
| π Fluorescence measurement | Intensity quantification in mitotic spindles | β Stable |
| π Group comparison | Statistical comparison between two conditions | π In development |
| π§ ML/DL detection | Cellpose, StarDist integration | π In development |
β οΈ Only Docker Desktop is required β no Python, no Node.js, no source code needed.
Download and install Docker Desktop for your OS.*
π First time installing Docker?
- π¬π§ Installation Guide (English)
- π«π· Guide d'installation (FranΓ§ais)
Download only these 3 files from the deploy/ folder:
| File | For |
|---|---|
docker-compose.yml |
All OS |
lancer.bat |
Windows only |
lancer.sh |
Mac / Linux only |
Put all 3 files in the same folder.
Your images must be organized in subfolders like this:
MyImagesFolder/
WT/
image1.nd2
image2.nd2
MAP6_KO/
image1.nd2
image2.nd2
The subfolder names can be anything β WT, KO, Control, Treatment, etc.
Windows:
Double-click lancer.bat
Enter the path to your images folder when prompted (e.g. E:\MyLab\Images).
Mac / Linux:
chmod +x lancer.sh
./lancer.shEnter the path to your images folder when prompted (e.g. /Users/marie/Images).
The app will:
- Download the Docker images automatically (~500MB, first launch only)
- Start the application
- Open http://localhost in your browser
- Click "Load WT folder" β enter the full path to your first group (e.g.
E:\MyLab\Images\WT) - Click "Load KO folder" β enter the full path to your second group
- Click on any file to visualize it
- Navigate channels and Z-planes
- Launch analysis from the Analysis panel
The application is available as pre-built Docker images:
| Image | Link |
|---|---|
| Backend (FastAPI) | smill/celluleanalyse-backend:v0.2.0 |
| Frontend (React/Nginx) | smill/celluleanalyse-frontend:v0.2.0 |
Pull manually if needed:
docker pull smill/celluleanalyse-backend:v0.2.0
docker pull smill/celluleanalyse-frontend:v0.2.0Dashboard with image viewer, pipeline status, and analysis configuration
CelluleAnalyse/
βββ backend/ # FastAPI Python backend
β βββ api/
β β βββ routes_chargement.py # File loading routes
β β βββ routes_visualisation.py # Image rendering routes
β β βββ routes_analyse.py # Analysis routes
β β βββ routes_rapport.py # Report generation (coming soon)
β βββ modules/
β β βββ chargement/
β β β βββ loader_nd2.py # Nikon .nd2 reader
β β β βββ loader_czi.py # Zeiss .czi reader (coming soon)
β β β βββ projection_z.py # 3D to 2D Z-projection (max/mean/sum)
β β βββ detection_noyaux/
β β β βββ base_detector.py # Abstract detector interface
β β β βββ detector_threshold.py # Otsu thresholding + watershed
β β β βββ detector_cellpose.py # Cellpose ML (coming soon)
β β β βββ detector_stardist.py # StarDist DL (coming soon)
β β βββ classification/
β β β βββ base_classifier.py # Abstract classifier interface
β β β βββ classifier_shape.py # Geometric shape classifier
β β β βββ classifier_ml.py # ML classifier (coming soon)
β β β βββ classifier_dl.py # DL classifier (coming soon)
β β βββ detection_fuseau/
β β β βββ base_fuseau.py # Abstract spindle detector
β β β βββ fuseau_threshold.py # Threshold-based detection
β β β βββ fuseau_ml.py # ML-based detection (coming soon)
β β βββ intensite/
β β β βββ mesure_intensite.py # Fluorescence intensity measurement
β β βββ statistiques/
β β βββ stats_comparaison.py # WT vs KO statistical comparison
β β βββ rapport_generator.py # HTML/PDF report generation
β βββ cache_shared.py # Shared in-memory cache
β βββ main.py # FastAPI app entry point
β βββ requirements.txt
β
βββ frontend/ # React frontend
β βββ src/
β βββ components/
β β βββ layout/ # Header, Sidebar, MainContent
β β βββ groups/ # Group loader and file list
β β βββ pipeline/ # Pipeline status tracker
β β βββ viewer/ # Image viewer, channel selector, Z-slider
β β βββ metrics/ # Metric cards and grid
β β βββ files/ # File list component
β β βββ analysis/ # Method selector and config panel
β βββ api/ # Backend API calls
β βββ context/ # Global app state (AppContext)
β βββ styles/ # CSS variables (light/dark theme)
β
βββ deploy/ # End-user distribution files
β βββ v0.1.0/ # Version 0.1.0
β β βββ docker-compose.yml
β β βββ lancer.bat
β β βββ lancer.sh
β βββ v0.2.0/ # Version 0.2.0 (latest)
β βββ docker-compose.yml
β βββ lancer.bat
β βββ lancer.sh
β
βββ Dockerfile.backend
βββ Dockerfile.frontend
βββ docker-compose.yml # Development docker-compose
βββ nginx.conf
βββ README.md
| Format | Manufacturer | Status |
|---|---|---|
.nd2 |
Nikon | β Supported |
.czi |
Zeiss | π Coming soon |
.tiff |
Universal | π Coming soon |
.lif |
Leica | π Coming soon |
.oib |
Olympus | π Coming soon |
| Module | Method | Status |
|---|---|---|
| Nucleus detection | Otsu thresholding + Watershed | β Available |
| Nucleus detection | Cellpose (ML) | π Coming soon |
| Nucleus detection | StarDist (DL) | π Coming soon |
| Nucleus detection | Custom model (YOLO/fine-tuned) | π Coming soon |
| Classification | Geometric shape (circularity) | β Available |
| Classification | Classical ML | π Coming soon |
| Classification | Deep Learning | π Coming soon |
| Spindle detection | Threshold-based | π Coming soon |
| Spindle detection | ML-based | π Coming soon |
cd backend
pip install -r requirements.txt
python -m uvicorn main:app --reload
# http://localhost:8000
# http://localhost:8000/docs (Swagger UI)cd frontend
npm install
npm run dev
# http://localhost:5173docker-compose build
docker-compose up -d| Category | Technology | Version |
|---|---|---|
| Backend framework | FastAPI | 0.128 |
| ASGI server | Uvicorn | 0.39 |
| Image reading | nd2 | 0.11 |
| Image processing | scikit-image | 0.21 |
| Numerical computing | NumPy | 1.26 |
| Data analysis | Pandas | 2.0 |
| Visualization | Matplotlib, Seaborn | 3.7, 0.12 |
| Frontend framework | React | 18 |
| Build tool | Vite | 8 |
| HTTP client | Axios | 1.4 |
| Web server | Nginx | 1.27 |
| Containerization | Docker + Compose | 28.x |
| Languages | Python, JavaScript, CSS | 3.11, ES2022 |
This platform was developed for the analysis of fluorescence microscopy images comparing:
- WT cells (wild-type) β normal cells
- MAP6 KO cells β cells depleted of the MAP6 microtubule-associated protein
Research question: Does MAP6 depletion affect tubulin modifications (acetylation, polyglutamylation) in mitotic spindles?
Pipeline:
- Load
.nd2files from both conditions - Detect nuclei from DNA/DAPI channel (Z-max projection)
- Classify cells: interphase (round nucleus) vs mitosis (irregular shape)
- Measure fluorescence intensity in channels 1 & 2 within mitotic spindles
- Compare WT vs MAP6 KO β statistical report
@software{celluleanalyse2026,
author = {Millimono, Sory ; Paim , Lia Gomes},
title = {CelluleAnalyse: A modular web platform for automated fluorescence microscopy analysis},
year = {2026},
url = {https://github.com/Millimono/CelluleAnalyse}
}Sory Millimono β Bioinformatician Β· AI Researcher UniversitΓ© de MontrΓ©al
Lia Gomes Paim β Professeure adjointe FacultΓ© de mΓ©decine vΓ©tΓ©rinaire - DΓ©partement de biomΓ©decine HY 3200Sicotte 2980
π§ millimono64.sm@gmail.com π LinkedIn π¬ ORCID
MIT License β see LICENSE for details.
