ome / omero-scripts

Core OMERO Scripts
https://pypi.org/project/omero-scripts/
12 stars 32 forks source link

Add Plate support to KeyVal_to_csv.py #202

Open will-moore opened 2 years ago

will-moore commented 2 years ago

I was prompted by the need for test data for https://github.com/ome/omero-scripts/pull/195, so I have updated KeyVal_to_csv.py to support Plate input. I seem to remember @abhamacher requested this too somewhere?

I wasn't sure whether to export KV pairs from wells or images for a Plate. Combining different KV pairs from images and wells could be tricky. My initial update allows the user to choose, with a boolean input "Export Wells"? for a Plate.

But if we can define how to combine KV pairs from Wells and Images, I could give it a go.

E.g. if you have a Well containing 2 images:

What should the CSV look like? 1 row or 2 rows or even 3? cc @JensWendt

JensWendt commented 2 years ago

Hi @will-moore ,

I think we should orient ourselves at the same standard that the KV_from_csv script implements. For every object with KV-pairs one row. For every Key one column. Resulting in this output for your above sample:

well image key1 key2
A1 value1 value2
A1 field1 value10 value20
A1 field2 value11 value22

In general I assume it is highly unlikely that a well and the "underlying" images have differing KV-pairs. I personally recommend my users to use the same KV-pairs for both, for a better overview in certain situations. With the same reasoning it is unlikely that the image names are not unique in a plate and therefore the well name before the image might not be required in a single plate setup. But if we go for multiple plates in one .csv I think the whole "chain" plate-name, well-name and image-name is required.

Nevertheless I think that creating a .csv that would allow the recreation of the same annotation-setup if it immediately gets used for the reverse KV_from_csv is the goal.

I hope that helps (although it comes pretty late, sorry)

snoopycrimecop commented 10 months ago

Conflicting PR. Removed from build OMERO-python-superbuild-push#308. See the console output for more details. Possible conflicts:

--conflicts