跳转到主要内容

适用于OMERO CLI的元数据插件。

项目描述

https://github.com/ome/omero-metadata/workflows/OMERO/badge.svg https://badge.fury.io/py/omero-metadata.svg

OMERO元数据插件

用于OMERO CLI的插件。提供在OMERO中批量管理对象注释的工具。

要求

  • OMERO 5.6.0 或更高版本

  • Python 3.6 或更高版本

从PyPI安装

本节假定OMERO.py已经安装。

使用pip安装命令行工具

$ pip install -U omero-metadata

注意,本代码的原始版本仍作为已弃用的代码保留在OMERO.py的5.4.x版本中。当使用CLI元数据插件时,不应设置OMERO_DEV_PLUGINS环境变量,以防止导入Python模块时发生冲突。

用法

该插件通过命令行使用omero metadata命令调用

$ omero metadata <subcommand>

使用-h标志可以显示每个命令的帮助信息。对象可以用Class:ID格式指定,例如Project:123

批量注释是基于HDF的表格,具有NSBULKANNOTATION命名空间,有时也称为OMERO.tables。

可用的子命令有

  • allanns:提供与给定对象链接的所有注释的列表

  • bulkanns:提供与给定对象链接的NSBULKANNOTATION表格的列表

  • mapanns:提供与给定对象链接的所有MapAnnotations的列表

  • measures:提供与给定对象链接的NSMEASUREMENT表格的列表

  • original:以ini格式打印原始元数据

  • pixelsize:设置物理像素大小

  • populate:向对象(见下文)添加元数据(批量注释)

  • rois:管理兴趣区域(ROI)

  • summary:提供可用元数据的一般摘要

  • testtables:测试是否可以创建和初始化表格

populate

此命令从CSV文件创建OMERO.table(批量注释),并将其作为文件注释链接到父容器(如屏幕、板、项目、数据集或图像)。它还尝试将CSV中的图像、井或ROI名称转换为OMERO.table中的对象ID。

必须提供CSV文件作为本地文件,使用--file path/to/file.csv

OMERO.tables具有定义的列类型,用于指定数据类型(如double或long)以及每个列的特殊对象类型,用于存储OMERO对象ID,如ImageColumn或WellColumn。

脚本的默认行为是自动从输入CSV中检测列类型。此行为如下

  • 以支持的对象类型(例如plate、well、image、dataset或roi)命名的列,带有<object> id<object> name,将在OMERO.table中生成相应的列类型。下面表格列出支持的所有列名。

列名

列类型

检测到的标题类型

备注

Image

ImageColumn

image

接受图像ID。附加新的“Image Name”列,包含图像名称。

Image Name

StringColumn

s

接受图像名称。附加新的“Image”列,包含图像ID。

Image ID

ImageColumn

image

接受图像ID。附加新的“Image Name”列,包含图像名称。

Dataset

DatasetColumn

dataset

接受数据集ID。

Dataset Name

StringColumn

s

接受数据集名称。

数据集ID

DatasetColumn

dataset

接受数据集ID。

板列

接受板名称。添加新的“板”列,包含板ID。

板名称

板列

接受板名称。添加新的“板”列,包含板ID。

板ID

长列

l

接受板ID。

井列

接受井名称。添加新的“井”列,包含井ID。

井名称

井列

接受井名称。添加新的“井”列,包含井ID。

井ID

长列

l

接受井ID。

兴趣区域

RoiColumn

roi

接受ROI ID。附加新的“ROI名称”列,包含ROI名称。

ROI名称

StringColumn

s

接受ROI名称。附加新的“ROI”列,包含ROI ID。

ROI ID

RoiColumn

roi

接受ROI ID。附加新的“ROI名称”列,包含ROI名称。

注意:列名称不区分大小写。空格、无空格和下划线均接受作为列名称的分隔符(即 <object> name/<object> id<object>name/<object>id<object>_name/<object>_id 均接受)

注意:如果想要能够按这些列进行查询,列名称不应包含空格。

  • 所有其他列类型将根据列的数据使用pandas库进行检测。请参阅下表。

列名

列类型

检测到的标题类型

示例字符串

StringColumn

s

示例长整型

长列

l

示例浮点数

双精度列

d

示例布尔值

布尔列

b

在缺少值的情况下,列将默认检测为 StringColumn。如果向 omero metadata populate 命令传递 --allow-nan,则浮点列中的缺失值将检测为 DoubleColumn,并且缺失值将存储为 NaN。

但是,如果传递带有 # header 行的 CSV,则可以手动定义标题类型,忽略自动标题检测。该 # header 行应该是CSV的第一行,并定义列如下(请参阅以下示例)

  • d: DoubleColumn,用于浮点数

  • l: LongColumn,用于整数

  • s: StringColumn,用于文本

  • b: BoolColumn,用于true/false

  • platewellimagedatasetroi用于指定对象

如果使用 --manual_headers 标志,则也可以忽略自动标题检测。如果不存在 # header,并且使用此标志,则列类型将默认为 String(除非列名称对应于OMERO对象,如 imageplate)。

示例

以下示例将使用默认的自动列类型检测行为。可以通过在CSV顶部手动添加自定义 # header 行来达到相同的结果(或不同的期望结果)。

