Skip to main content

An open-source toolkit, led by Kitware, Inc., for the segmentation, registration, and analysis of tubes (e.g., blood vessels) in images.

Project description

ITKTubeTK: Tubular Object Extraction, Registration, and Analysis

License

Build, test, package

Documentation Status

Available in C++ and Python for Linux, Windows, and MacOS.

Overview

TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images, developed by Kitware, Inc.

Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks. Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in aerial photographs, and nerves in confocal microscopy.

A guiding premise of TubeTK is that by focusing on 1D and 2D manifolds we can devise methods that are insensitive to the modality, noise, contrast, and scale of the images being analyzed and to the arrangement and deformations of the objects in them. In particular, we propose that TubeTK's manifold methods offer improved performance for many applications, compared to methods involving the analysis of independent geometric measures (e.g., edges and corners) or requiring complete shape models.

TubeTK offers various interface layers:

  • TubeTK/src: This is the algorithms library. It is the lowest level of access to the methods of TubeTK. It is only available via C++, and it requires considerable expertise to effectively combine and call its methods to do anything useful. Interfacing directly with these algorithms is not recommended and is not well supported. Unit-level testing is performed continuously on these methods.

  • TubeTK/include: This is the ITK interface to select methods in TubeTK/src. This level of interface is intended for ITK users and Python scripts writers. The methods exposed represent a level of modularization that invites experimentation, integration with other toolkits (e.g., Scikit-Learn), and development of processing pipelines that accomplish significant image analysis goals. The interface is available as an ITK Extension and thereby available via Python using Wrapped ITK.

  • TubeTK/examples/Applications: These are optional command-line interface applications. These applications are mostly also available via the TubeTK/include interface, and thereby are available via python. Expansion of ITK will focus on the TubeTK/include directory, and new applications will only rarely be added. These applications are built when the cmake options BUILD_EXAMPLES is enabled. These applications also require SlicerExecutionModel, see https://github.com/Slicer/SlicerExecutionModel.

Installing TubeTK

There are now a full set of wheels for itk-TubeTK on Pypi, and they are SOMEWHAT compatible with ITK v5.4. Regretfully getting them to work required changes to ITK, and those changes aren't incorporated into ITK v5.4. We will have to wait for the ITK v6.0 release, which will likely be a few months from now.

So, for 90+% of the functionality working (certain Spatial Object I/O methods will fail), you can use itk-tubetk 1.4.0 from pypi

> pip install itk-tubetk

HOWEVER, for 100% functionality working, IF you are running Windows with Python 3.11, I have created a full set of wheels for ITK, ITKMinimumPathExtraction, and ITKTubeTK and uploaded them to the TEST pypi server. You can install them into a new Python venv (one without ITK already installed), via

python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ itk itk-minimalpathextraction itk-tubetk

This should then install the following packages/wheels, ON WINDOWS machines with Python 3.11 ONLY:

itk                       5.4.0.20240629
itk-core                  5.4.0.20240629
itk-filtering             5.4.0.20240629
itk-io                    5.4.0.20240629
itk-minimalpathextraction 2.0.0.20240629
itk-numerics              5.4.0.20240629
itk-registration          5.4.0.20240629
itk-segmentation          5.4.0.20240629
itk-tubetk                1.4.0.20240629

