omero-integration
npx machina-cli add skill Microck/ordinary-claude-skills/omero-integration --openclawOMERO Integration
Overview
OMERO is an open-source platform for managing, visualizing, and analyzing microscopy images and metadata. Access images via Python API, retrieve datasets, analyze pixels, manage ROIs and annotations, for high-content screening and microscopy workflows.
When to Use This Skill
This skill should be used when:
- Working with OMERO Python API (omero-py) to access microscopy data
- Retrieving images, datasets, projects, or screening data programmatically
- Analyzing pixel data and creating derived images
- Creating or managing ROIs (regions of interest) on microscopy images
- Adding annotations, tags, or metadata to OMERO objects
- Storing measurement results in OMERO tables
- Creating server-side scripts for batch processing
- Performing high-content screening analysis
Core Capabilities
This skill covers eight major capability areas. Each is documented in detail in the references/ directory:
1. Connection & Session Management
File: references/connection.md
Establish secure connections to OMERO servers, manage sessions, handle authentication, and work with group contexts. Use this for initial setup and connection patterns.
Common scenarios:
- Connect to OMERO server with credentials
- Use existing session IDs
- Switch between group contexts
- Manage connection lifecycle with context managers
2. Data Access & Retrieval
File: references/data_access.md
Navigate OMERO's hierarchical data structure (Projects → Datasets → Images) and screening data (Screens → Plates → Wells). Retrieve objects, query by attributes, and access metadata.
Common scenarios:
- List all projects and datasets for a user
- Retrieve images by ID or dataset
- Access screening plate data
- Query objects with filters
3. Metadata & Annotations
File: references/metadata.md
Create and manage annotations including tags, key-value pairs, file attachments, and comments. Link annotations to images, datasets, or other objects.
Common scenarios:
- Add tags to images
- Attach analysis results as files
- Create custom key-value metadata
- Query annotations by namespace
4. Image Processing & Rendering
File: references/image_processing.md
Access raw pixel data as NumPy arrays, manipulate rendering settings, create derived images, and manage physical dimensions.
Common scenarios:
- Extract pixel data for computational analysis
- Generate thumbnail images
- Create maximum intensity projections
- Modify channel rendering settings
5. Regions of Interest (ROIs)
File: references/rois.md
Create, retrieve, and analyze ROIs with various shapes (rectangles, ellipses, polygons, masks, points, lines). Extract intensity statistics from ROI regions.
Common scenarios:
- Draw rectangular ROIs on images
- Create polygon masks for segmentation
- Analyze pixel intensities within ROIs
- Export ROI coordinates
6. OMERO Tables
File: references/tables.md
Store and query structured tabular data associated with OMERO objects. Useful for analysis results, measurements, and metadata.
Common scenarios:
- Store quantitative measurements for images
- Create tables with multiple column types
- Query table data with conditions
- Link tables to specific images or datasets
7. Scripts & Batch Operations
File: references/scripts.md
Create OMERO.scripts that run server-side for batch processing, automated workflows, and integration with OMERO clients.
Common scenarios:
- Process multiple images in batch
- Create automated analysis pipelines
- Generate summary statistics across datasets
- Export data in custom formats
8. Advanced Features
File: references/advanced.md
Covers permissions, filesets, cross-group queries, delete operations, and other advanced functionality.
Common scenarios:
- Handle group permissions
- Access original imported files
- Perform cross-group queries
- Delete objects with callbacks
Installation
uv pip install omero-py
Requirements:
- Python 3.7+
- Zeroc Ice 3.6+
- Access to an OMERO server (host, port, credentials)
Quick Start
Basic connection pattern:
from omero.gateway import BlitzGateway
# Connect to OMERO server
conn = BlitzGateway(username, password, host=host, port=port)
connected = conn.connect()
if connected:
# Perform operations
for project in conn.listProjects():
print(project.getName())
# Always close connection
conn.close()
else:
print("Connection failed")
Recommended pattern with context manager:
from omero.gateway import BlitzGateway
with BlitzGateway(username, password, host=host, port=port) as conn:
# Connection automatically managed
for project in conn.listProjects():
print(project.getName())
# Automatically closed on exit
Selecting the Right Capability
For data exploration:
- Start with
references/connection.mdto establish connection - Use
references/data_access.mdto navigate hierarchy - Check
references/metadata.mdfor annotation details
For image analysis:
- Use
references/image_processing.mdfor pixel data access - Use
references/rois.mdfor region-based analysis - Use
references/tables.mdto store results
For automation:
- Use
references/scripts.mdfor server-side processing - Use
references/data_access.mdfor batch data retrieval
For advanced operations:
- Use
references/advanced.mdfor permissions and deletion - Check
references/connection.mdfor cross-group queries
Common Workflows
Workflow 1: Retrieve and Analyze Images
- Connect to OMERO server (
references/connection.md) - Navigate to dataset (
references/data_access.md) - Retrieve images from dataset (
references/data_access.md) - Access pixel data as NumPy array (
references/image_processing.md) - Perform analysis
- Store results as table or file annotation (
references/tables.mdorreferences/metadata.md)
Workflow 2: Batch ROI Analysis
- Connect to OMERO server
- Retrieve images with existing ROIs (
references/rois.md) - For each image, get ROI shapes
- Extract pixel intensities within ROIs (
references/rois.md) - Store measurements in OMERO table (
references/tables.md)
Workflow 3: Create Analysis Script
- Design analysis workflow
- Use OMERO.scripts framework (
references/scripts.md) - Access data through script parameters
- Process images in batch
- Generate outputs (new images, tables, files)
Error Handling
Always wrap OMERO operations in try-except blocks and ensure connections are properly closed:
from omero.gateway import BlitzGateway
import traceback
try:
conn = BlitzGateway(username, password, host=host, port=port)
if not conn.connect():
raise Exception("Connection failed")
# Perform operations
except Exception as e:
print(f"Error: {e}")
traceback.print_exc()
finally:
if conn:
conn.close()
Additional Resources
- Official Documentation: https://omero.readthedocs.io/en/stable/developers/Python.html
- BlitzGateway API: https://omero.readthedocs.io/en/stable/developers/Python.html#omero-blitzgateway
- OMERO Model: https://omero.readthedocs.io/en/stable/developers/Model.html
- Community Forum: https://forum.image.sc/tag/omero
Notes
- OMERO uses group-based permissions (READ-ONLY, READ-ANNOTATE, READ-WRITE)
- Images in OMERO are organized hierarchically: Project > Dataset > Image
- Screening data uses: Screen > Plate > Well > WellSample > Image
- Always close connections to free server resources
- Use context managers for automatic resource management
- Pixel data is returned as NumPy arrays for analysis
Source
git clone https://github.com/Microck/ordinary-claude-skills/blob/main/skills_all/claude-scientific-skills/scientific-skills/omero-integration/SKILL.mdView on GitHub Overview
OMERO Integration lets you access microscopy images and metadata from an OMERO server using the Python API. It supports retrieving projects, datasets, and images, performing pixel-level analysis, and managing ROIs, annotations, and batch workflows for high-content screening.
How This Skill Works
Use the omero-py client to establish a secure session and navigate the OMERO data hierarchy (Projects → Datasets → Images; Screens → Plates → Wells). Retrieve images and metadata, extract raw pixel data as NumPy arrays, and create derived images or statistics. Manage ROIs and annotations, attach metadata, and leverage OMERO.scripts for server-side batch processing.
When to Use It
- Connecting to an OMERO server with credentials and managing sessions using a context manager
- Retrieving images, datasets, projects, or screening data programmatically via the Python API
- Analyzing pixel data and creating derived images or statistics
- Creating, retrieving, and analyzing ROIs and annotations on images and linking metadata
- Creating server-side scripts for batch processing and automated workflows
Quick Start
- Step 1: Install and configure the omero-py client and credentials to connect to your OMERO server
- Step 2: Use the Python API to list projects/datasets/images and pull pixel data as NumPy arrays
- Step 3: Create ROIs/annotations or run server-side batch scripts for automated processing
Best Practices
- Use secure connections and wrap sessions in context managers to ensure proper closing
- Navigate the data hierarchy (Projects → Datasets → Images) to locate relevant data efficiently
- Store measurements and results in OMERO Tables for traceability and querying
- Attach analysis results as files or metadata to maintain reproducibility
- Leverage server-side scripts (OMERO.scripts) for batch processing to scale analyses
Example Use Cases
- Fetch all projects for a user, list associated datasets, and export image thumbnails
- Draw polygon ROIs on multiple images and export ROI coordinates for downstream analysis
- Extract pixel data as NumPy arrays, run segmentation, and compute statistics within ROIs
- Create derived images such as max intensity projections and store them back in OMERO
- Attach analysis results as files and metadata, then tag objects for improved searchability