Skip to content

Version 0.0.1 - #64

Merged
Marei33 merged 19 commits into
mainfrom
dev
Aug 20, 2026
Merged

Version 0.0.1#64
Marei33 merged 19 commits into
mainfrom
dev

Conversation

@Marei33

@Marei33 Marei33 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

First full version with new name including documentation, matching options with Hungarian and sinkhorn matching and CPD grid search for hyperparameter tuning.

Marei33 and others added 10 commits July 8, 2026 16:51
* delete conda env from rules and default configfile from the workflows

* change instance segmentation visualization

* exclude landmark plot in this branch for better understanding

* make plot format optional: png, pdf or None (set via individual save_path)

* move matching plots to plots subfolder

* Set test config maxiter to 100 and update matchmaker_vis.svg

* update matchmaker visualisation with elastic registration example

* update registration visualisation plot

* remove redundant visualize_displacement_field

* increase max dist again
* Add CPD parameter tuning grid search

Optuna GridSampler-based grid search over CPD non-rigid registration
parameters (w, beta, lmd, maxiter), evaluated by mean Landmark
Registration Error (LRE) between corresponding landmarks.

- matchmaker/cpd_parameter_tuning/: optimization, landmark embedding,
  dataset-specific beta-range suggestion, defaults and README
- workflows/cpd_optimization.smk: input_to_n5 -> add_landmarks ->
  prealignment_with_lm -> rigid_alignment_with_lm -> optimize_cpd
- examples/cpd_optimization_config.yaml: example config (nest
  axis_orientation under prealignment to match the workflow/registration
  config convention)
- matchmaker/utils/vis.py: add plot_landmark_qc and a title param for
  visualize_displacement_field (used by the tuning trial plots)
- environment.yml: enable optuna

Stacked on the visualisation branch (#57), which provides the PINK/CYAN
colormaps that add_landmarks imports. Target branch: dev.

* updaet docstrings

* Fix inaccuracies in CPD tuning README

- Point the example usage at examples/cpd_optimization_config.yaml
  (not the cluster-specific data/brain_matching path)
- Generalize dataset-specific names (Igor/Seymour) and example paths
- Describe landmarks as labeled spheres, not single-voxel labels
- Fix a stray/unclosed backtick in the dataset-specific section

* update README

* save all grid search outputs in subfolder cpd_optimization

* update gitignore
* Add matching methods and update configuration for point cloud matching

* delete conda env in snakemake rules

* delete redundant imports

* make hungarian matching the default method

* use ILP matching for registration examples
* fix folder typo in gitignore

* allow example tif in gitignore

* remove rules for git-lfs in gitattributes

* remove git-lfs dependent files

* add files back to repo without git-lfs

* remove lfs dependent folder

* add files back
* rename module to `image_matchmaker`

* number output folders

* refactor pointset alignment keys
* setup readthedocs config and docs folder

* fix incorrect path for readthedocs config

* fix readthedocs build configuration

* fix readthedocs build missing dependency

* docs: remove default sphinx text

* docs: add overview

* docs: complete install instruction

* docs: complete quickstart section and add config examples

* docs: fix bug & docs format

* docs: add prepare inputs in quickstart section

* docs: add registration outputs in quickstart

* docs: move config reference to new page

* docs: add page to explain example data

* docs: link example data to quick start

* unignore images for docs

* docs: add image to illustrate registration workflow

* docs: fix image name in overview

* docs: move overview to homepage

* docs: fix some format issue

* update config file descriptions; workflow plot now displays elastic test registration

* create documentation for output files

* change order of doc pages

* further describe what pytest does

* add more details to Quick Start, to make it possible to run workflow by only reading this page

* further explain how to deform test data

* minor update to starting page

* `output_name` was replaced with `fixed_name` and `moving_name`

* consistent fixed_name and moving_name in registration workflow, config and tests

* make fixed_image optional when applying transformations as intended

* add a usage and troubleshooting page

* main cpd function renamed to `run_cpd` for consistency; docstrings updated

* change `match_points` to `run_matching` for consistency; add docstring

* rename `run_pointset_registration` for consistency; docstring updated: elasitx_utils updated for consistency

* use setup logging function

* update docstrings for API reference

* add API reference to documentation

* also add apply_transform to API reference

* make hungarian matching default

* integrate new matching algorithms

* add cpd parameter tuning to documentation

* rename package name to `image_matchmaker` and include new output folder names

* also rename project to image_matchmaker

* Update documentation for package renaming (#63)

* docs: rename package within index

* docs: update package name

* update readme

---------

Co-authored-by: zh320 <[email protected]>
Co-authored-by: Buglakova Alyona <[email protected]>
@Marei33
Marei33 requested a review from Buglakova July 16, 2026 12:38
zh320 added 2 commits July 29, 2026 12:36
rename conda env from `matchmaker_env` to `imm_env`
@Marei33
Marei33 marked this pull request as draft July 29, 2026 10:40
Marei33 and others added 6 commits July 29, 2026 13:11
* fix itk/numpy axis ordering in elastix_utils

* update dependencies of axis reordering in elastix registration pipeline

* update axis order in pcd_to_elastix

* integrate check parameter map axis in apply transform, to ensure no old axis order convention is used

---------

Co-authored-by: Marei Freitag <[email protected]>
* update code so it works with the latest dev changes

* add landmark overlay plots

* change plots to three panel plots

* update documentation accordingly

* wire cores and n_jobs

* make plotted point clouds rasterized

* small name changes for consistency

* plot full sample view

* check snakemake rule success with plot_overlays.done file

* update docs accordingly

* added a small testing script for the cpd optimization
* support apply_transform for arbitrary resolution

* update apply_transform snakefile with arbitrary resolution

* update apply_transform config file

* update test for new apply_tranform log_dir

* resample fixed image for overlay in apply_transform

* move load/save_data funs to utils

* rename apply_transform to apply_elastix_transform in elastix_utils

* make output resolution optional in apply_transform

* update apply_transform snakefile for optional output resolution

* drop logging info

* update documentation for apply_transform

* docs: remove duplicate documentation

* create parent dir for apply_transform

* fix mismatched axis order in apply_transform

* update apply_transform example config with anisotropic output example

* update test for apply_transform

* add prealigned suffix to distinguish different outputs in apply_transform

* update test with new output key

* minor docs update

* fix axis order mismatch

* pass interpolation order argument for prealignment

* fix linter issues

---------

Co-authored-by: Marei Freitag <[email protected]>
Co-authored-by: Marei Freitag <[email protected]>
* support apply_transform for arbitrary resolution

* update apply_transform snakefile with arbitrary resolution

* update apply_transform config file

* update test for new apply_tranform log_dir

* resample fixed image for overlay in apply_transform

* move load/save_data funs to utils

* rename apply_transform to apply_elastix_transform in elastix_utils

* make output resolution optional in apply_transform

* update apply_transform snakefile for optional output resolution

* drop logging info

* update documentation for apply_transform

* docs: remove duplicate documentation

* create parent dir for apply_transform

* fix mismatched axis order in apply_transform

* update apply_transform example config with anisotropic output example

* update test for apply_transform

* add prealigned suffix to distinguish different outputs in apply_transform

* update test with new output key

* minor docs update

* fix axis order mismatch

* pass interpolation order argument for prealignment

* fix linter issues

* switch output_resolution and reg_spacing comparison to np.all_close

---------

Co-authored-by: zh320 <[email protected]>
@Marei33
Marei33 marked this pull request as ready for review August 20, 2026 10:39
@Marei33
Marei33 merged commit 76590ae into main Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants