OMERO Integration 简介
用途 OMERO 是用于管理、可视化和分析显微图像及其元数据的开源平台。该技能用于通过 Python API(omero-py)以编程方式访问 OMERO 中的显微数据,适用于高内涵筛查与显微成像相关的工作流:连接服务器、检索图像与数据集、分析像素数据、管理 ROI 与标注、执行批量处理。
适用时机 当需要处理以下任务时使用该技能:使用 OMERO Python API(omero-py)访问显微数据;以编程方式检索图像、数据集、项目或筛查数据;分析像素数据并生成派生图像;创建或管理显微图像上的 ROI(感兴趣区域);向 OMERO 对象添加标注、标签或元数据;将测量结果存入 OMERO 表格;创建服务端脚本用于批处理;执行高内涵筛查分析。
主要能力 该技能覆盖八个能力领域,各自在 references/ 目录下提供详细文档:
-
连接与会话管理(references/connection.md) 建立到 OMERO 服务器的安全连接,管理会话、处理认证并切换组上下文。常见场景:使用凭据连接 OMERO 服务器、复用已有会话 ID、在组上下文之间切换、使用上下文管理器管理连接生命周期。
-
数据访问与检索(references/data_access.md) 导航 OMERO 的层级数据结构(项目 Project → 数据集 Dataset → 图像 Image)与筛查数据(筛查 Screen → 板 Plate → 孔 Well)。检索对象、按属性查询、访问元数据。常见场景:列出用户的所有项目与数据集、按 ID 或数据集检索图像、访问筛查板数据、带过滤条件查询对象。
-
元数据与标注(references/metadata.md) 创建并管理标签、键值对、文件附件和注释等标注,并将其链接到图像、数据集或其他对象。常见场景:给图像加标签、把分析结果作为文件附加、创建自定义键值元数据、按命名空间查询标注。
-
图像处理与渲染(references/image_processing.md) 将原始像素数据读取为 NumPy 数组,操作渲染设置,创建派生图像,管理物理尺度。常见场景:提取像素数据用于计算分析、生成缩略图、创建最大强度投影、修改通道渲染设置。
-
感兴趣区域 ROI(references/rois.md) 创建、检索并分析多种形状的 ROI(矩形、椭圆、多边形、掩膜、点、线),从 ROI 区域提取强度统计。常见场景:在图像上绘制矩形 ROI、为分割创建多边形掩膜、分析 ROI 内像素强度、导出 ROI 坐标。
-
OMERO 表格(references/tables.md) 存储并查询与 OMERO 对象关联的结构化表格数据,适用于分析结果、测量值和元数据。常见场景:存储图像的定量测量结果、创建含多种列类型的表格、按条件查询表格数据、把表格链接到特定图像或数据集。
-
脚本与批量操作(references/scripts.md) 创建在服务端运行的 OMERO.scripts,用于批处理、自动化工作流以及与 OMERO 客户端集成。常见场景:批量处理多张图像、创建自动化分析流水线、跨数据集生成汇总统计、以自定义格式导出数据。
-
高级功能(references/advanced.md) 涵盖权限、文件集、跨组查询、删除操作及其他高级功能。常见场景:处理组权限、访问原始导入文件、执行跨组查询、带回调删除对象。
安装 uv pip install omero-py
要求:Python 3.7+;Zeroc Ice 3.6+;可访问的 OMERO 服务器(主机、端口、凭据)。
快速开始 基础连接模式: from omero.gateway import BlitzGateway
连接 OMERO 服务器
conn = BlitzGateway(username, password, host=host, port=port) connected = conn.connect()
if connected: # 执行操作 for project in conn.listProjects(): print(project.getName())
# 始终关闭连接
conn.close()
else: print("Connection failed")
推荐的上下文管理器模式: from omero.gateway import BlitzGateway
with BlitzGateway(username, password, host=host, port=port) as conn: # 连接自动管理 for project in conn.listProjects(): print(project.getName()) # 退出时自动关闭
能力选择指引 数据探索:先用 references/connection.md 建立连接,再用 references/data_access.md 导航层级,标注细节查看 references/metadata.md。 图像分析:用 references/image_processing.md 访问像素数据,用 references/rois.md 做基于区域的分析,用 references/tables.md 存储结果。 自动化:用 references/scripts.md 做服务端处理,用 references/data_access.md 做批量数据检索。 高级操作:用 references/advanced.md 处理权限与删除,跨组查询查看 references/connection.md。
常见工作流 工作流 1:检索并分析图像。连接服务器 → 导航到数据集 → 从数据集检索图像 → 以 NumPy 数组访问像素数据 → 执行分析 → 将结果存为表格或文件标注。 工作流 2:批量 ROI 分析。连接服务器 → 检索已有 ROI 的图像 → 对每张图像获取 ROI 形状 → 提取 ROI 内像素强度 → 将测量结果存入 OMERO 表。 工作流 3:创建分析脚本。设计分析流程 → 使用 OMERO.scripts 框架 → 通过脚本参数访问数据 → 批量处理图像 → 生成输出(新图像、表格、文件)。
错误处理 始终用 try-except 包裹 OMERO 操作,并确保连接正确关闭: from omero.gateway import BlitzGateway import traceback
try: conn = BlitzGateway(username, password, host=host, port=port) if not conn.connect(): raise Exception("Connection failed")
# 执行操作
except Exception as e: print(f"Error: {e}") traceback.print_exc() finally: if conn: conn.close()
附加资源 官方文档:https://omero.readthedocs.io/en/stable/developers/Python.html BlitzGateway API:https://omero.readthedocs.io/en/stable/developers/Python.html#omero-blitzgateway OMERO 模型:https://omero.readthedocs.io/en/stable/developers/Model.html 社区论坛:https://forum.image.sc/tag/omero
注意事项 OMERO 使用基于组的权限(READ-ONLY、READ-ANNOTATE、READ-WRITE)。图像在 OMERO 中按层级组织:Project > Dataset > Image;筛查数据使用:Screen > Plate > Well > WellSample > Image。始终关闭连接以释放服务器资源;建议使用上下文管理器自动管理资源;像素数据以 NumPy 数组形式返回以供分析。