Plugins / FLIMKit-QuPath-Bridge / Troubleshooting · edit on GitHub
Troubleshooting
QuPath says FLIMKit has not published a bridge address
FLIMKit is not running, or the add-on did not load. Check Help > Plugins... in FLIMKit, which lists what loaded and what failed and why.
If user plugins have never been enabled, the add-on will not load at all. Help > Plugins... and press Enable, then restart.
QuPath says that FLIMKit is no longer running
The discovery file names a process id that has gone, usually because FLIMKit was closed or crashed without cleaning up. Start FLIMKit again and press Connect.
Send to QuPath says no QuPath has connected
The bridge tracks whether any client has authenticated. Nothing has yet. In QuPath, Extensions > FLIMKit bridge > Connect.
The check cannot be fooled by an unauthenticated status request or by a wrong token, so if it says nothing has connected, nothing has.
Add FLIMKit images to project says no project is open
QuPath needs a project to add images to. Create or open one, then try again. This is also what makes the side-by-side viewer grid possible.
Nothing to send yet
FLIMKit has no fitted images. Load and fit a dataset first.
Port 8765 is busy
Nothing to do. The bridge takes an ephemeral port instead and records it in the discovery file, so QuPath still finds it. The console says which port was used.
To pin a different port, set port in the add-on's config through plugin_config('qupath_bridge').
An ROI will not import into QuPath
QuPath uses JTS, which refuses polygons that are not topologically valid, and it refuses the whole FeatureCollection rather than the offending feature.
FLIMKit repairs self-intersecting freehand outlines to their outer boundary on export, and marks those features with repaired: self-intersecting. If you are seeing this with a payload from somewhere else, check the rings are closed and do not cross themselves.
The alignment extension throws on the lifetime image
You will see something like:
java.lang.ArrayIndexOutOfBoundsException: Index 99521 out of bounds for length 65536
at java.awt.image.ComponentColorModel.getRGBComponent
The alignment extension cannot render 32-bit float, and the lifetime map has to be float to carry nanoseconds.
Align on the intensity image instead. It crosses as 16-bit whenever photon counts fit losslessly, so the extension opens it, and the transform is valid for the lifetime map because they share the pixel grid. See Co-registration.
If intensity also arrives as float, the counts were not whole numbers or exceeded 65535, usually because of binning or scaling. The console reports what was sent.
The lifetime image looks blank in QuPath
It is a 32-bit float image whose values are nanoseconds, typically between 0 and 5, with NaN wherever a pixel fell below the photon threshold. QuPath's default display range may not suit it. Adjust the brightness and contrast, or set the display range to the actual data range.