hf-deepali

Image, point set, and surface registration in PyTorch.

https://github.com/biomedia/deepali

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization biomedia has institutional domain (biomedia.doc.ic.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords

image-registration medical-imaging spatial-transformer-networks
Last synced: 6 months ago · JSON representation ·

Repository

Image, point set, and surface registration in PyTorch.

Basic Info
Statistics
  • Stars: 31
  • Watchers: 4
  • Forks: 10
  • Open Issues: 7
  • Releases: 14
Topics
image-registration medical-imaging spatial-transformer-networks
Created over 3 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

deepali

doi pypi downloads docs tests release

An open source research library for image, point set, and surface registration in PyTorch, which is developed and maintained by the Heartflow-Imperial College London research lab at the Biomedical Image Analysis Group.

Deepali is a Hindu/Sanskrit Indian given name, which means "joy" as in the gratification one may feel working with code built on a modern tensor library with support for automatic differentiation, and "chain of lamps" alluding to the application of the chain rule by torch.autograd, the concatenation of spatial coordinate transformations, and furthermore the (sequential) composition of PyTorch modules. In addition, the English words "deep" and "ali(-gnment)" partially contained in this name should highlight that this project is not only suitable for traditional non-learning based registration, but in particular facilitates deep learning based approaches to image alignment.

Overview

At a granular level, deepali is a library that consists of the following components:

| Component | Description | | -------------- | --------------- | | deepali.core | Common types, coordinate spaces, and tensor functions. | | deepali.data | PyTorch tensor subclasses, data loader utilities, and datasets. | | deepali.losses | Loss terms and evaluation metrics for image, point set, and surface registration. | | deepali.modules | PyTorch modules without optimizable parameters built on core functions. | | deepali.networks | Common building blocks of machine learning based registration models. We expect that most users may want to develop their own task-specific models. For this, the neural network components defined here may be used alongside torch.nn and other deep learning libraries (e.g. MONAI) to define these custom models. | | deepali.spatial | Spatial transformation models whose parameters are either optimized directly as in traditional registration, or inferred by a machine learning model. | | deepali.utils | Optional auxiliaries for interfacing with external libraries and tools. |

Dependencies

The following lists the main dependencies of this project. For a complete list, please open file setup.py.

  • PyTorch: The automatic differentiation and deep learning framework powering this project.
  • SimpleITK: Used by deepali.data to read and write images in file formats supported by ITK.
  • nibabel: Used by deepali.data to read and write images in NIfTI file formats if available.
  • NumPy: Used by deepali.utils. Other components use pure PyTorch.
  • VTK: May be used to read and write point sets and surface meshes.

Installation

This library is available as Python package on PyPI and can be installed with pip:

pip install hf-deepali

The latest development version can be installed directly from the GitHub repository, i.e.,

pip install git+https://github.com/BioMedIA/deepali.git

Alternatively, it can be installed from a previously cloned local Git repository using

git clone https://github.com/BioMedIA/deepali.git && pip install ./deepali

This will install missing dependencies in the current Python environment from PyPI. To use conda for installing the required dependencies (recommended), create a conda environment with pre-installed dependencies before running pip install. For further information on how to create and manage project dependencies using conda, see conda/README.md.

Additional optional dependencies of the deepali.utils library can be installed with the command:

``` pip install hf-deepali[utils]

or pip install git+https://github.com/BioMedIA/deepali.git#egg=deepali[utils]

```

Citation

Schuh, A., Qiu, H., and Heartflow Research. deepali: Image, point set, and surface registration in PyTorch (2023). doi:10.5281/zenodo.8170161

Contributing

We appreciate all contributions. If you are planning to contribute bug-fixes, please do so without any further discussion. If you plan to contribute new features, utility functions or extensions, we would appreciate if you first open an issue and discuss the feature with us. Please also read the CONTRIBUTING notes. The participation in this open source project is subject to the Code of Conduct.

By submitting a pull request to this project, you agree to license your contribution under the Apache license version 2.0 to this project.

Contributors to this project may want to install this package in development mode using

git clone https://github.com/BioMedIA/deepali.git make -C deepali/conda env EDITABLE=1 conda activate deepali

This will link the source tree of the package in the Python environment.

Related projects

Below we list a few projects which are either similar to deepali or complement its functionality. We encourage everyone interested in image registration to also explore these projects. You may especially be interested in combining the more general functionality available in MONAI with registration components provided by deepali.

  • AIRLab: A non-learning based medical image registration framework that took advantage of PyTorch's automatic differentiation and optimizers.
  • DeepReg: A recent and actively developed framework for deep learning based medical image registration built on TensorFlow. Due to its YAML based configuration of different models and training settings within the scope of this framework, it should in particular attract users who are less interested in writing their own code, but train registration models provided by DeepReg on their data. As a community-supported open-source toolkit for research and education, you may also consider contributing your models to the framework. DeepReg also forms the basis for a benchmarking environment that will allow comparison of different deep learning models.
  • Mermaid: This PyTorch based toolkit facilitates both traditional and learning based registration with a particular focus on diffeomorphic transformation models based on either static or time-dependent velocity fields, including scalar and vector momentum fields. It should be especially of interested to those familiar with the mathematical framework of Large Deformation Metric Mapping for Computational Anatomy.
  • MONAI: This excellent framework for deep learning in healthcare imaging is well maintained and part of the PyTorch Ecosystem. It is not specific to medical image registration. In particular, MONAI omits spatial transformation models for use in a registration method, whether optimized directly or integrated in a deep learning model, but contains advanced modules for sampling an image at deformed spatial locations. Common spatial transformations used for data augmentation and general neural network architectures for various tasks are also available in this framework.
  • Neurite: A neural networks toolbox with a focus on medical image analysis in TensorFlow. Parts of it have been used in VoxelMorph, for example.
  • NITorch: A library written by post-docs in John Ashburner's group which is conceptually related to SPM and has a great overlap with deepali. Some low-level functionality for applying spatial transformations has more recently been contributed to MONAI as well.
  • TorchIO: A library in the PyTorch Ecosystem for efficient loading, preprocessing, augmentation, and patch-based sampling of 3D medical images.
  • TorchIR: PyTorch registration library for deep learning based image registration by Bob de Vos based on his related publications.

Owner

  • Name: Biomedical Image Analysis Group
  • Login: BioMedIA
  • Kind: organization
  • Location: Department of Computing, Imperial College London

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "deepali: Image, point set, and surface registration in PyTorch"
abstract: An open source research library for image, point set, and surface registration in PyTorch,
  which is developed and maintained by the Heartflow-Imperial College London research lab at the Biomedical Image Analysis Group.


  Deepali is a Hindu/Sanskrit Indian given name, which means "joy" as in the gratification one may feel
  working with code built on a modern tensor library with support for automatic differentiation, and
  "chain of lamps" alluding to the application of the chain rule by torch.autograd, the concatenation
  of spatial coordinate transformations, and furthermore the (sequential) composition of PyTorch modules.
  In addition, the English words "deep" and "ali(-gnment)" partially contained in this name should highlight
  that this project is not only suitable for traditional non-learning based registration, but in particular
  facilitates deep learning based approaches to image alignment.
type: software
authors:
  - given-names: Andreas
    family-names: Schuh
    affiliation: Heartflow Research
    orcid: https://orcid.org/0000-0002-8214-116X
  - given-names: Huaqi
    family-names: Qiu
    affiliation: Imperial College London
  - name: Heartflow Research
doi: 10.5281/zenodo.8170161
url: https://biomedia.github.io/deepali/
repository-code: https://github.com/BioMedIA/deepali
keywords:
  - medical-imaging
  - image-registration
  - spatial-transformer-networks
license: Apache-2.0

GitHub Events

Total
  • Create event: 11
  • Release event: 2
  • Issues event: 5
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 12
  • Push event: 12
  • Pull request event: 15
  • Fork event: 4
Last Year
  • Create event: 11
  • Release event: 2
  • Issues event: 5
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 12
  • Push event: 12
  • Pull request event: 15
  • Fork event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 91
  • Average time to close issues: 16 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 6
  • Total pull request authors: 2
  • Average comments per issue: 2.06
  • Average comments per pull request: 0.01
  • Merged pull requests: 84
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 18
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 20 days
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 2.2
  • Average comments per pull request: 0.0
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • aschuh-hf (7)
  • vasl12 (4)
  • MengyunQ (2)
  • alinafdima (1)
  • qiuhuaqi (1)
  • robert-graf (1)
Pull Request Authors
  • aschuh-hf (90)
  • sgerber-hf (1)
Top Labels
Issue Labels
bug (6) p1-important (5) enhancement (3) documentation (1) p3-nice-to-have (1) p0-backlog (1)
Pull Request Labels
bug (29) documentation (22) enhancement (21) p1-important (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 179 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 14
  • Total maintainers: 1
pypi.org: hf-deepali

Image, point set, and surface registration library for PyTorch.

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 179 Last month
Rankings
Dependent packages count: 7.3%
Forks count: 14.4%
Stargazers count: 16.2%
Average: 19.8%
Dependent repos count: 41.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

examples/istn/requirements.txt pypi
  • pillow ==8.3
  • typer ==0.3.2
docker/Dockerfile docker
  • $BASE_IMAGE latest build
.github/workflows/checks.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • dorny/paths-filter v2 composite
.github/workflows/docs.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/configure-pages v3 composite
  • actions/deploy-pages v2 composite
  • actions/upload-pages-artifact v1 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/tests.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • dacite *
  • deprecation *
  • pandas *
  • ruamel.yaml *
  • torch >=1.9
  • typing-extensions *