https://github.com/computationalphysiology/mad-ssa

Tool for analysis of Mitral annulus disjunction and statistical shape analysis

https://github.com/computationalphysiology/mad-ssa

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Tool for analysis of Mitral annulus disjunction and statistical shape analysis

Basic Info
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

saxomode

saxomode is an open-source toolkit for 3D ventricular shape analysis from cardiac magnetic resonance short axis view medical images.
It provides an end-to-end pipeline for generating, aligning, and analyzing ventricular point clouds, including principal component analysis (PCA) and mesh generation.
- Source code: https://github.com/ComputationalPhysiology/MAD-SSA.git - Documentation: https://computationalphysiology.github.io/MAD-SSA/

Install

Install with pip python3 -m pip install git+https://github.com/ComputationalPhysiology/MAD-SSA.git

Citing

If you use saxomode in your research project we would appreciate if you could use the following citation @inproceedings{monopoli2025arrhythmic, title={Arrhythmic Mitral Valve Syndrome: Insights from Left Ventricular End-Systolic Shape Analysis}, author={Monopoli, Giulia and Sadeghinia, Mohammad Javad and Westrum Aabel, Eivind and Ribe, Margareth and Castrini, Anna Isotta and Hasselberg, Nina and Bugge, Cecilie and Five, Christian and Haugaa, Kristina and Balaban, Gabriel and others}, booktitle={International Conference on Functional Imaging and Modeling of the Heart}, pages={26--36}, year={2025}, organization={Springer} }

License

MIT <!--

📜 Table of Contents

🔭 Project Overview

The main goal of this project is to automate the process of analyzing cardiac shapes from a cohort of subjects. The pipeline consists of the following major steps:

  1. Point Cloud Generation: Creates 3D point clouds of the endocardium and epicardium from .h5 segmentation files.
  2. Alignment: Aligns the generated point clouds for all subjects to a common coordinate system. This step is crucial for meaningful comparison.
  3. Principal Component Analysis (PCA): Performs PCA on the aligned point clouds to identify the main patterns of shape variation across the subjects.
  4. 3D Mesh Creation: (Optional) Generates a 3D mesh from a point cloud and computes error metrics by comparing it to the ground truth segmentation.

The entire process is contained in main.py, which runs the necessary scripts in sequence.

🚀 Getting Started

Follow these instructions to set up and run the project on your local machine.

Installation

  1. Clone the repository: bash git clone https://github.com/ComputationalPhysiology/MAD-SSA.git

  2. Install the required libraries: bash pip install numpy pandas scikit-learn matplotlib plotly meshio open3d h5py structlog opencv-python

⚙️ Usage

This section explains how to use the scripts to process your data. --> <!--

Directory Structure

The scripts expect a specific directory structure, which is configured in config.py. You should have the following directories:

  • controls/ES_files_controls: This is where your subject data (in .h5 format) is stored.

Next, the script will generate: * controls/00_data/: This is the input directory where your subject data point cloud result will be stored. Each subject should have its own subfolder. * Aligned_Models/: This is the output directory for aligned point clouds. * controls/PCA_Results/: This is the output directory for PCA results, including modes of variation and visualizations. * controls/settings/: This contains the fitting parameters for the point cloud generation step.

Running the Full Pipeline

The easiest way to run the entire pipeline is to execute the main.py script. This script will run the point cloud generation, alignment, and PCA in the correct order.

bash python main.py

Individual Scripts

You can execute scripts individually:

| Script | Description | Usage | | :-------------------- | :--------------------------------------------------------- | :------------------------------------------ | | main_pc.py | Generates 3D point clouds from .h5 segmentations. | python main_pc.py [--name <subject>] | | alignment.py | Aligns all generated point clouds to a common origin. | python alignment.py | | pca.py | Runs PCA on aligned point clouds to find shape variations. | python pca.py | | create_3d_mesh.py | Creates a 3D mesh and computes error metrics. | python create_3d_mesh.py --name <subject> |

For more advanced control, especially over the point cloud generation process, you can modify the patient-specific settings files.

Adjusting LAX Curve Smoothing

You can control the smoothing level of the LAX curves for both the epicardium and endocardium. This is useful for fine-tuning the point cloud to better fit the source data, while correcting for breath-hold misalignment.

  • How to adjust: Modify the lax_smooth_level_epi and lax_smooth_level_endo values in the patient's corresponding JSON settings file.
  • Location: These files are located in the directory specified by SETTINGS_DIRECTORY in config.py (e.g., controls/settings/).

Example settings/<patient_name>.json:

```json { "mesh": { "fine": { "laxsmoothlevelepi": 80, "laxsmoothlevelendo": 50, "...": "..." } } } -->

Owner

  • Name: Computational Physiology at Simula Research Laboratory
  • Login: ComputationalPhysiology
  • Kind: organization
  • Location: Fornebu, Norway

GitHub organization for the computational physiology department at Simula Research Laboratory

GitHub Events

Total
  • Push event: 8
  • Public event: 1
Last Year
  • Push event: 8
  • Public event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 189
  • Total Committers: 2
  • Avg Commits per committer: 94.5
  • Development Distribution Score (DDS): 0.413
Past Year
  • Commits: 189
  • Committers: 2
  • Avg Commits per committer: 94.5
  • Development Distribution Score (DDS): 0.413
Top Committers
Name Email Commits
giuliamonopoli 1****i 111
mjsadeghinia m****a@o****m 78

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 25 days
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 25 days
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • mjsadeghinia (6)
  • giuliamonopoli (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/build_docs.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-pages-artifact v3 composite
.github/workflows/deploy_docs.yml actions
  • actions/checkout v4 composite
  • actions/configure-pages v5 composite
  • actions/deploy-pages v4 composite
pyproject.toml pypi
  • meshio *
  • numpy ==1.23
  • opencv-python *
  • pandas ==2.2.3
  • scikit-learn *
  • ventric-mesh @ git+https://github.com/mjsadeghinia/VentricMesh.git