Cardiotensor: A Python Library for Orientation Analysis and Tractography in 3D Cardiac Imaging

Cardiotensor: A Python Library for Orientation Analysis and Tractography in 3D Cardiac Imaging - Published in JOSS (2026)

https://github.com/josephbrunet/cardiotensor

Science Score: 94.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
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
  • Committers with academic emails
    1 of 6 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

3d-data-processing cardiac cardiac-imaging orientation python structure-tensor
Last synced: 10 days ago · JSON representation ·

Repository

A Python package to quantify and visualize 3D cardiomyocyte orientation in heart imaging datasets

Basic Info
Statistics
  • Stars: 6
  • Watchers: 3
  • Forks: 4
  • Open Issues: 4
  • Releases: 7
Topics
3d-data-processing cardiac cardiac-imaging orientation python structure-tensor
Created almost 3 years ago · Last pushed 14 days ago
Metadata Files
Readme Contributing License Citation

README.md

CardioTensor

Cardiotensor logo


A Python package to quantify and visualize 3D cardiomyocyte orientation in heart imaging datasets

CI Doc License Python Version PyPI version

Introduction

Cardiotensor is a user-friendly and memory-efficient toolkit designed for analyzing the orientation of cardiomyocyte fibers in large heart imaging datasets. It uses advanced image processing techniques to help researchers to accurately quantify 3D cardiomyocyte orientations with high efficiency.

Installation

Cardiotensor is published as a Python package and can be installed with pip, ideally by using a virtual environment. Open up a terminal and install cardiotensor with:

bash pip install cardiotensor

⚠️ Require python 3.10 or newer

Documentation

Cardiotensor's documentation is available at josephbrunet.fr/cardiotensor/

Getting Started

Have a look at our simple example that runs you through all the commands of the package

Cardiotensor pipeline for 3D cardiac orientation analysis
Overview of the cardiotensor pipeline for 3D cardiac orientation analysis and tractography. (a) Input data consist of a whole‑ or partial‑heart volume and, optionally, a binary mask to restrict analysis to myocardial tissue. (b) Local cardiomyocyte orientation is derived by 3D structure tensor computation and eigenvector decomposition. The third eigenvector (smallest eigenvalue) is visualized as arrows, color‑coded by helix angle (HA); inset shows a zoom of the ventricular septum highlighting transmural fiber rotation. (c) After transforming to a cylindrical coordinate system aligned with the left ventricle, voxel‑wise HA, transverse angle (TA), and fractional anisotropy (FA) maps are computed for quantitative analysis. (d) Streamline tractography generated from the eigenvector field reveals continuous cardiomyocyte bundles throughout the heart, color‑coded by HA.

More Information

This package uses the structure-tensor package to calculate the structure tensor, extending its capabilities for cardiac imaging.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! If you encounter a bug or have suggestions for new features:

  • Report an Issue: Open an issue in the repository.
  • Submit a Pull Request: Fork the repository, make changes, and submit a pull request.

For major changes, please discuss them in an issue first.

Contact

For questions, feedback, or support, please contact the maintainers at [j.brunet@ucl.ac.uk].

Reference

Brunet, J., Cook, A. C., Walsh, C. L., Cranley, J., Tafforeau, P., Engel, K., Arthurs, O., Berruyer, C., Burke O’Leary, E., Bellier, A., et al. (2024). Multidimensional analysis of the adult human heart in health and disease using hierarchical phase-contrast tomography. Radiology, 312(1), e232731. https://doi.org/10.1148/radiol.232731. [PDF]

bibtex @article{brunet2024multidimensional, title={Multidimensional analysis of the adult human heart in health and disease using hierarchical phase-contrast tomography}, author={Brunet, Joseph and Cook, Andrew C and Walsh, Claire L and Cranley, James and Tafforeau, Paul and Engel, Klaus and Arthurs, Owen and Berruyer, Camille and Burke O’Leary, Emer and Bellier, Alexandre and others}, journal={Radiology}, volume={312}, number={1}, pages={e232731}, year={2024}, publisher={Radiological Society of North America} }

Owner

  • Name: Joseph Brunet
  • Login: JosephBrunet
  • Kind: user
  • Location: Grenoble, France
  • Company: UCL

JOSS Publication

Cardiotensor: A Python Library for Orientation Analysis and Tractography in 3D Cardiac Imaging
Published
May 02, 2026
Volume 11, Issue 121, Page 9720
Authors
Joseph Brunet ORCID
Department of Mechanical Engineering, University College London, London, UK, European Synchrotron Radiation Facility, Grenoble, France
Lisa Chestnutt ORCID
UCL Institute of Cardiovascular Science, London, UK
Matthieu Chourrout ORCID
Department of Mechanical Engineering, University College London, London, UK
Hector Dejea ORCID
European Synchrotron Radiation Facility, Grenoble, France
Vaishnavi Sabarigirivasan ORCID
UCL Institute of Cardiovascular Science, London, UK, UCL Division of Medicine, University College London, London, UK
Peter D. Lee ORCID
Department of Mechanical Engineering, University College London, London, UK, Research Complex at Harwell, Didcot, UK
Andrew C. Cook ORCID
UCL Institute of Cardiovascular Science, London, UK
Editor
Henrik Finsberg ORCID
Tags
cardiac imaging structure tensor orientation analysis tractography fiber architecture synchrotron tomography

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it using the metadata below."

