[ PROMPT_NODE_26924 ]
scripts
[ SKILL_DOCUMENTATION ]
# 脚本与批处理操作
本参考指南涵盖了创建用于服务器端处理和批处理操作的 OMERO.scripts。
## OMERO.scripts 概述
OMERO.scripts 是在 OMERO 服务器上运行的 Python 脚本,可从 OMERO 客户端(Web、Insight、CLI)调用。它们作为扩展 OMERO 功能的插件运行。
### 核心功能
- **服务器端执行**:脚本在服务器上运行,避免了数据传输
- **客户端集成**:可从任何带有自动生成 UI 的 OMERO 客户端调用
- **参数处理**:定义带有验证功能的输入参数
- **结果报告**:向客户端返回图像、文件或消息
- **批处理**:高效处理多个图像或数据集
## 基础脚本结构
### 最小脚本模板
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import omero
from omero.gateway import BlitzGateway
import omero.scripts as scripts
from omero.rtypes import rlong, rstring, robject
def run_script():
"""
主脚本函数。
"""
# 脚本定义
client = scripts.client(
'Script_Name.py',
"""
描述此脚本的功能。
""",
# 输入参数
scripts.String("Data_Type", optional=False, grouping="1",
description="选择图像来源",
values=[rstring('Dataset'), rstring('Image')],
default=rstring('Dataset')),
scripts.Long("IDs", optional=False, grouping="2",
description="数据集或图像 ID").ofType(rlong(0)),
# 输出
namespaces=[omero.constants.namespaces.NSDYNAMIC],
version="1.0"
)
try:
# 获取连接
conn = BlitzGateway(client_obj=client)
# 获取脚本参数
script_params = client.getInputs(unwrap=True)
data_type = script_params["Data_Type"]
ids = script_params["IDs"]
# 处理数据
message = process_data(conn, data_type, ids)
# 返回结果
client.setOutput("Message", rstring(message))
finally:
client.closeSession()
def process_data(conn, data_type, ids):
"""
根据参数处理图像。
"""
# 在此处实现
return "处理完成"
if __name__ == "__main__":
run_script()
## 脚本参数
### 参数类型
python
# 字符串参数
scripts.String("Name", optional=False,
description="输入名称")