项目/数据集

要将表格添加到项目,需要指定 Dataset NameDataset ID 以及 Image NameImage ID

$ omero metadata populate Project:1 --file path/to/project.csv

使用 Image NameDataset Name

project.csv

Image Name,Dataset Name,ROI_Area,Channel_Index,Channel_Name
img-01.png,dataset01,0.0469,1,DAPI
img-02.png,dataset01,0.142,2,GFP
img-03.png,dataset01,0.093,3,TRITC
img-04.png,dataset01,0.429,4,Cy5

上一个示例将创建一个与项目关联的OMERO.table,如下所示,并添加一个新的带有ID的图像

Image Name

Dataset Name

ROI_Area

Channel_Index

Channel_Name

Image

img-01.png

dataset01

0.0469

1

DAPI

36638

img-02.png

dataset01

0.142

2

GFP

36639

img-03.png

dataset01

0.093

3

TRITC

36640

img-04.png

dataset01

0.429

4

Cy5

36641

注意:相当于在project.csv的顶部添加带有# header s,s,d,l,s行的手动定义。

使用图像ID数据集ID

project.csv

image id,Dataset ID,ROI_Area,Channel_Index,Channel_Name
36638,101,0.0469,1,DAPI
36639,101,0.142,2,GFP
36640,101,0.093,3,TRITC
36641,101,0.429,4,Cy5

上一个示例将创建一个与项目关联的OMERO.table,如下所示,并添加一个新的带有名称的图像名称

Image

Dataset

ROI_Area

Channel_Index

Channel_Name

Image Name

36638

101

0.0469

1

DAPI

img-01.png

36639

101

0.142

2

GFP

img-02.png

36640

101

0.093

3

TRITC

img-03.png

36641

101

0.429

4

Cy5

img-04.png

注意:相当于在project.csv的顶部添加带有# header image,dataset,d,l,s行的手动定义。

对于上面两个示例,如果目标是数据集而不是项目,则不需要数据集数据集名称列。

屏幕/板

要将表格添加到屏幕中,CSV文件需要指定名称和。如果指定了# header,则列类型必须是wellplate

$ omero metadata populate Screen:1 --file path/to/screen.csv

screen.csv

Well,Plate,Drug,Concentration,Cell_Count,Percent_Mitotic
A1,plate01,DMSO,10.1,10,25.4
A2,plate01,DMSO,0.1,1000,2.54
A3,plate01,DMSO,5.5,550,4
B1,plate01,DrugX,12.3,50,44.43

这将创建一个与屏幕关联的OMERO.table,并添加井名称板名称列,并使用列作为ID

药物

浓度

细胞计数

有丝分裂百分比

井名称

板名称

9154

3855

DMSO

10.1

10

25.4

a1

plate01

9155

3855

DMSO

0.1

1000

2.54

a2

plate01

9156

3855

DMSO

5.5

550

4.0

a3

plate01

9157

3855

DrugX

12.3

50

44.43

b1

plate01

如果目标是板而不是屏幕,则不需要列。

注意:相当于在screen.csv的顶部添加带有# header well,plate,s,d,l,d行的手动定义。

区域

如果目标是图像或数据集,可以使用包含ROI级别或形状级别数据的CSV文件创建一个作为文件注释链接到目标对象的OMERO.table(批量注释)。如果有一个包含ROI ID的(标题类型roi)的roi列,将自动附加Roi Name列(见以下示例)。如果包含类型为l的形状ID列shape,则将验证形状ID(如果无效,则设置为-1)。如果包含图像ID的image列,将添加Image Name列。注意:类型为shape的列目前在OMERO.server上尚不支持

$ omero metadata populate Image:1 --file path/to/image.csv

image.csv

Roi,shape,object,probability,area
501,1066,1,0.8,250
502,1067,2,0.9,500
503,1068,3,0.2,25
503,1069,4,0.8,400
503,1070,5,0.5,200

这将创建一个类似于以下内容的与图像关联的OMERO.table

Roi

shape

object

probability

area

Roi Name

501

1066

1

0.8

250

Sample1

502

1067

2

0.9

500

Sample2

503

1068

3

0.2

25

Sample3

503

1069

4

0.8

400

Sample3

503

1070

5

0.5

200

Sample3

注意:相当于在image.csv的顶部添加带有# header roi,l,l,d,l行的手动定义。

或者,如果目标是图像,ROI输入列可以是Roi Name(类型为s),并附加一个包含ROI ID的roi类型列。在这种情况下,OMERO中的图像上的ROI必须设置Name属性。

请注意,来自OMERO.table的ROI级别数据在“表格”选项卡下的OMERO.web UI右侧面板中不可见,但可以通过在图像上的批量注释附件上点击“眼睛”来可视化此表格。

开发者安装

此插件可以从源代码安装。

$ cd omero-metadata
$ pip install .

许可证

与许多Open Microscopy Environment (OME)项目一样,本项目根据GNU通用公共许可证(GPL)v2或更高版本进行许可。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

omero-metadata-0.12.0.tar.gz (43.2 kB 查看哈希值)

上传时间

构建分布

omero_metadata-0.12.0-py3-none-any.whl (39.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面