title: "Cardiotensor: A Python Library for Orientation Analysis and Tractography in 3D Cardiac Imaging"

type: software

authors:
  - family-names: "Brunet"
    given-names: "Joseph"
    orcid: "https://orcid.org/0000-0002-8424-9510"
    affiliation: "Department of Mechanical Engineering, University College London, London, UK; European Synchrotron Radiation Facility, Grenoble, France"

  - family-names: "Chestnutt"
    given-names: "Lisa"
    orcid: "https://orcid.org/0009-0008-0783-7299"
    affiliation: "UCL Institute of Cardiovascular Science, London, UK"

  - family-names: "Chourrout"
    given-names: "Matthieu"
    orcid: "https://orcid.org/0000-0002-2282-6976"
    affiliation: "Department of Mechanical Engineering, University College London, London, UK"

  - family-names: "Dejea"
    given-names: "Hector"
    orcid: "https://orcid.org/0000-0003-2584-9812"
    affiliation: "European Synchrotron Radiation Facility, Grenoble, France"

  - family-names: "Sabarigirivasan"
    given-names: "Vaishnavi"
    orcid: "https://orcid.org/0000-0003-2550-6262"
    affiliation: "UCL Institute of Cardiovascular Science, London, UK; UCL Division of Medicine, University College London, London, UK"

  - family-names: "Lee"
    given-names: "Peter D."
    orcid: "https://orcid.org/0000-0002-3898-8881"
    affiliation: "Department of Mechanical Engineering, University College London, London, UK; Research Complex at Harwell, Didcot, UK"

  - family-names: "Cook"
    given-names: "Andrew C."
    orcid: "https://orcid.org/0000-0001-5079-7546"
    affiliation: "UCL Institute of Cardiovascular Science, London, UK"

keywords:
  - Python
  - cardiac imaging
  - structure tensor
  - orientation analysis
  - tractography
  - fiber architecture
  - synchrotron tomography

license: "MIT"

repository-code: "https://github.com/JosephBrunet/cardiotensor"
url: "https://github.com/JosephBrunet/cardiotensor"

abstract: >
  Cardiotensor is an open-source Python package designed to quantify 3D cardiomyocyte
  orientation in whole- or partial-heart imaging datasets. It provides scalable
  implementations of structure tensor analysis and tractography for teravoxel-scale
  datasets, enabling extraction of directional metrics such as helical angle (HA),
  intrusion angle (IA), and fractional anisotropy (FA).

version: "1.1.8"
date-released: 2026-04-06

GitHub Events

Total
  • Release event: 4
  • Delete event: 6
  • Pull request event: 5
  • Fork event: 2
  • Issues event: 6
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 156
  • Public event: 1
  • Create event: 9
Last Year
  • Release event: 3
  • Delete event: 6
  • Pull request event: 5
  • Issues event: 6
  • Issue comment event: 2
  • Push event: 111
  • Create event: 7

Committers

Last synced: about 1 month ago

All Time
  • Total Commits: 457
  • Total Committers: 6
  • Avg Commits per committer: 76.167
  • Development Distribution Score (DDS): 0.037
Past Year
  • Commits: 237
  • Committers: 6
  • Avg Commits per committer: 39.5
  • Development Distribution Score (DDS): 0.034
Top Committers
Name Email Commits
josephbrunet j****3@g****m 440
Matthieu Chourrout 8****m 10
lchestnutt l****1@g****m 3
by22Jy 1****y 2
Joseph Brunet J****4@e****r 1
Chestnutt u****c@u****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 month ago

All Time
  • Total issues: 4
  • Total pull requests: 11
  • Average time to close issues: about 5 hours
  • Average time to close pull requests: 12 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.18
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 10
  • Average time to close issues: about 5 hours
  • Average time to close pull requests: 13 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.2
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • chourroutm (2)
  • ClementCaporal (1)
  • JosephBrunet (1)
Pull Request Authors
  • JosephBrunet (6)
  • lchestnutt (3)
  • chourroutm (2)
Top Labels
Issue Labels
documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 177 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 11
  • Total maintainers: 1
pypi.org: cardiotensor

Toolkit designed for quantifying and visualising 3D cardiomyocytes orientations in heart images

  • Documentation: https://www.josephbrunet.fr/cardiotensor/
  • License: MIT License Copyright (c) 2023 Joseph Brunet Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Latest release: 1.1.8
    published about 1 month ago
  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 177 Last month
Rankings
Dependent packages count: 9.4%
Average: 31.0%
Dependent repos count: 52.7%
Maintainers (1)
Last synced: about 1 month ago