name: omero-integration description: “显微镜数据管理平台。通过Python访问图像,检索数据集,分析像素,管理ROI/注释,批量处理,适用于高通量筛选和显微镜工作流程。”
OMERO 集成
概述
OMERO 是一个用于管理、可视化和分析显微镜图像及元数据的开放平台。通过Python API访问图像,检索数据集,分析像素,管理ROI和注释,适用于高通量筛选和显微镜工作流程。
何时使用此技能
此技能应在以下情况下使用:
- 使用OMERO Python API(omero-py)访问显微镜数据
- 通过程序检索图像、数据集、项目或筛选数据
- 分析像素数据并创建派生图像
- 在显微镜图像上创建或管理ROI(感兴趣区域)
- 向OMERO对象添加注释、标签或元数据
- 在OMERO表中存储测量结果
- 创建服务器端脚本进行批量处理
- 执行高通量筛选分析
核心能力
此技能涵盖八个主要能力领域。每个都在references/目录中有详细文档:
1. 连接与会话管理
文件: references/connection.md
建立与OMERO服务器的安全连接,管理会话,处理身份验证,并在组上下文中工作。用于初始设置和连接模式。
常见场景:
- 使用凭据连接到OMERO服务器
- 使用现有会话ID
- 在组上下文之间切换
- 使用上下文管理器管理连接生命周期
2. 数据访问与检索
文件: references/data_access.md
导航OMERO的分层数据结构(项目 → 数据集 → 图像)和筛选数据(筛选 → 板 → 孔)。检索对象,按属性查询,并访问元数据。
常见场景:
- 列出用户的所有项目和数据集
- 按ID或数据集检索图像
- 访问筛选板数据
- 使用过滤器查询对象
3. 元数据与注释
文件: references/metadata.md
创建和管理注释,包括标签、键值对、文件附件和评论。将注释链接到图像、数据集或其他对象。
常见场景:
- 向图像添加标签
- 将分析结果作为文件附加
- 创建自定义键值元数据
- 按命名空间查询注释
4. 图像处理与渲染
文件: references/image_processing.md
将原始像素数据作为NumPy数组访问,操作渲染设置,创建派生图像,并管理物理维度。
常见场景:
- 提取像素数据进行计算分析
- 生成缩略图图像
- 创建最大强度投影
- 修改通道渲染设置
5. 感兴趣区域(ROI)
文件: references/rois.md
使用各种形状(矩形、椭圆、多边形、掩模、点、线)创建、检索和分析ROI。从ROI区域提取强度统计信息。
常见场景:
- 在图像上绘制矩形ROI
- 创建用于分割的多边形掩模
- 分析ROI内的像素强度
- 导出ROI坐标
6. OMERO表
文件: references/tables.md
存储和查询与OMERO对象关联的结构化表格数据。适用于分析结果、测量和元数据。
常见场景:
- 为图像存储定量测量
- 创建多列类型的表
- 使用条件查询表数据
- 将表链接到特定图像或数据集
7. 脚本与批量操作
文件: references/scripts.md
创建在服务器端运行的OMERO.scripts,用于批量处理、自动化工作流程和与OMERO客户端集成。
常见场景:
- 批量处理多个图像
- 创建自动分析流程
- 生成跨数据集的摘要统计信息
- 以自定义格式导出数据
8. 高级功能
文件: references/advanced.md
涵盖权限、文件集、跨组查询、删除操作和其他高级功能。
常见场景:
- 处理组权限
- 访问原始导入文件
- 执行跨组查询
- 使用回调删除对象
安装
使用pip或conda安装OMERO Python绑定:
# 使用pip
pip install omero-py
# 使用conda
conda install -c conda-forge omero-py
要求:
- Python 3.7+
- Zeroc Ice 3.6+
- 访问OMERO服务器(主机、端口、凭据)
最佳实践: 使用Python虚拟环境(venv、conda或mamba)来隔离依赖项。
快速开始
基本连接模式:
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("连接失败")
推荐使用上下文管理器模式:
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:检索和分析图像
- 连接到OMERO服务器 (
references/connection.md) - 导航到数据集 (
references/data_access.md) - 从数据集检索图像 (
references/data_access.md) - 将像素数据作为NumPy数组访问 (
references/image_processing.md) - 执行分析
- 将结果存储为表或文件注释 (
references/tables.md或references/metadata.md)
工作流程2:批量ROI分析
- 连接到OMERO服务器
- 检索带有现有ROI的图像 (
references/rois.md) - 对于每个图像,获取ROI形状
- 提取ROI内的像素强度 (
references/rois.md) - 在OMERO表中存储测量值 (
references/tables.md)
工作流程3:创建分析脚本
- 设计分析工作流程
- 使用OMERO.scripts框架 (
references/scripts.md) - 通过脚本参数访问数据
- 批量处理图像
- 生成输出(新图像、表、文件)
错误处理
始终将OMERO操作包装在try-except块中,并确保连接正确关闭:
from omero.gateway import BlitzGateway
import traceback
try:
conn = BlitzGateway(username, password, host=host, port=port)
if not conn.connect():
raise Exception("连接失败")
# 执行操作
except Exception as e:
print(f"错误: {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使用基于组的权限(只读、读取-注释、读取-写入)
- OMERO中的图像按层次组织:项目 > 数据集 > 图像
- 筛选数据使用:筛选 > 板 > 孔 > 孔样本 > 图像
- 始终关闭连接以释放服务器资源
- 使用上下文管理器进行自动资源管理
- 像素数据作为NumPy数组返回用于分析