Install the QuPath extension
The extension runs the tools of every installed LabConstrictor app from QuPath, with a form generated from each tool's declaration.
Under heavy construction
This plugin is untested and unlikely to be stable. Expect bugs, missing features and changes without notice. Do not rely on it for work you cannot redo.
For QuPath 0.7 (tested with 0.7.0 on Linux; not tested on Windows or macOS). The jar is attached to each release; until the first release is published, build it from the repository.
What you need
QuPath 0.7.- At least one LabConstrictor app installed on your computer. The app's installer registers it, which is how the extension finds it. Apps declare which hosts list them (
hosts:in theirlabconstrictor-app.yaml); the rule is a binding rule in Tools 0.3.0a1 (featureapp_hosts_v1; PROTOCOL.md section App hosts); Napari, Fiji and QuPath all honour it (this host since PR #35). Apps without a declaration, i.e. installed with an installer from before template 0.1.18, are listed in every host and the Log says so ("declares no hosts"); installers pass the hosts from template 0.1.18 (template PR #33, merged 14 Oct 2026); the current release of every app is built with it. Intended for QuPath: Playground, NucleiSky and Guess the Condition. VLab4Mic is not listed in QuPath (it is for Napari and Fiji), and CellTracksColab is not listed in any host. - Only to build the jar yourself: JDK 25 (QuPath 0.7 is built with Java 25), as described in the repository's README.
Install
- Download
labconstrictor-qupath-<tag>.jarfrom the Releases page. - Drop the jar onto the QuPath window, or put it in the QuPath extensions folder (shown in QuPath's Preferences), and restart QuPath.
Without the jar: download the single file LabConstrictorTools-all.groovy from the same release, open it in QuPath's Script Editor and run it. The Script Editor needs this all-in-one file; the script in the repository is split into part files that do not run on their own there.
Full install page for the apps and all three hosts: Tools docs/INSTALL.md. To help test, follow the human test protocol and fill in its record sheet.
Open it
Choose Extensions > LabConstrictor tools..., pick an app and a tool, and press Run.
- An image input can be the image open in QuPath, any image of the open project, or a file.
- For large images, choose the Image area: the whole image, the selected annotations, or the current viewport. Results come back on the right place of the slide.
- Points and outlines found in the open image become annotations named after the app and the output. Outlines also get the classification
<app>:<output>; above 50 outlines they get no names (QuPath would draw every name over the image) and are found by their classification, with their label as a measurement (outline_indexwhen they have no label). A tool whose result replaces the previous one removes only the annotations it drew itself (they carry LabConstrictor metadata): your own annotations are never removed, even with the same classification. - Results open in a window. Cancel stops a run.
If something does not work
- The status line and Details show what failed. The log is
~/.labconstrictor/logs/labconstrictor.log. - Results and run records are kept in
~/.labconstrictor/resultsand~/.labconstrictor/runs. The extension never deletes them; after each run it startslabconstrictor-tools prune, which keeps the newest 20 results and 50 run records and removes only folders LabConstrictor made and finished. Folders from older versions of the extension are not removed automatically. - The app's
labconstrictor-toolsmust be 0.3.0a1 or newer; with an older one the run is refused and the status line says to update it. - If you open another image while a tool runs, the results are not drawn on the new image: the status line says where the files are.
- An app whose
labconstrictor-toolsis older than 0.3.0a1 is not offered; the status line (or the list of skipped apps after Rescan apps) says to update it. - A number you type that is outside the allowed range (or is not a number) is refused with a sentence like
'Threshold' must be <= 10; it is never changed to fit, and the run does not start. labconstrictor-tools doctorshows which apps are registered.
Source and issues: LabConstrictor-QuPath.