Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement registration framework #6

Merged
merged 10 commits into from
Nov 13, 2023

Conversation

tbirdso
Copy link
Collaborator

@tbirdso tbirdso commented Oct 23, 2023

Implements the itk-dreg out-of-memory registration framework. Includes installable modules, testing, and examples.

Refer to updated README and CONTRIBUTING documentation along with notebook examples to get started.

Deferred: Deferred to #7: Run distributed with LocalCluster. Depends on InsightSoftwareConsortium/ITK#4267.

cc @thewtex

Copy link
Member

@thewtex thewtex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
docs/develop.md Outdated Show resolved Hide resolved
docs/develop.md Show resolved Hide resolved
docs/develop.md Show resolved Hide resolved
@thewtex
Copy link
Member

thewtex commented Nov 6, 2023

stitch_reduce -> displacement_field_reduce

@thewtex
Copy link
Member

thewtex commented Nov 6, 2023

dask array argument -> chunk size specification that is used for internal dask array construction

@thewtex
Copy link
Member

thewtex commented Nov 6, 2023

Add a comment noting that the current readers / writers will work with any itk-supported image type, but streaming will require a streaming supported reader, e.g. uncompressed MetaImage or Zarr.

@tbirdso
Copy link
Collaborator Author

tbirdso commented Nov 10, 2023

@thewtex Following up from discussion yesterday, documentation on the Dask "threads" scheduler is here: https://docs.dask.org/en/stable/scheduling.html#local-threads

Parallelism occurs within a single process. I have not run benchmarks to determine whether we are seeing speedup with ITKElastix between "synchronous" and "threads" scheduling.

Update `.gitignore` with common files to ignore
Update `itk-dreg` interfaces in `itk_dreg.base` with docstrings
and feature improvements following implementation and testing.
Add `itk_dreg.register` submodule implementing Dask pairwise
registration scheduling.

Rebased after development and testing.
Add the `itk_dreg.elastix` subpackage implementing pairwise subimage
registration with ITKElastix.

Includes testing.
Adds `itk_dreg.reduce_dfield` subpackage implementing subimage
registration result reduction to a displacement field transform.

Includes testing.
Adds `itk_dreg` pytests and mock helpers.

Rebased following development.
Adds `pyproject.toml` for packaging `itk-dreg` with the tool `flit`.
Adds examples demonstrating how to use `itk-dreg` for distributed
massive image registration.
Add CI workflows to automatically run linting and tests on contributions
to `itk-dreg`.
Update `itk-dreg` project documentation with general discussion,
developer information, and other useful information.
@tbirdso
Copy link
Collaborator Author

tbirdso commented Nov 10, 2023

@thewtex Ping: this PR is ready for review and then merge. Additions are significant, I leave it up to you to decide how closely you'd like to do code review following our previous walkthroughs together offline.

Copy link
Member

@thewtex thewtex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tbirdso Phenomenal! 🥇 🍾 🎇

I love the tests and CI!

@thewtex thewtex merged commit 4a4f19c into InsightSoftwareConsortium:main Nov 13, 2023
5 checks passed
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