适用于OMERO CLI的元数据插件。
项目描述
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
plate、well、image、dataset、roi用于指定对象
如果使用 --manual_headers 标志,则也可以忽略自动标题检测。如果不存在 # header,并且使用此标志,则列类型将默认为 String(除非列名称对应于OMERO对象,如 image 或 plate)。
示例
以下示例将使用默认的自动列类型检测行为。可以通过在CSV顶部手动添加自定义 # header 行来达到相同的结果(或不同的期望结果)。
项目/数据集
要将表格添加到项目,需要指定 Dataset Name 或 Dataset ID 以及 Image Name 或 Image ID
$ omero metadata populate Project:1 --file path/to/project.csv
使用 Image Name 和 Dataset 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,则列类型必须是well和plate
$ 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或更高版本进行许可。
版权
2018-2022,Open Microscopy Environment和Glencoe Software,Inc
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。