Repository navigation
Conversation
imcflibs.imagej.bdv could not be imported in a Fiji without the PTBIOP update site (ImportError: No module named scijava), although only fuse_dataset_bdvp needs the BIOP command. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Checked against the dialogs of multiview-reconstruction 9.0.11 and BigStitcher 3.0.8: - run MVR / BigStitcher commands by plugin class (run_command): the legacy SPIM_Registration plugin shipped with Fiji registers several of the same command names, and IJ.run may start it instead - dialog keys and choices: RANSAC (minmal_number_of_inliers, "Normal (10,000)", advanced options), search radius only with limit_search_radius, timepoint spelling, illumination key of the manual definition, pre-align, fusion export keys; HDF5 export (removed in MVR 9) raises, TIFF is the default - new optional parameters, defaults keep the previous behaviour: registration (model, regularisation, grouping, point selection, descriptor values, search radius, RANSAC, strategy, fixed views), stitching optimisation (strategy, fixed groups), detection (label, downsampling, intensity range, grouping), fusion (bounding box, non-rigid, N5 / OME-ZARR options, file names), backup_xml for the stitching steps - new helpers fmt_ransac_options and export_choice Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## devel #161 +/- ##
====================================
+ Coverage 33% 37% +4%
====================================
Files 25 25
Lines 1806 1878 +72
====================================
+ Hits 591 689 +98
+ Misses 1215 1189 -26 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟡 Changes recommended
Detection and registration labels containing spaces are not preserved, and the class-based plugin dispatch lacks tests for option handling and cleanup on success and failure.
3 open issues
What changed in this PR
Updates imcflibs.imagej.bdv for multiview-reconstruction 9 and BigStitcher 3, addressing legacy plugin command collisions (#158) and outdated dialog options (#159).
Changes:
- Dispatches mapped commands by plugin class and defers the optional BIOP import.
- Expands registration, detection, stitching, and fusion options; defaults fusion to TIFF and supports N5/OME-ZARR exports.
- Adds mock-based wrapper tests and documents compatibility and behavior changes.
| File | Description |
|---|---|
| tests/bdv/test_mvr_wrappers.py | Adds macro-string tests for updated wrappers and export options. |
| tests/bdv/test_definitionoptions.py | Updates expectations for the illumination dialog key. |
| src/imcflibs/imagej/bdv.py | Implements class-based dispatch, corrected dialog options, and expanded wrapper parameters. |
| CHANGELOG.md | Documents new helpers, compatibility fixes, and changed defaults. |
Review effort: Balanced
Comment on lines
+94
to
+98
| Macro.setOptions(thread, str(options)) | ||
| try: | ||
| IJ.runPlugIn(command, class_name, "") | ||
| finally: | ||
| Macro.setOptions(thread, None) |
Comment on lines
+1440
to
+1442
| + "label_interest_points=" | ||
| + label | ||
| + " " |
Comment on lines
+1682
to
+1684
| + "interest_points=" | ||
| + label | ||
| + " " |
This was
linked to
issues
Oct 28, 2026
This branch has not been deployed
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.

Fixes #158
Fixes #159
Related: #160
Target:
devel. Branch based ondevel(8482d1a).Changes (
imcflibs.imagej.bdv)run_command: MVR / BigStitcher commands are started by plugin class, so the legacySPIM_Registration plugin can no longer take over a command (see
IJ.run()can start the legacy SPIM_Registration plugin instead of BigStitcher / multiview-reconstruction #158). All MVR / BigStitcherwrappers use it; outside Fiji (test mocks) it falls back to
IJ.run.imcflibs.imagej.bdvwrappers do not match multiview-reconstruction 9 / BigStitcher 3 #159).interest_points_registration: label, transformation and regularisation, groupings and mergedistance, view / point selection, descriptor values, search radius, RANSAC options (new helper
fmt_ransac_options), global optimisation strategy, fixed views, pre-alignmentoptimize_and_apply_shifts: strategy, fixed groups, pre-alignmentdetect_interest_points: label, downsampling, fixed intensity range, groupingsfuse_dataset: bounding box,preserve_original, non-rigid fusion, TIFF file name, N5 /OME-ZARR container name, compression, block sizes, compute-block factor (= shard size), pyramid
levels, sharding, single container
backup_xml(defaultTrue)fuse_datasetdefault export is TIFF (uncompressed); HDF5 is not available in MVR 9 andraises a
ValueError. N5 and OME-ZARR (v3, helperexport_choice) always write a BDV/BigStitcherXML and a multi-resolution pyramid. Compression and block sizes are always passed (MVR's initial
defaults), because MVR's dialogs keep the values of the previous call for the rest of the Fiji
session. Other wrappers only pass what they set; whether all wrappers should always pass every
value is open in MVR / BigStitcher dialogs reuse the previous call's values within a Fiji session #160.
imcflibs.imagej.bdvimports without the PTBIOP update site (BIOP command imported infuse_dataset_bdvponly).Behaviour changes for existing callers:
fuse_dataset()withoutexportnow writes TIFFinstead of (no longer possible) HDF5;
ProcessingOptionstimepoint strings changed (they did notmatch the dialogs before).
Tests
tests/bdv/test_mvr_wrappers.py(mock-based string tests, 16 new tests); 65 tests pass,ruff checkand markdownlint clean. The Python 2 job was not run locally.9.0.11 / BigStitcher 3.0.8: offline on a synthetic BDV dataset (2 x 2 tiles, 2 channels, known
shifts) the registration is identical to the previous MVR 7.0.7 pipeline (0.000 px) and the fused
TIFFs are bit-identical; N5 / OME-ZARR export options verified in the written containers
(compression, chunk and shard sizes, pyramid levels).