-
Notifications
You must be signed in to change notification settings - Fork 0
Using the bridge
The bridge starts with FLIMKit. There is nothing to launch and no port to configure.
FLIMKit writes its address and a freshly generated token to ~/.flimkit/qupath-bridge.json, readable only by your account where the platform supports it. QuPath reads that file, so Connect needs nothing typed in.
If port 8765 is busy, an ephemeral port is taken and recorded in the same file, so nothing needs reconfiguring.
Connect to a different address... is there for the case where the file cannot be reached, such as FLIMKit running in a container or at the far end of an SSH tunnel.
Add FLIMKit images to project puts the intensity and lifetime maps into the open project. They arrive as 32-bit float images carrying real values, photons and nanoseconds, not a colourmapped render, so you can query lifetimes off the pixels. The unit ends up in the image name, so the project browser reads FLIMKit lifetime (ns).
The images are written next to the project file, under <project>/flimkit/, so the entries survive a restart.
A project has to be open. This is what lets the FLIM images sit beside your brightfield in QuPath's viewer grid.
Send annotations to FLIMKit posts every annotation on the current image as a GeoJSON FeatureCollection. FLIMKit adds them to its region list and refreshes the display.
Fetch ROIs from FLIMKit pulls FLIMKit's regions in and adds them to the current image.
The Send to QuPath button sits in the ROI panel, under the fitting controls. It reports whether QuPath has connected and which images are being served.
If no QuPath has paired yet it says so, with the address and the file to look at, rather than failing quietly.
Fitted lifetime and photon-count intensity only. Raw per-pixel decay histograms are deliberately excluded: QuPath has nothing useful to do with them, a 512 by 512 map with 256 time bins is 268 MB per transfer, and the bin width, repetition rate and instrument response would all need a metadata contract of their own.
ROI geometry, names and measurements cross in both directions. Freehand outlines that cross themselves are repaired to their outer boundary by FLIMKit before export, because a self-intersecting ring is not valid GeoJSON and QuPath refuses it.