/V-System

A project to create synthetic vascular networks utilising L-Systems.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

V-System: Vascular Lindenmayer Systems

V-System if a Python project to generate synthetic vascular networks which utilises Linenmayer Systems, known as L-Systems; a type of formal grammar.

V-System uses the grammars of M. Galarreta-Valverde et al. (2013) who extended the traditional L-System by adding stochastic rules and parameters in the grammar to generate synthetic 3D blood vessels.

The V-System is split into three processes:

  • Generate a grammatical string for a user-defined number of iterations.
  • Convert the string into a list of coordinates.
  • Perform 3D voxel traversal to generate a 3D binary mask of the generated vascular network.

An example of generated synthetic vascular trees of increasing complexity is shown below.

alt text

References

To reference this repository please use the below citation.

Version 1.0:

Quantification of vascular networks in photoacoustic mesoscopy
Emma L. Brown, Thierry L. Lefebvre, Paul W. Sweeney et al.

Version 2.0:

Segmentation of 3D blood vessel networks using unsupervised deep learning
Paul W. Sweeney et al.

Installation

V-System is compatible with C++11, and has been tested on Ubuntu 18.04 LTS and macOS Big Sur. Other distributions of Linux and Windows should work as well.

To install V-System from source, download zip file on GitHub page or run the following in a terminal:

git clone https://github.com/psweens/V-System.git

The required Python packages can be found here. The package list can be installed, for example, using creating a Conda environment and by installing the packages using PIP:

Pip install scikit-image opencv-python bezier matplotlib itk

Acknowledgements

I would like to acknowledge that the V-system code utilises several portions of code originally written by Miguel A. Galarreta-Valverde here.