[ PROMPT_NODE_26920 ]
元数据与注释
[ SKILL_DOCUMENTATION ]
# 元数据与注释
本参考指南涵盖了在 OMERO 中创建和管理注释的相关内容,包括标签、键值对、文件附件和评论。
## 注释类型
OMERO 支持多种注释类型:
- **TagAnnotation**: 用于分类的文本标签
- **MapAnnotation**: 用于结构化元数据的键值对
- **FileAnnotation**: 文件附件(PDF、CSV、分析结果等)
- **CommentAnnotation**: 自由文本评论
- **LongAnnotation**: 整数值
- **DoubleAnnotation**: 浮点数值
- **BooleanAnnotation**: 布尔值
- **TimestampAnnotation**: 日期/时间戳
- **TermAnnotation**: 本体术语
## 标签注释
### 创建并链接标签
python
import omero.gateway
# 创建新标签
tag_ann = omero.gateway.TagAnnotationWrapper(conn)
tag_ann.setValue("Experiment 2024")
tag_ann.setDescription("此标签的可选描述")
tag_ann.save()
# 将标签链接到对象
project = conn.getObject("Project", project_id)
project.linkAnnotation(tag_ann)
### 创建带命名空间的标签
python
# 创建带自定义命名空间的标签
tag_ann = omero.gateway.TagAnnotationWrapper(conn)
tag_ann.setValue("Quality Control")
tag_ann.setNs("mylab.qc.tags")
tag_ann.save()
# 链接到图像
image = conn.getObject("Image", image_id)
image.linkAnnotation(tag_ann)
### 重用现有标签
python
# 查找现有标签
tag_id = 123
tag_ann = conn.getObject("TagAnnotation", tag_id)
# 链接到多个图像
for image in conn.getObjects("Image", [img1, img2, img3]):
image.linkAnnotation(tag_ann)
### 创建标签集(带子标签的标签)
python
# 创建标签集(父标签)
tag_set = omero.gateway.TagAnnotationWrapper(conn)
tag_set.setValue("Cell Types")
tag_set.save()
# 创建子标签
tags = ["HeLa", "U2OS", "HEK293"]
for tag_value in tags:
tag = omero.gateway.TagAnnotationWrapper(conn)
tag.setValue(tag_value)
tag.save()
# 将子标签链接到父标签
tag_set.linkAnnotation(tag)
## 映射注释(键值对)
### 创建映射注释
python
import omero.gateway
import omero.constants.metadata
# 准备键值数据
key_value_data = [
["Drug Name", "Monastrol"],
["Concentration", "5 mg/ml"],
["Treatment Time", "24 hours"],
["Temperature", "37C"]
]
# 创建映射注释
map_ann = omero.gateway.MapAnnotationWrapper(conn)
# 使用标准客户端命名空间
namespace = omero.constants.metadata.NSCLIENTMAPANNOTATION
map_ann.setNs(namespace)
# 设置数据
map_ann.