coronary-mesh-convolution

Official implementation of mesh neural networks for SE(3)-equivariant hemodynamics estimation on the artery wall

https://github.com/sukjulian/coronary-mesh-convolution

Science Score: 67.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 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, springer.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Official implementation of mesh neural networks for SE(3)-equivariant hemodynamics estimation on the artery wall

Basic Info
  • Host: GitHub
  • Owner: sukjulian
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1 MB
Statistics
  • Stars: 54
  • Watchers: 4
  • Forks: 8
  • Open Issues: 1
  • Releases: 0
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

If you like this work, also check out our latest iteration LaB-GATr which can be used for the same applications and more!

Coronary mesh convolution

architecture

This repository contains the official implementation of "Mesh convolutional neural networks for wall shear stress estimation in 3D artery models" (STACOM workshop @ MICCAI 2021) and "Mesh neural networks for SE(3)-equivariant hemodynamics estimation on the artery wall" (Computers in Biology and Medicine). For questions, feel free to contact me.

Dependencies & packages

Dependencies: * Python (tested on 3.9.13) * PyTorch (tested on 1.12.1) * PyTorch Geometric "PyG" (tested on 2.0.3) with * torch-cluster (tested on 1.6.0) * torch-scatter (tested on 2.0.9) * torch-sparse (tested on 0.6.15)

Packages: pip install prettytable vtk trimesh potpourri3d tensorboard h5py robust_laplacian

You can install all of these with the provided conda environment file (CUDA 11.6): conda env create -f environment.yml -n cmc conda activate cmc

Additionally, we need gauge-equivariant mesh convolution: git clone https://github.com/Qualcomm-AI-research/gauge-equivariant-mesh-cnn.git cd gauge-equivariant-mesh-cnn pip install . If you get an error regarding OpenMesh, try conda install -c conda-forge openmesh-python and then try to install again.

Data

You can download the dataset(s) from here. The physical units for wall shear stress are [dyn/cm^2] = 0.1 [Pa]. We additionally provide pre-trained model weights.

We adapt the dataset-directory structure used by PyTorch Geometric ("PyG"). The directory with the dataset should contain a folder raw with the unprocessed data. Pre-processing creates a folder processed with the transformed data. vessel-datasets └── stead ├── bifurcating │ └── raw │ └── database.hdf5 └── single └── raw └── database.hdf5 The pre-trained model weights should be placed in a folder model-weights and are loaded automatically if present.

Usage

Experiments are run by executing e.g. (options listed in main.py) python main.py --model gem_gcn --artery_type single and produce visualised output in the vis directory which can be viewed with e.g. ParaView. If you get an error Unable to open file try downloading the HDF5 files directly instead of the whole directory and placing them in their respective folders manually. If everything works, first thing you will see is the pre-processing of the training data.

Hyperparameters for neural network training are set in an experiment file, e.g. exp/gem_gcn/stead.py. Training curves can be viewed with TensorBoard for PyTorch via tensorboard --logdir=runs This codebase supports parallelisation over multiple GPUs. Just use the command line option with a space-separated list. python main.py --model gem_gcn --artery_type single --num_epochs 100 --gpu 0 1

Network layout

architecture This repository implements a three-scale mesh-based graph convolutional residual neural network with gauge-equivariant convolution. For details refer to our paper "Mesh convolutional neural networks for wall shear stress estimation in 3D artery models".

DiffusionNet

We have included DiffusionNet as an additional baseline. The code is copy & pasted from this excellent repository.

Publications

If you found this repository useful, consider citing our paper(s): ``` @article{MeshNeuralNetworks, title = {Mesh neural networks for {SE(3)}-equivariant hemodynamics estimation on the artery wall}, journal = {Computers in Biology and Medicine}, volume = {173}, pages = {108328}, year = {2024}, issn = {0010-4825}, doi = {https://doi.org/10.1016/j.compbiomed.2024.108328}, url = {https://www.sciencedirect.com/science/article/pii/S0010482524004128}, author = {Julian Suk and Pim {de Haan} and Phillip Lippe and Christoph Brune and Jelmer M. Wolterink} }

@inproceedings{MeshConvolutionalNeuralNetworks, author="Suk, Julian and Haan, Pim de and Lippe, Phillip and Brune, Christoph and Wolterink, Jelmer M.", title="Mesh Convolutional Neural Networks for Wall Shear Stress Estimation in {3D} Artery Models", booktitle="Statistical Atlases and Computational Models of the Heart. Multi-Disease, Multi-View, and Multi-Center Right Ventricular Segmentation in Cardiac MRI Challenge", year="2022", publisher="Springer International Publishing", address="Cham", pages="93--102", isbn="978-3-030-93722-5" } ```

Owner

  • Name: Julian Suk
  • Login: sukjulian
  • Kind: user

PhD student @ University of Twente (The Netherlands) Geometric Deep Learning for 3D medical data

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Suk
    given-names: Julian
title: "Coronary mesh convolution"
date-released: 2021-09-14
url: "https://github.com/sukjulian/coronary-mesh-convolution"

GitHub Events

Total
  • Watch event: 5
  • Push event: 4
  • Fork event: 1
Last Year
  • Watch event: 5
  • Push event: 4
  • Fork event: 1

Dependencies

environment.yml conda
  • _libgcc_mutex 0.1
  • _openmp_mutex 5.1
  • blas 1.0
  • ca-certificates 2022.9.24
  • certifi 2022.9.24
  • cudatoolkit 11.6.0
  • intel-openmp 2022.1.0
  • ld_impl_linux-64 2.38
  • libblas 3.9.0
  • libcblas 3.9.0
  • libffi 3.3
  • libgcc-ng 11.2.0
  • libgomp 11.2.0
  • liblapack 3.9.0
  • libstdcxx-ng 11.2.0
  • mkl 2022.1.0
  • ncurses 6.3
  • openmesh-python 1.2.1
  • openssl 1.1.1q
  • pip 22.2.2
  • python 3.9.13
  • python_abi 3.9
  • pytorch 1.12.1
  • pytorch-mutex 1.0
  • readline 8.1.2
  • setuptools 63.4.1
  • sqlite 3.39.3
  • tk 8.6.12
  • typing_extensions 4.4.0
  • tzdata 2022c
  • wheel 0.37.1
  • xz 5.2.6
  • zlib 1.2.12