I will also upload Ubuntu 22.04 wheels to the PyPiTEST server. If you need other wheels, please email me at stephen@aylward.org. However, my time (like everyone's time) is quite booked so there will be a delay. I will also get ITK master updated asap to build with the latest TubeTK and MinimalPathExtraction...

Thanks for your patience!

Installing Additional Examples

For additional examples of how to use TubeTK, see

*** pytubetk

This is a new project that will evolve to be the primary source of examples for python tubetk. It is very much a work-in-progress. The scripts will be helpful, but they may require updates to work with current itk-tubetk wheels: https://github.com/aylward/pytubetk/tree/main/examples

Compiling TubeTK

We stronly reocmmend that you use the Python version of TubeTK, as described above. However, if you wish to compile TubeTK from scratch (e.g., because you wish to modify it or use its C++ interface), then use the version of TubeTK that is bundled with ITK. ITKTubeTK is available as a official ITK Remote Module, see instructions given earlier in this document.

Details on compiling ITK (and optionally compiling its example applications and wrapping it for python) are described next.

Within ITK

If you decide to compile TubeTK instead of using its convenient Python interface (see above), then when you configure ITK (https://github.com/InsightSoftwareConsortium/ITK) using CMake (https://cmake.org/), you must set the following options

  • CMAKE_BUILD_TYPE = Release
  • ITK_WRAP_PYTHON = On
  • Module_TubeTK = On

and then, when you build ITK, TubeTK will be automatically built as well. Additionally, if you enable Python wrapping for ITK, that wrapping will include TubeTK.

Example Applications

To build TubeTK's example applications, you must do the following:

  1. Build Slicer Execution Model: https://github.com/Slicer/SlicerExecutionModel
  2. Set the following configuration options in CMake for ITK:
    • BUILD_EXAMPLES = On
    • SlicerExecutionModel_DIR = <Path to your build of Slicer Execution Model>

We then recommend adding the following paths to your user environment:

For Python

Again, our recommendation is to use the freely avaible and easy-to install Python wrapping of TubeTK that is available as described earlier in this document.

However, if you are compiling your own version of ITK/TubeTK, and you have set ITK_WRAP_PYTHON = On, then when you compile ITK, you will generate the Python interface for ITK and TubeTK. To use itk and itk-tubetk within you python environment, copy the file

ITK-build/Wrapping/Generators/Python/WrapITK.pth 

into your python's site-packages directory, e.g.,

venv/Lib/site-packages

For more info, see https://stackoverflow.com/questions/122327/how-do-i-find-the-location-of-my-python-site-packages-directory

Then you can test your configuration:

$ python -c "import itk"

and

$ python -c "from itk import TubeTK"

Both of the above commands should execute and return without errors. Otherwise, please post a detailed description (of what you've done and what error you received) on the TubeTK issue tracker: https://github.com/InsightSoftwareConsortium/ITKTubeTK/issues

Roadmap

Our roadmap includes:

  • Continue to add examples to the pytubetk repo
  • Use TubeTK segmentations to create MONAI models for vessel segmentation.

Acknowledgements

If you find TubeTK to be useful for your work, please cite the following publication when publishing your work:

  • S. R. Aylward and E. Bullitt, "Initialization, noise, singularities, and scale in height ridge traversal for tubular object centerline extraction," Medical Imaging, IEEE Transactions on, vol. 21, no. 2, pp. 61-75, 2002.

The development of TubeTK has been supported, in part, by the following grants:

  • NCI under award numbers R01CA138419, R01CA170665, R43CA165621, and R44CA143234;
  • NIBIB (NBIB) of the National Institutes of Health (NIH) under award numbers R01EB014955, R41EB015775, R43EB016621, and U54EB005149;
  • NIBIB and NIGMS R01EB021396;
  • NINDS R42NS086295 and R41NS081792;
  • Defense Advanced Research Projects Agency (DARPA) under the TRUST program.

License

This software is distributed under the Apache 2.0 license. Please see the LICENSE file for details.

References

( See also Stephen R. Aylward @ Google Scholar )

  • D.F. Pace, S.R. Aylward, M. Niethammer, "A Locally Adaptive Regularization Based on Anisotropic Diffusion for Deformable Image Registration of Sliding Organs," Medical Imaging, IEEE Transactions on , vol.32, no.11, pp.2114,2126, Nov. 2013 doi: 10.1109/TMI.2013.2274777
  • E. Bullitt, D. Zeng, B. Mortamet, A. Ghosh, S. R. Aylward, W. Lin, B. L. Marks, and K. Smith, "The effects of healthy aging on intracerebral blood vessels visualized by magnetic resonance angiography," NEUROBIOLOGY OF AGING, vol. 31, no. 2, pp. 290-300, Feb. 2010.
  • E. Bullitt, M. Ewend, J. Vredenburgh, A. Friedman, W. Lin, K. Wilber, D. Zeng, S. R. Aylward, and D. Reardon, "Computerized assessment of vessel morphological changes during treatment of glioblastoma multiforme: Report of a case imaged serially by MRA over four years," NEUROIMAGE, vol. 47, pp. T143-T151, Aug. 2009.
  • E. Bullitt, K. Muller, I. Jung, W. Lin, and S. Aylward, "Analyzing attributes of vessel populations," MEDICAL IMAGE ANALYSIS, vol. 9, no. 1, pp. 39-49, Feb. 2005.
  • S. Aylward, J. Jomier, S. Weeks, and E. Bullitt, "Registration and analysis of vascular images," INTERNATIONAL JOURNAL OF COMPUTER VISION, vol. 55, no. 2-3, pp. 123-138, Dec. 2003.
  • E. Bullitt, G. Gerig, S. Pizer, W. Lin, and S. Aylward, "Measuring tortuosity of the intracerebral vasculature from MRA images," IEEE TRANSACTIONS ON MEDICAL IMAGING, vol. 22, no. 9, pp. 1163-1171, Sep. 2003.
  • S. R. Aylward and E. Bullitt, "Initialization, noise, singularities, and scale in height ridge traversal for tubular object centerline extraction," Medical Imaging, IEEE Transactions on, vol. 21, no. 2, pp. 61-75, 2002.
  • S. Aylward, S. Pizer, D. Eberly, and E. Bullitt, "Intensity Ridge and Widths for Tubular Object Segmentation and Description," in MMBIA '96: Proceedings of the 1996 Workshop on Mathematical Methods in Biomedical Image Analysis (MMBIA '96), Washington, DC, USA, 1996, p. 131.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

itk_tubetk-1.4.1-cp311-abi3-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.11+Windows x86-64

itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.1-cp311-abi3-macosx_11_0_arm64.whl (20.4 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

itk_tubetk-1.4.1-cp310-cp310-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.10Windows x86-64

itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_x86_64.whl (20.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.1-cp310-cp310-macosx_11_0_arm64.whl (18.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

itk_tubetk-1.4.1-cp39-cp39-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.9Windows x86-64

itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_x86_64.whl (20.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.1-cp39-cp39-macosx_11_0_arm64.whl (18.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file itk_tubetk-1.4.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: itk_tubetk-1.4.1-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for itk_tubetk-1.4.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 496013fb97f83840c00fd6a993b7af8c177b2dff1b7a6a838334f47477309305
MD5 c3e2fc6d49cfe612b29cb824a9916cc4
BLAKE2b-256 5aab68fdf07501f74c352f6dc07baa488a4403e5f79ff66ee4506fbbe0431ae5

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aaca565e8116b94378539ebf1e5dc30bd1483a74065910c35cf88fff706298ca
MD5 244f9322cf45c4763fb4f9c9cc7036db
BLAKE2b-256 e8594af5ec23d074d8829c4d5c4bea64b9b23496d9087efaf8d738be01f0c9bd

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b669a69204b046c125ae051f2993087cbff83297a50bb2a9f253e7db8d8d7e7
MD5 2cc31af0b8dd9ca4bad4e3e35006aaa0
BLAKE2b-256 ce298c404df0843ab3d412a3e84e8d66e96cf6ed75da0e6c90ef8bf4ce7c503b

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 acbb240e26c4d7b1a92460e828b66ba4b1eb78cf594057dfc7490d8523bb3f8e
MD5 c2bfb4b523d7f46e2801324a05ed658a
BLAKE2b-256 8fba38ccaf60f7e93c077f47f085c7de1def8f076782c87156513601a07e1f7c

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44021ef58e6c891467808c5a9d66e92c9f76158a0f6786c8d57b63d3638cde21
MD5 fd18a36816addb905bf88551fcc807a3
BLAKE2b-256 ec6d05783158d3fb43b7f6fe58a974663776cd355776b6994c804058bc4366b3

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: itk_tubetk-1.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for itk_tubetk-1.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7756dff2b9c37ba303c39d3049c4bdcbc60bc832280b6cd59ad73a074a28c51f
MD5 67b0b6925d0ceaef2b85db5f54b8f51e
BLAKE2b-256 b2ed8d9dc784b6faa9bac8853467dfabf559822cdfc81a935392b2bb281bd514

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be66e8f34b4ed955b1601ba0767759ebc36a2e40e83e50bedc0476be4f4a1387
MD5 606b4942ee3d9ed33a104c7baa87428b
BLAKE2b-256 82d45c32602cb92295744fe3067ecf820ed08e3d2fca9d527327cbb8dc1f34b2

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 32838f5658805a7d0fb71763233831f550ee48a8c905874970c8aa9c75dcc808
MD5 c8cb650b47f78adc5dd169e744ddedbd
BLAKE2b-256 69e99ef03aa5522264bbd8c2f7b31b9e2510ced15aacb2573bd50585bdbac90d

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf1885c04fa054b0592a052cbf4b9b2e15a6fc3a5d9e2dc2f3509a4631f2dc3f
MD5 d57c2adfcd926f253aaace9487f95a88
BLAKE2b-256 7d21bbdc809f912128dea335da5d7b62dedec088e7aa1ea07f4732ac36912645

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82a8dcf75c32bccf9b9ff69c5fa7fb0c19791afc3271e7df82eb19003b00a5f3
MD5 cef5dbda79b6666eaa905fc498e190fa
BLAKE2b-256 7fbdde02fe087bc8441e9a8087f33fdd86f9281a50bf5871c9b40534ed9d68b6

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: itk_tubetk-1.4.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for itk_tubetk-1.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 05dd31f6e8829bf57b83d7771588fee748af34e81c3487d4fbe6a44da4887d24
MD5 e1fb80412636dbf983653f9eaa53a363
BLAKE2b-256 37906bb1542b460ff394e8e941782885ee85d1a1017b86e0c22cd08209f240df

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f9e95cb41901414a78d652dbd986217b4eae3a76e821b4470ff7190ff87f72e
MD5 afdd2fc1ade5c2c4a18a950831f29602
BLAKE2b-256 d36f5c5ea69271082020e575662dcfc20d544b5d85b019fe1ae37222a6b118b1

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 535f3946d3f94d1bcb960cdabf921f365559885b15d132cce0ead81c2e09a0b6
MD5 c84d32ef615ceb1063840fffb5d9d614
BLAKE2b-256 f1492b1a792e51d22b6cc9aa2db6e192ad90d2a8f88d18f289021afdb59d06d2

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 021ed3b25a2396dba7e3da24a8842c03f835fe13e3bb5df28b6fd6681da54723
MD5 3f1331be12d885f4dfce2d7166d28ce2
BLAKE2b-256 82b72af4e9ec33abc71acc06250634422f72111c61b820bb16df5915e6884f31

See more details on using hashes here.

File details

Details for the file itk_tubetk-1.4.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_tubetk-1.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a0f68a7a78a71cbc458d866e28bce6484fd9aa22218e3bbbc9207e3f6cfa393
MD5 acf1e3bbe7c4cc8671fbd9892c30cbe9
BLAKE2b-256 71da5e5e8d26b966e940d98580a0de224f215c629f6f2302df34cb9d95a9cbac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page