Skip to main content

Simulating blood flow in vasculature

Project description

AstroVascPy Logo

AstroVascPy

AstroVascPy is a Python library for computing the blood pressure and flow through the vasculature (whole cortical column). AstroVascPy incorporates the effect of astrocytic endfeet on the blood vessel radii. In particular, AstroVascPy replicates the dynamics of the radius of a vessel due to vasodilation.

AstroVascPy uses vascpy Point Graph representation to access the vasculature database stored in h5 file (sonata format).

vascpy standardizes the api for the vasculature datasets. PointVasculature (PointGraph) representation is basically a composition of two pandas data frames, one for node properties (x, y, z, radius, other...) and one for edge properties (start_node, end_node, other...).

Inputs

  • pointgraph vasculature
  • endfeet locations with corresponding ids
  • radius of vessels at endfeet locations (possibly depending on simulation time)

Outputs

  • blood pressure at each node of the vasculature (node vector)
  • blood flow at each segment (edge vector)

Installation (Linux & MacOS)

AstroVascPy can be git cloned here:

https://github.com/BlueBrain/astrovascpy

Either locally or in BB5, one can run:

source setup.sh

to install the AstroVascPy solver (+ all its dependencies) and set the environment. For the local installation (workstation), please install conda before running the command above. Remark: Run this command every time before using the solver in order to set the environment correctly.

Backend Solvers: export BACKEND_SOLVER_BFS='petsc' or export BACKEND_SOLVER_BFS='scipy', the user can choose the backend solver for the linear systems. Remark: PETSc is inherently parallel, while SciPy is not. Therefore, running the Blood Flow Solver with MPI makes sense only while using petsc!

Blood Flow Solver (BFS) debugging: By typing export DEBUG_BFS=1, we run both PETSc & SciPy, and we compare their results. To disable this behavior please type export DEBUG_BFS=0 (default behavior).

Usage

The code can be run using

python3 compute_static_flow_pressure.py

Load Archngv graph

An archngv graph can be loaded and converted to a pickle binary format, using the script load_graph_archngv.py inside the folder examples. Run the script as

python3 load_graph_archngv.py --filename_ngv "path_to_ngv_circuit" --output_graph "output_graph_name.bin"

Sonata reports

Structure of the reports: This is a particular type of compartment report for the vasculature. We get a set of 3 reports at each time-step storing the blood flow, the blood pressure and, the radius at each segment of the vasculature. Here are the units of these entities: -flow (µm^3.s^-1) -pressure (g.µm^-1.s^-2) -radius (µm)

Authors

Stéphanie Battini, Nicola Cantarutti, Christos Kotsalos and Tristan Carel

Link to the article on Bio-arxiv:

Funding and Acknowledgements

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

We would like to thank Alessandro Cattabiani, Thomas Delemontex and Eleftherios Zisis for reviewing the code and the engineering support.

Copyright (c) 2023-2023 Blue Brain Project/EPFL

Project details


Download files

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

Source Distribution

astrovascpy-0.1.6.tar.gz (47.8 kB view details)

Uploaded Source

File details

Details for the file astrovascpy-0.1.6.tar.gz.

File metadata

  • Download URL: astrovascpy-0.1.6.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for astrovascpy-0.1.6.tar.gz
Algorithm Hash digest
SHA256 3d2afdf74b7252647f70155792240f7da99a86ebeaa97afe959c3af82e1a64bc
MD5 792939dcdd91eaa71e850ad2b817537c
BLAKE2b-256 aa1423dfaf21c742a35a555e42baf39517a9203fdf5d69451664642a04adbb54

See more details on using hashes here.

Supported by

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