模拟血管中的血流
项目描述
AstroVascPy
AstroVascPy 是一个用于计算血管(整个皮层柱)中的血压和血流的 Python 库。AstroVascPy 集成了星形胶质细胞末梢对血管半径的影响。特别是,AstroVascPy 复制了血管半径因血管扩张而产生的动态变化。
AstroVascPy 使用 vascpy 点图表示法访问存储在 h5 文件(sonata 格式)中的血管数据库。
vascpy 标准化了血管数据集的 API。点状血管(点图)表示法基本上是两个 pandas 数据帧的组合,一个用于节点属性(x, y, z, 半径,其他...),另一个用于边属性(起始节点,结束节点,其他...)。
输入
- 点图血管
- 对应的 ID 的末梢位置
- 末梢位置的血管半径(可能取决于模拟时间)
输出
- 血管每个节点的血压(节点向量)
- 每个段的血流(边向量)
安装(Linux & MacOS)
AstroVascPy 可以在这里 git 克隆
https://github.com/BlueBrain/astrovascpy
要么在本地运行,要么在 BB5 中运行
source setup.sh
安装AstroVascPy求解器(及其所有依赖项)并设置环境。对于本地安装(工作站),请在运行上述命令之前安装 conda。 注意:每次使用求解器之前都要运行此命令,以确保正确设置环境。
后端求解器:使用 export BACKEND_SOLVER_BFS='petsc'
或 export BACKEND_SOLVER_BFS='scipy'
,用户可以选择线性系统的后端求解器。 注意:PETSc 本身是并行的,而SciPy 不是。因此,只有在使用 petsc
时,使用MPI运行血液流动求解器才有意义!
血液流动求解器(BFS)调试:通过输入 export DEBUG_BFS=1
,我们同时运行PETSc和SciPy,并比较它们的结果。要禁用此行为,请输入 export DEBUG_BFS=0
(默认行为)。
用法
可以使用以下方式运行代码
python3 compute_static_flow_pressure.py
加载架构图
可以使用 examples
文件夹内的 load_graph_archngv.py
脚本来加载架构图并将其转换为pickle二进制格式。以以下方式运行脚本:
python3 load_graph_archngv.py --filename_ngv "path_to_ngv_circuit" --output_graph "output_graph_name.bin"
Sonata报告
报告结构:这是血管的一个特定类型的隔室报告。在每个时间步长,我们存储血液流动、血压和血管每个段落的半径,共3个报告。以下是这些实体的单位:-流动(µm^3.s^-1)-压力(g.µm^-1.s^-2)-半径(µm)
作者
Stéphanie Battini,Nicola Cantarutti,Christos Kotsalos和Tristan Carel
到Bio-arxiv文章的链接
资助和致谢
本软件的开发得到了瑞士政府ETH委员会对洛桑联邦理工学院(EPFL)的Blue Brain项目的资助。
我们感谢Alessandro Cattabiani,Thomas Delemontex和Eleftherios Zisis对代码和工程支持的审查。
版权(c)2023-2023 Blue Brain Project/EPFL