Fit a z-stack from QuPath - #19
Merged
Merged
Conversation
Extensions > FLIMKit bridge > Fit a z-stack... points FLIMKit's z-stack fit at a folder of region_zN.ptu slices and adds each fitted stack to the project as a real z-stack, so the z-slider moves through the slices and an annotation carries the plane it was drawn on. The folder is scanned before the settings dialog. A directory chooser is easy to miss with and the fit is long enough that finding out afterwards is expensive, so an empty folder is refused with the naming pattern and a folder with something in it says how many stacks and slices first. The volume reaches QuPath as a path rather than as bytes, the same way the stitch pipeline hands over its products. Over a forwarded port that path is meaningless locally, so when QuPath cannot open it the extension falls back to GET /v1/zstack/volume.ome.tif and stores the result beside the project, saying which stacks came that way. The project entry carries the pooled fit, not only its conclusions: the locked lifetimes, how many photons they were fitted from, which IRF, and the calibrated chi-squared. The lifetimes alone do not say whether to trust them. Needs flimkit-bridge 0.8.0 for the z-stack endpoints. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014RxD4ykNwSf7AkdZ5jRgLc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extensions > FLIMKit bridge > Fit a z-stack...points FLIMKit's z-stack fit at a folder ofregion_zN.ptuslices and adds each fitted stack to the project as a real z-stack, so the z-slider moves through the slices and an annotation carries the plane it was drawn on.Needs flimkit-bridge#4 for the endpoints.
The folder is scanned first
A directory chooser is easy to miss with, and the fit is long enough that finding out afterwards is expensive. An empty folder is refused with the naming pattern; a folder with something in it says how many stacks and slices before any settings are offered.
Getting the volume across
It arrives as a path rather than as bytes, the same way the stitch pipeline hands over its products. Over a forwarded port that path is meaningless locally, so when QuPath cannot open it the extension falls back to
GET /v1/zstack/volume.ome.tifand stores the result beside the project, saying which stacks came that way.The slices themselves are never uploaded:
ptu_diris a path FLIMKit opens, so a forwarded session names a folder the bridge can see and gets a 404 naming the folder if it does not.The project entry carries the pooled fit
Not only its conclusions. The locked lifetimes, how many photons they were fitted from, which IRF, and the calibrated chi-squared. The lifetimes alone do not say whether to trust them.
Versions
Extension, gradle build,
pyproject.tomlandCITATION.cffall move to 0.6.0 together, and the catalog gains the release, asCLAUDE.mdrequires.Tests
14 in
ZStackResultsTest, headless. Full suite passes; the three failures in the Python tests predate this branch (stale local copies ofphasor.normalise, and a machine-IRF test wanting more than one installed).