Simulating blood flow in vasculature
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d2afdf74b7252647f70155792240f7da99a86ebeaa97afe959c3af82e1a64bc |
|
MD5 | 792939dcdd91eaa71e850ad2b817537c |
|
BLAKE2b-256 | aa1423dfaf21c742a35a555e42baf39517a9203fdf5d69451664642a04adbb54 |