Developer Getting Startedο
Quick Setup for Developmentο
Clone the repository and set up your development environment:
git clone --recurse-submodules https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO.git
cd NL-BIOMERO
# Setup environment
cp .env.example .env
# Edit .env with your configuration
# Start development stack
docker-compose -f docker-compose-dev.yml up -d --build
Development Featuresο
The development compose file includes:
Live editing for the front-end plugin
Development-specific configurations
Special container setup for easier debugging
For detailed setup instructions, see the main README:
Containerized OMERO with BIOMEROο
These scripts spin up the entire OMERO environment required for BIOMERO, and other improvements by the Core Facility Cellular Imaging.
It uses Docker Compose to setup an OMERO grid on one computer with a server, web, processor and a BIOMERO processor. If you also want to spin up a local HPC cluster with Docker Compose, to connect BIOMERO to, we host an example here.
This is an adaptation of OMEβs OMERO.server grid and OMERO.web (docker-compose) / OMERO.server components on multiple nodes using OMERO.grid.
OMERO.server is listening on the standard OMERO ports 4063
and 4064
.
OMERO.web is listening on port 4080
(http://localhost:4080/).
π Platform-Specific Deploymentο
Windows (Docker Desktop)ο
Follow the Quickstart section below for Windows deployment with Docker Desktop.
Ubuntu/Linuxο
For Ubuntu/Linux deployments (with SSL support), see our dedicated guide: π Ubuntu/Linux Deployment Guide
Quickstart (Windows)ο
Note: This quickstart is based on Windows Docker Desktop and uses host.docker.internal
to communicate between local clusters. Linux users should refer to the Ubuntu/Linux guide.
1. Clone and Setupο
Clone this repository locally:
git clone --recurse-submodules https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO.git
cd NL-BIOMERO
2. Configure Environmentο
First, customize your environment file .env
:
# Edit .env with your secure passwords and configuration
# Edit biomeroworker/slurm-config.ini if you need different BIOMERO settings
# Toggle UI components (both default to TRUE):
# IMPORTER_ENABLED=TRUE # Enables the Automated Data Import (ADI) UI module
# ANALYZER_ENABLED=TRUE # Enables the BIOMERO analysis UI module
# Set either to FALSE to hide that module from OMERO.web without removing containers
3. Setup Slurm Connection (Optional)ο
For local testing with a containerized Slurm cluster:
# Setup local Slurm cluster
cd ..
git clone https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO-Local-Slurm
cd NL-BIOMERO-Local-Slurm
cp ~/.ssh/id_rsa.pub .
docker-compose up -d --build
cd ../NL-BIOMERO
4. Configure SSH Accessο
Test Slurm connectivity:
# from your host machine:
ssh -i ~/.ssh/id_rsa -p 2222 -o StrictHostKeyChecking=no slurm@localhost
# or from inside your biomeroworker container:
ssh -i ~/.ssh/id_rsa -p 2222 -o StrictHostKeyChecking=no slurm@host.docker.internal
exit
If successful, create an SSH alias:
cp ssh.config.example ~/.ssh/config
5. Deploy NL-BIOMEROο
Launch the full stack:
# For development (with local builds)
docker-compose up -d --build
# For production (using pre-built images)
docker-compose -f docker-compose-from-dockerhub.yml up -d
Monitor the deployment:
docker-compose logs -f
Exit w/ CTRL + C
Verify the alias works:
# go inside your biomeroworker container:
docker-compose exec biomeroworker bash
# from inside your biomeroworker container:
ssh localslurm
exit
exit
6. Access the Interfacesο
OMERO.web: http://localhost:4080
Login:
root
/omero
(change default password)
Metabase: http://localhost:3000
Login:
admin@biomero.com
/b1omero
(change default password)
If you disabled modules via IMPORTER_ENABLED=FALSE
or ANALYZER_ENABLED=FALSE
, the corresponding UI tabs/panels wonβt appear.
π Data Importο
To get started with data:
Web Import: Use the Importer tab in OMERO.biomero at http://localhost:4080/omero_biomero/biomero/
OMERO.insight: Download the desktop client
Connect to
localhost:4063
Login as
root
/omero
𧬠BIOMERO - BioImage Analysisο
Checkout the BIOMERO documentation for detailed usage instructions.
Quick Workflow Example:ο
Initialize Environment:
Run script:
slurm/init/SLURM Init environment...
β Grab coffee (10+ min download time for a few workflow containers)
Run Analysis:
Select your image/dataset
Run script:
slurm/workflows/SLURM Run Workflow...
Configure import: Change
Import into NEW Dataset
βhello_world
Select workflow: e.g.,
cellpose
Set parameters: nucleus channel, GPU settings, etc.
OR
OMERO.biomero Analyzer UI:
Use the Analyzer tab at http://localhost:4080/omero_biomero/biomero/?tab=biomero
Select your workflow: e.g.,
Cellpose
Add Dataset, select the image(s) you want to segment
Fill in the workflow parameters in tab 2, e.g. nuclei channel 3
Select desired output target, e.g. Select Dataset
hello_world
again; and Run!Track your workflow status at the
Status
tab
View Results:
Refresh OMERO
Explore
tab (in the Data tab; http://localhost:4080/webclient/)Find your
hello_world
dataset with generated masks
π οΈ Container Managementο
Basic Operationsο
# Stop the cluster
docker-compose down
# Remove with volumes (β οΈ deletes data)
docker-compose down --volumes
# Rebuild single container
docker-compose up -d --build --force-recreate <container-name>
# Access container shell
docker-compose exec <container-name> bash
Useful Container Namesο
omeroserver
- OMERO serveromeroweb
- Web interfacebiomeroworker
- BIOMERO processormetabase
- Analytics dashboard
π§ Configurationο
Slurm Connection Requirementsο
See BIOMERO documentation for comprehensive setup details.
Essential Components:
SSH Configuration: Headless SSH to Slurm server
Server IP/hostname
SSH port (usually
22
)Username and SSH keys
Alias configuration in
~/.ssh/config
Slurm Configuration: Edit
biomeroworker/slurm-config.ini
SSH alias (e.g.,
localslurm
)Storage paths:
slurm_data_path
,slurm_images_path
,slurm_script_path
Linux Considerationsο
SSH permissions:
chmod -R 777 ~/.ssh
before deploymentUse
postgres:16-alpine
for better compatibilitySee Ubuntu/Linux guide for detailed instructions
π¨ Frontend Customizationsο
This deployment includes several UI enhancements:
π§© OMERO.biomero Plugin: Unified Importer (ADI) and Analyzer (BIOMERO) tabs
π OMERO.forms: Create custom metadata forms for users to fill in
π Better Buttons: Improved some button design and accessibility
π Pretty Login: Minor enhanced login page aesthetics
The previous codename βCANVASβ has been replaced by the official name OMERO.biomero.
Custom Institution Brandingο
Add your institutionβs logo to the login page:
Place logo files in:
web/local_omeroweb_edits/pretty_login/login_page_images/
And just mount the file over the current image, e.g.
volumes:
- "./web/slurm-config.ini:/opt/omero/web/OMERO.web/var/slurm-config.ini:rw"
- "./web/local_omeroweb_edits/pretty_login/login_page_images/bioimaging.png:/opt/omero/web/venv3/lib/python3.9/site-packages/omeroweb/webclient/static/webclient/image/login_page_images/AmsterdamUMC-logo.png:ro"
- "./web/L-Drive:/data:rw"
More details in web/README.md.
π Additional Resourcesο
π Ubuntu/Linux Deployment - Production deployment guide
𧬠BIOMERO Documentation - Analysis workflows
ποΈ Local Slurm Cluster - Testing environment
π¬ OMERO Documentation - Core platform docs
π€ Supportο
Issues: GitHub Issues
Discussions: image.sc (tag #biomero)
Contact: cellularimaging /at/ amsterdamumc.nl
Happy imaging! π¬β¨