qupath / qupath-extension-omero-web

QuPath extension to work with images through OMERO's web API
GNU General Public License v3.0
8 stars 12 forks source link

Can't use OMERO extension in qupath script #11

Open CuB0 opened 2 years ago

CuB0 commented 2 years ago

Good evening.

In the past days i tried to script my entire workflow in qupath. The idea is to call QuPath from the CLI and pass the script and the project.

The script is ok when i run it from the GUI getting the images from my OMERO server.

The problem arises when i try to execute the script from the CLI. I can't understand if it's possible to and how i can pass my OMERO server credentials as an option to the image server builder.

I tried to read the code but, for my little understanding of the Java language, i didn't find anything.

Is there something that i'm missing?

Thank you for your patience.

melvingelbard commented 2 years ago

Hi @CuB0 ,

I'm afraid it is not really currently possible. I'll investigate how we can safely pass a file/credential argument to the login method and login to an OMERO server via the CLI and report back whenever I have some more info. You'll probably see something about this on the forum soon.

shuangyanl commented 2 years ago

Hi @melvingelbard , I think I have similar issue here. I'm trying to read image list from a project and read image data from this list using QuPath Java API directly instead of running a script in QuPath.

Code snippet:

List<ProjectImageEntry<BufferedImage>> imageList = project.getImageList();
ProjectImageEntry projectImageEntry = imageList.get(0);
ImageData<BufferedImage> imageData = projectImageEntry.readImageData();

However, I then got the “java.lang.ExceptionInInitializerError at qupath.lib.images.servers.omero.OmeroWebClient$OmeroAuthenticatorFX.getPasswordAuthentication”.

The images are stored/loaded from an Omero Server via QuPath. So in my project.qpproj file, the “serverBuilder/providerClassName” and “uri” of an image is something look like:

…
“providerClassName”: “qupath.lib.images.servers.omero.OmeroWebImageServerBuilder”,
“uri”: “https://omero-prod/…/webclient/?show%3Dimage-12345”,
…

Question: Is there some other way that I can pass the omero credential info in my Java code to the Omero extension (e.g. OmeroWebClient class)?

Any comments would be appreciated.