OMERO screens data import


I tried to import a series of images to a screen in OMERO but the images go straight to the orphanage images folder.
I had a series of images of a 96 well plate (1 image per well) and I thought that it would be suitable for that.

So my question is what sort of data one can import to a screen ?
Does it need to follow a specific naming conventions ?

I tried to find this info in the documentation but I was unsuccessful.
Thanks a lot for your help

Hi, @LPUoO,

Bio-Formats must detect your files as a plate in order to import successfully into a screen. What format are the files?


Thanks @joshmoore.
The files are simple .tif. One file per position. Each filename contains the well name (such as test1_Plate_R_p00_0_A01f00d4)


One option is to import all the Images into OMERO as separate images (as you have done already) then assemble them into a Plate using the script.

There’s a brief description and demo movie of the script at It’s a bit dated and shows the workflow in Insight client but this is still the same in the current webclient.

You just need to put your orphan images into a Dataset, then select the Dataset and launch the script. In webclient now, you launch scripts using the 2-cogs button in the top tool-bar.
This technique uses the naming of the images to order them. They are added to the plate in that order, going column-first OR row-first. Maybe try it with a small number of images first.

Another option is to try and assemble the images into a Plate before import to OMERO using OME-XML, but this is a bit more involved, so try the script approach first.

Hope that helps,

Hello OME-Team, dear @s.besson,
the conversion to plate works if the numbering of the images correspond to what OMERO expect. for instance images image1, image2, …, image10, image11, will be ordered image1, image10, …which does not allow a conversion.

Could you provide an example concerning OME-XML companion file?
For instance an xml file that associates images continuouly numbered by the suffix s1, s2, … to a well/position. How does omero knows which xml to get? Should I specify in omero.insight the whole folder?

This question is related to the issue raised in



@apoliti thanks for following-up on the public forum. We have constructed a minimal example of a multi-file OME-TIFF fileset including some HCS metadata. I attach a version of this fileset in this issue. (18.0 KB)

After unzipping, if you select either the whole folder or the hcs.companion.ome file, the client will import all files as a 4 wells plate with one field of view for wells A2, B1 and B3 and two fields of view for well C2. In the XML companion file, the Plate element is the one which expresses the relationship between each Image and the Screen/Plate/Well/WellSample structure.

Hopefully, this should contain enough information for creating such files. Do not hesitate to ask if you have questions either on this thread or in a separate one. We might be separately adding this example to the official OME-TIFF samples as a reference.


Dear @s.besson,

Thanks. I will try it and generate a corresponding file for our dataset. If I may ask you one further question:
Is the UUID necesssary? Can I use whatever comes handy to me to create it (e.g. the python UUID module)? You are not aware of a python module or other API that helps to generate a companion file (I can of course write one)?



Hi Antonio,

yes the UUID is mandatory when the binary data is stored in another file than the one containing the OME-XML. Using a standard library for generating UUID is actually highly recommended.

In terms of Python libraries supporting the generation of these metadata files:

  • the OME team has been increasingly investing into the usage companion files in the context of IDR and other projects. To facilitate the generation, we started building a small Python library. As the module name indicates, the scope and coverage is limited and the API is still very experimental. SPW and patterns should give you an example of consumer code creating a SPW companion file. Feedback welcome
  • several Python projects have emerged from the community to write OME-TIFF. Two of them come to mind imediately: apeer-ometiff-library and aicsimageio as they have some good presence and support on this forum. In both case, the libraries include some module able to generate OME-XML metadata although I am not sure whether if these can be used directly for creating standalone companion files.
1 Like

Hello @s.besson, hello @will-moore ,
thanks for the information. In fact for us the script Dataset to Screen also does not work out of the box. The reason is that the order how omero imports the images (from a multi-tiff multi-position file) is not the order of the plate. I think also one thing that could fix the issue for us is that OMERO imports images in the order of their numerical index. Let me explain:

  • Zeiss czi (ZEN black):
    Images are stored as multi-page tiff each positition is called scene. For a 96 well plate, the scene are numbered scene1, scene2, scene3,…, scene10, …, scene96.
    Omero imports the images in the order scene1, scene10, scene11.

  • Visitron (Visiview software metamorph convension nd):
    There is a nd file and associated stk files. The files have an index _s1, _s2, …, s_10, _s11. Here again the import order is _s1, _s10, _s11.

My current solution was to rename the files but this is not elegant and cumbersome for facility users.

What would be a good strategy?

  1. Create a modified Dataset to Screen script? This I should manage using the as template. Now the order is a simple list command and one can modify it.
  2. Change the order in which data are imported into omero?

Strategy 2 could be very useful in general for users that would like to upload their data in the order the data has been acquired. Alternatively is there a way to reorder the images in the web/omero.insight? One could run a script to do this or run a renaming script on omero.



Hi Antonio,

Both the Web client and the script logic are sorting the images by their name and the order you see reflects the Python order:

>>> sorted(['s%d' % i for i in range(1, 15)])
['s1', 's10', 's11', 's12', 's13', 's14', 's2', 's3', 's4', 's5', 's6', 's7', 's8', 's9']

The first option gives full flexibility but it feels like every invocation of the script will need some custom input that depends on the dataset. So this might not be very scalable if you need to convert many of them.

For the second strategy, it is possible that the images are created in the order of the index. Could you check this is the case by looking at the image IDs in the client? If so, modifying the script to sort the images by their ID rather than their name might be an option.

Otherwise, the images need to be renamed to match the script assumptions. Post import, it should be possible to construct a script that runs against an entire dataset, looks for the maximal number of digits in the image names after a suffix (_s or scene) and renames all images by padding their index with zeros (_s01, _s02 …).

Hi @apoliti,

I had a go at creating a “renaming script” as suggested by Sebastien.

The script takes a Dataset(s) and a prefix (_s or _scene) and renames all the images by padding the following number with zeros _scene001 etc.

Hope it’s useful, even if you need to modify it a bit to fit your needs?