alterlab-omero — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-omero (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
This skill should be used when:
| Scenario | Use Instead |
|---|---|
| Downloading public cancer radiology/pathology DICOM from NCI Imaging Data Commons | alterlab-imaging-data-commons |
| Tiling or preprocessing whole-slide images from local files | alterlab-histolab |
| End-to-end computational pathology models (segmentation, graphs, training) | alterlab-pathml |
| Reading or anonymizing clinical DICOM files | alterlab-pydicom |
This skill covers eight major capability areas. Each is documented in detail in the references/ directory:
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:
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:
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:
File: references/image_processing.md
Access raw pixel data as NumPy arrays, manipulate rendering settings, create derived images, and manage physical dimensions.
Common scenarios:
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:
File: references/tables.md
Store and query structured tabular data associated with OMERO objects. Useful for analysis results, measurements, and metadata.
Common scenarios:
File: references/scripts.md
Create OMERO.scripts that run server-side for batch processing, automated workflows, and integration with OMERO clients.
Common scenarios:
File: references/advanced.md
Covers permissions, filesets, cross-group queries, delete operations, and other advanced functionality.
Common scenarios:
# 1. Install a prebuilt ZeroC Ice 3.6 wheel for your Python version and OS first
# (Glencoe Software builds; links on the OMERO.py page below)
uv pip install /path/to/zeroc_ice-3.6.5-<python>-<platform>.whl
# 2. Then OMERO.py
uv pip install omero-pyRequirements (omero-py 5.23.x, current as of 2026-09):
zeroc-ice>=3.6.5,<3.7. PyPI only has 3.6.5 wheels for Python 2.7/3.7, so without a prebuilt wheel pip tries to compile Ice from source; Ice 3.7/3.8 are not supported. See https://omero.readthedocs.io/en/stable/developers/Python.html for the wheel list.OMERODIR if you use the omero CLIBasic 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 exitFor data exploration:
references/connection.md to establish connectionreferences/data_access.md to navigate hierarchyreferences/metadata.md for annotation detailsFor image analysis:
references/image_processing.md for pixel data accessreferences/rois.md for region-based analysisreferences/tables.md to store resultsFor automation:
references/scripts.md for server-side processingreferences/data_access.md for batch data retrievalFor advanced operations:
references/advanced.md for permissions and deletionreferences/connection.md for cross-group queriesreferences/connection.md)references/data_access.md)references/data_access.md)references/image_processing.md)references/tables.md or references/metadata.md)references/rois.md)references/rois.md)references/tables.md)references/scripts.md)Always wrap OMERO operations in try-except blocks and ensure connections are properly closed:
from omero.gateway import BlitzGateway
import traceback
conn = None # bind first so the finally block is safe if the constructor raises
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()Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.