mobie / mobie-viewer-fiji

BSD 2-Clause "Simplified" License
30 stars 12 forks source link

Operetta 5 #1007

Open ThomasMicroscopy opened 1 year ago

ThomasMicroscopy commented 1 year ago

Hello, Now that the Harmony 4.1 HCS importer is working (thank you very much), I was wondering whether it is also possible to get the HCS importer to work for the newer devices (e.g. Operetta CLS) that use Harmony 5.1? I have sent a sample file set via the file sender.

best wishes Thomas

tischi commented 1 year ago

PS: the "operetta importer ..." from PTBIOP works. (latest update from today, there was an error).

@ThomasMicroscopy I am using the PTBIOP code, so it would be a prerequisite that it works there first, before I can adopt it.

@NicoKiaru where would you like the PTBIOP discussion to happen? We can do it here in this issue not to have too many threads.

EDIT: I just saw you are already discussing here, which is fine!

NicoKiaru commented 1 year ago

The issue is here:

https://github.com/BIOP/bigdataviewer-biop-tools/blob/66281e313bd0b4e4bbb6dc9041ad6db462683189/src/main/java/ch/epfl/biop/scijava/command/spimdata/OpenOperettaDatasetCommand.java#L101-L105

I need to check for variations in the file name, like what is done on the operetta importer repo (https://github.com/BIOP/ijp-operetta-importer/blob/729b7c8e96d7858b3c1cdadef71e0ab4f23684d1/src/main/java/ch/epfl/biop/operetta/commands/OperettaImporter.java#L138-L159)

Alternatively, you can already try to rename the file @ThomasMicroscopy

NicoKiaru commented 1 year ago

I notices I already had an opened issue:

https://github.com/BIOP/bigdataviewer-biop-tools/issues/50

ThomasMicroscopy commented 1 year ago

Thanks for the help.
To clarify, the PTBIOP "Operetta Importer works. There was a bug in a recent update, but that got fixed yesterday, and I tried it yesterday, and it worked.

tischi commented 1 year ago

Does it work for both version 4 and 5 ?

ThomasMicroscopy commented 1 year ago

yes, both

ok, the 5.1 I tried with one well only, can try more wells.

tischi commented 1 year ago

Nice! Then I will try to reproduce this in MoBIE. But since it works in PTBIOP, could you just use that? Or is there additional functionality in MoBIE that is critical for you?

NicoKiaru commented 1 year ago

Just to try too clarify, (I know it's a pain), there are two components:


For Tischi, regarding your original question on the forum: to assign the view setups to wells and plate, I'm indeed using the names of the setups, instead of spimdata 'entities' and that makes it brittle.

tischi commented 1 year ago

@NicoKiaru as I asked on the forum: while opening the data, could you add the imageID from the XML to the SpimData attributes?

NicoKiaru commented 1 year ago

@tischi maybe ? We can continue this specific discussion in https://github.com/BIOP/bigdataviewer-image-loaders/issues/16

ThomasMicroscopy commented 1 year ago

As NicoKiaru said, the "Operetta Importer..." is only a batch tool, which in my case I use for tiling. What I was looking for is a plate viewer.

NicoKiaru commented 1 year ago

@ThomasMicroscopy did you try renaming the xml file to Index.idx.xml and see if the Open [Operetta dataset] works ?

ThomasMicroscopy commented 1 year ago

I tried now the BDVdataset Operetta "Open", it didn't work with a plate in Harmony 4.1 (index.idx.xml). R1-C1 R1-C2 R1-C3 R1-C4 R1-C5 R1-C6 R1-C7 R1-C8 R1-C9 R1-C10 R1-C11 R1-C12 R2-C1 R2-C2 R2-C3

... R8-C1 R8-C2 R8-C3 R8-C4 R8-C5 R8-C6 R8-C7 R8-C8 R8-C9 R8-C10 R8-C11 R8-C12 ome.xml.model.Well@1b57e090 ome.xml.model.Well@2941fb15 ome.xml.model.Well@1535cb4a ome.xml.model.Well@1347968b

... ome.xml.model.Well@febad68 ome.xml.model.Well@536c0546 ome.xml.model.Well@66716439 ome.xml.model.Well@63805f92 1 2 3 4 5 6 7 8 9 10 11 Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9 Field 10 Field 11 Attempts to set opener settings for file format PerkinElmer Operetta; data location = /Volumes/MCFMatTrSSD/Thorsten/2023_02_13_MCF7measurement1/Images/Index.idx.xml [WARN] No name found for serie 546 ch 0 setting name to ch_0 [WARN] No name found for serie 546 ch 1 setting name to ch_1 Spimdata mpicbg.spim.data.SpimData@65e23021 is using the Bdv Playground global cache. [ERROR] Unmatched Other Sources [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched FileIndex [ERROR] Unmatched Illumination [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched FileIndex [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 8 >= 6 at java.util.Vector.elementAt(Vector.java:479) at javax.swing.tree.DefaultMutableTreeNode.getChildAt(DefaultMutableTreeNode.java:245) at javax.swing.tree.DefaultTreeModel.nodesWereInserted(DefaultTreeModel.java:313) at sc.fiji.bdvpg.scijava.services.ui.SourceFilterNode.lambda$insert$1(SourceFilterNode.java:160) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 9 >= 5 at java.util.Vector.elementAt(Vector.java:479) at javax.swing.tree.DefaultMutableTreeNode.getChildAt(DefaultMutableTreeNode.java:245) at javax.swing.tree.DefaultTreeModel.nodesWereInserted(DefaultTreeModel.java:313) at sc.fiji.bdvpg.scijava.services.ui.SourceFilterNode.lambda$insert$1(SourceFilterNode.java:160) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched Other Sources .....

[ERROR] Unmatched H05 [ERROR] Unmatched H06 [ERROR] Unmatched H07 [ERROR] Unmatched H08 [ERROR] Unmatched H09 [ERROR] Unmatched H10 [ERROR] Unmatched H11 Reading IFDs Reading IFDs Reading IFDs

NicoKiaru commented 1 year ago

@ThomasMicroscopy Ah yep, got it now. It's probably the 'brittle' mechanism that fails here. (Can you put the error in between triple quotes to avoid having such a long message?) Ok, I'll check something. Do you have windows by any chance ?

ThomasMicroscopy commented 1 year ago

alas no, Mac.

ThomasMicroscopy commented 1 year ago

Attempts to open Harmony 5.1, with the index.xml file renamed too index.idx.xml - it opens the file now, but still creates errors, maybe the same as with 4.1 ; """Attempts to set opener settings for file format PerkinElmer Operetta; data location = /Volumes/Extreme SSD/Foxo/CLSFoxoOriginalsCLS/CO001_FOXO1_DsRED_FullPLate_x20Air__2022-06-15T11_48_56-Measurement 1/Images/Index.idx.xml Spimdata mpicbg.spim.data.SpimData@45f75dc4 is using the Bdv Playground global cache. [ERROR] Unmatched Other Sources [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched FileIndex [ERROR] Unmatched Illumination [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched FileIndex [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Displaysettings [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Angle [ERROR] Unmatched Channel [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched A01 [ERROR] Unmatched Other Sources [ERROR] Unmatched All Sources [ERROR] Unmatched Channel [ERROR] Unmatched Tile [ERROR] Unmatched A01 [ERROR] Unmatched A02"""

NicoKiaru commented 3 months ago

What's the status on this ? I did a few fix in the Open Operetta command. It should be working nice now.

ThomasMicroscopy commented 3 months ago

Hello, thank you. I can give it a try.

tischi commented 3 months ago

Hi @NicoKiaru are these improvements that I could inherit into MoBIE?

NicoKiaru commented 3 months ago

I think there's a lot of stuff that's happening in a different repo. All the information about wells, etc, is happening in the Operetta Manager which is called in here: https://github.com/BIOP/bigdataviewer-biop-tools/blob/master/src/main/java/ch/epfl/biop/scijava/command/spimdata/OpenOperettaDatasetCommand.java

So, it's not like extra metadata from wells is added directly from bigdataviewer-image-loaders, but rather that a reader is acquired, and from the reader extra metadata are acquired.

tischi commented 3 months ago

Thanks @NicoKiaru!

I remember that some time ago we discussed that more metadata could be added to the SpimData that bigdataviewer-image-loadersreturns (I could try to dig out the issue where we discussed this). For MoBIE this additional metadata inSpimDatawould be needed. However, as I understand your response the content of the SpimData that is returned bybigdataviewer-image-loaders` not been changed, right?

NicoKiaru commented 3 months ago

the content of the SpimData that is returned bybigdataviewer-image-loaders` not been changed, right?

You understood right.

The other issue is here: https://github.com/BIOP/bigdataviewer-image-loaders/issues/16

I've added a small new comment