|
a |
|
b/README.md |
|
|
1 |
<h1>Time-averaged simulations results for bi-phasic blood flow simulations in realistic microvascular networks for various single- and multi-capillary occlusion scenarios.</h1> |
|
|
2 |
<h2>Creators</h2> |
|
|
3 |
Schmid, Franca |
|
|
4 |
Conti, Giulia |
|
|
5 |
Jenny, Patrick |
|
|
6 |
Weber, Bruno |
|
|
7 |
--- |
|
|
8 |
<section id="description" class="rel-mt-2 rich-input-content" aria-label="Record description"> |
|
|
9 |
<h2 id="description-heading" class="sr-only">Description</h2> |
|
|
10 |
|
|
|
11 |
<div style="word-wrap: break-word;"> |
|
|
12 |
<p><strong>DOCUMENTATION - Time-averaged simulations results for bi-phasic blood flow simulations in realistic microvascular networks for various single- and multi-capillary occlusion scenarios.</strong></p> |
|
|
13 |
|
|
|
14 |
<p>Correspondence: fschmid@ethz.ch (Franca Schmid, ORCID: <a href="https://orcid.org/0000-0002-0689-9366">0000-0002-0689-9366</a>)</p> |
|
|
15 |
|
|
|
16 |
<p><strong>1. Related references:</strong><br> |
|
|
17 |
The data set is published in context with the manuscript: <br> |
|
|
18 |
[1]<em> The severity of microstrokes depends on local vascular topology and baseline perfusion</em>. <br> |
|
|
19 |
F Schmid, G Conti, P Jenny and B Weber. eLife. 2021. Doi: 10.7554/eLife.60208</p> |
|
|
20 |
|
|
|
21 |
<p>The bi-phasic blood flow simulations have been performed in realistic microvascular networks (MVNs) from the mouse somatosensory cortex first published in:<br> |
|
|
22 |
[2]<em> The cortical angiome: an interconnected vascular network with noncolumnar patterns of blood flow</em>. P Blinder, PS Tsai, JP Kaufhold, PM Knutsen, H Suhl and D Kleinfeld. Nature Neuroscience. 2013. Doi: 10.1038/nn.3426</p> |
|
|
23 |
|
|
|
24 |
<p>The bi-phasic blood flow model for realistic MVNs has first been published in:<br> |
|
|
25 |
[3]<em> Depth-dependent flow and pressure characteristics in cortical microvascular networks</em>. F Schmid, PS Tsai, D Kleinfeld, P Jenny and B Weber. PLoS Computational Biology. 2017. Doi: 10.1371/journal.pcbi.1005392</p> |
|
|
26 |
|
|
|
27 |
<p><em>For further information on how to perform bi-phasic blood flow simulation, please contact the corresponding authors of [1] or [3].</em></p> |
|
|
28 |
|
|
|
29 |
<p><strong>2. Requirements (software):</strong><br> |
|
|
30 |
<em>All simulations and analyses have been performed in Python 2.7. To execute the analysis script the following python libraries need to be installed: cPickle, python-igraph, pandas, seaborn, scipy. The individual analyses script can then be executed by in Python (e.g. “python plot_Figure3.py”).</em></p> |
|
|
31 |
|
|
|
32 |
<p><strong>3. Content:</strong><br> |
|
|
33 |
<em>All folders are stored as compressed archives (*.tar.bz2). On unix-based system the folders can be unpacked by: "</em>tar –jxf ARCHIVE_NAME"<br> |
|
|
34 |
<br> |
|
|
35 |
<strong>3a. Time-averaged simulation results (python dictionaries stored as python 2.7 pickle files):</strong><br> |
|
|
36 |
<strong>SimulationResults_Baseline.tar.bz2:</strong><br> |
|
|
37 |
Folders: MVN1, MVN2<br> |
|
|
38 |
Content: verticesDict_baseline.pkl, edgesDict_baseline.pkl, pathsDict_allPaths_from_DA_to_AV_mainBranch.pkl (<em>generated from prepare_Figure4.py</em>), data_spatial_distribution_AVfactor.pkl (<em>generated from plot_Figure4.py</em>)</p> |
|
|
39 |
|
|
|
40 |
<p><strong>SimulationResults_SingleCapillaryOcclusions.tar.bz2:</strong><br> |
|
|
41 |
Folders: 1-in-1-out, 1-in-2-out, 2-in-1-out, 2-in-2-out, 2-in-2-out_high, 2-in-2-out_AL1, 2-in-2-out_AL2, 2-in-2-out_AL3, 2-in-2-out_AL4, 2-in-2-out_AL5, 2-in-2-out_closeToDA, 2-in-2-out_farFromDA<br> |
|
|
42 |
Content: verticesDict_baseline.pkl, edgesDict_baseline.pkl, pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl (<em>only folders:</em> 1-in-1-out, 1-in-2-out, 2-in-1-out, 2-in-2-out)</p> |
|
|
43 |
|
|
|
44 |
<p><strong>SimulationResults_MultiCapillaryOcclusions.tar.bz2:</strong><br> |
|
|
45 |
Folders: vesselsOccluded_1, vesselsOccluded_3, vesselsOccluded_5, vesselsOccluded_7, vesselsOccluded_9<br> |
|
|
46 |
Content: verticesDict_baseline.pkl, edgesDict_baseline.pkl, pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl</p> |
|
|
47 |
|
|
|
48 |
<p><strong>3b. Analysis scripts (python 2.7 scripts in folder Analyses_Scripts):</strong><br> |
|
|
49 |
<em>For details on the figure content see [1]. The verticesDict* and the edgesDict* are converted into graph structure (python-igraph) for all analyses. The functionality of python-igraph is used heavily throughout the various analyses.</em></p> |
|
|
50 |
|
|
|
51 |
<p><strong>helperFunctions.py</strong>: various functions used by the other analysis scripts</p> |
|
|
52 |
|
|
|
53 |
<p><strong>plot_Figure1_and_Figure1-supplement_1_a-d.py:</strong><br> |
|
|
54 |
<strong>Input:</strong> SimulationResults_Baseline/MVN1/edgesDict_baseline.pkl, SimulationResults_Baseline/MVN1/verticesDict_baseline.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-2-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-2-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-1-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-1-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-2-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-2-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-1-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-1-out/verticesDict.pkl<br> |
|
|
55 |
<strong>Output:</strong> Figures/Figure_1/*, Supplementary_Figures/Figure_1-supplement_1_a-d/*</p> |
|
|
56 |
|
|
|
57 |
<p><strong>plot_Figure2_and_Figure2_supplement_1_a-d.py:<br> |
|
|
58 |
Input:</strong> SimulationResults_Baseline/MVN1/edgesDict_baseline.pkl, SimulationResults_Baseline/MVN1/verticesDict_baseline.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-2-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-2-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-1-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-1-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-2-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-2-out/verticesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-1-out/edgesDict.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-1-out/verticesDict.pkl<br> |
|
|
59 |
<strong>Output:</strong> Figures/Figure_2/*, Supplementary_Figures/Figure_2-supplement_1_a-d/*</p> |
|
|
60 |
|
|
|
61 |
<p><strong>plot_Figure3.py:<br> |
|
|
62 |
Input:</strong> SimulationResults_Baseline/MVN1/edgesDict_baseline.pkl, SimulationResults_Baseline/MVN1/verticesDict_baseline.pkl, SimulationResults_MultiCapillaryOcclusion/*/edgesDict.pkl, SimulationResults_MultiCapillaryOcclusion/*/verticesDict.pkl <br> |
|
|
63 |
<strong>Output</strong>: Figures/Figure_3/*</p> |
|
|
64 |
|
|
|
65 |
<p><strong>prepare_Figure4.py </strong>(<em>long execution time!):</em><br> |
|
|
66 |
<strong>Input:</strong> SimulationResults_Baseline/MVN*/edgesDict_baseline.pkl, SimulationResults_Baseline/MVN*/verticesDict_baseline.pkl,<br> |
|
|
67 |
<strong>Output:</strong> SimulationResults_Baseline/MVN*/pathsDict_allPaths_from_DA_to_AV_mainBranch.pkl</p> |
|
|
68 |
|
|
|
69 |
<p><strong>plot_Figure4.py </strong>(<em>long execution time!):</em><br> |
|
|
70 |
<strong>Input:</strong> SimulationResults_Baseline/MVN*/*<br> |
|
|
71 |
<strong>Output:</strong> SimulationResults_Baseline/MVN*/edgesDict_baseline.pkl (attribute Lfactor_median added), SimulationResults_Baseline/MVN*/data_spatial_distribution_AVfactor.pkl, Figures/Figure_4/*</p> |
|
|
72 |
|
|
|
73 |
<p><strong>plot_Figure5.py:</strong><br> |
|
|
74 |
<strong>Input:</strong> SimulationResults_Baseline/MVN*/* <br> |
|
|
75 |
<strong>Output:</strong> Figures/Figure_5/*</p> |
|
|
76 |
|
|
|
77 |
<p><strong>plot_Figure6.py:</strong><br> |
|
|
78 |
Input: SimulationResults_Baseline/MVN1/*, SimulationResults_SingleCapillaryOcclusion/2-in-2- out/pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl, SimulationResults_SingleCapillaryOcclusion/2-in-1- out/pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-2- out/pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl, SimulationResults_SingleCapillaryOcclusion/1-in-1- out/pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased.pkl Output: Figures/Figure_6/*</p> |
|
|
79 |
|
|
|
80 |
<p><strong>4. Attributes stored in python dictionaries:</strong><br> |
|
|
81 |
<br> |
|
|
82 |
<strong>4a. Baseline:</strong><br> |
|
|
83 |
<strong>verticesDict: </strong><em>contains all relevant information and data stored at vertices.</em></p> |
|
|
84 |
|
|
|
85 |
<ul> |
|
|
86 |
<li>index: index of vertex</li> |
|
|
87 |
<li>pressure: time averaged pressure at vertex [mmHg]</li> |
|
|
88 |
<li>inflowE: list of edges delivering blood to the vertex (inflows of the vertex)</li> |
|
|
89 |
<li>outflowE: list of edges removing blood from the vertex (outflows of the vertex)</li> |
|
|
90 |
<li>coords: coordinates of the vertex [µm]</li> |
|
|
91 |
<li>pBC: pressure boundary conditions [mmHg], None for internal vertices</li> |
|
|
92 |
<li>corticalDepth: depth from cortical surface [µm]</li> |
|
|
93 |
<li>nkind: identifier for the vessel type. 0: pial artery, 1: pial vein, 2: descending arteriole, 3: ascending vein, 4: capillary</li> |
|
|
94 |
</ul> |
|
|
95 |
|
|
|
96 |
<p><strong>edgesDict:</strong> <em>contains all relevant information and data stored at edges.</em></p> |
|
|
97 |
|
|
|
98 |
<ul> |
|
|
99 |
<li>diameter: effective vessel diameter [µm]. See [3] for details.</li> |
|
|
100 |
<li>htd: time averaged discharge hematocrit [-]. </li> |
|
|
101 |
<li>connectivity: tuple of vertex indices which are connected by the edge.</li> |
|
|
102 |
<li>mainAV: identifier for ascending venule (AV) main brain. 1: is AV main brain, 0: no AV main branch</li> |
|
|
103 |
<li>mainDA: identifier for descending arteriole (DA) main brain. 1: is DA main brain, 0: no DA main branch</li> |
|
|
104 |
<li>flow: time averaged flow rate [µm<sup>3</sup> ms<sup>-1</sup>]</li> |
|
|
105 |
<li>length: tortuous vessel length [µm] See [1] and [3] for details.</li> |
|
|
106 |
<li>tissueVolume: topological tissue volume supplied by vessel [µm<sup>3</sup>]. See [1] for details.</li> |
|
|
107 |
<li>nkind: identifier for the vessel type. 0: pial artery, 1: pial vein, 2: descending arteriole, 3: ascending vein, 4: capillary</li> |
|
|
108 |
<li>edgesFulfillingSelection: identifier if vessels fulfils selection criteria to qualify for analysis. 1: vessel included for analysis, 0: vessel not included for analysis. Details on the selection criteria are provided in [1].</li> |
|
|
109 |
<li>htt: time averaged tube hematocrit [-]</li> |
|
|
110 |
<li>RBCflux: time averaged RBC flux [RBC/s] computed from the discharge hematocrit and the flow rate.</li> |
|
|
111 |
<li>sign: sign describing the flow direction in the vessel. +: flow direction from source (vertex with lower index) to target (vertex with higher index), -: flow direction from target to source vertex. Based on time averaged pressure values.</li> |
|
|
112 |
<li>points: list of tortuous vessel coordinates of the edge [µm]. Starting at the source vertex. Ending at the target vertex.</li> |
|
|
113 |
<li>Lfactor_median: AV-factor of the vessel. None if no AV-factor can be assigned. See [1] for details. Attribute added by plot_Figure4.py</li> |
|
|
114 |
</ul> |
|
|
115 |
|
|
|
116 |
<p><strong>pathsDict_allPaths_from_DA_to_AV_mainBranch: </strong><em>contains all flow path from DA main brain to AV main branch. For details see [1]</em>.</p> |
|
|
117 |
|
|
|
118 |
<ul> |
|
|
119 |
<li>startPoint: list of vertex indices of the end point of the DA</li> |
|
|
120 |
<li>endPoint: list of vertex indices of the end point of the AV</li> |
|
|
121 |
<li>allPaths: list of lists of vertex indices describing all paths between a the associated startPoint and endPoint.</li> |
|
|
122 |
</ul> |
|
|
123 |
|
|
|
124 |
<p><strong>data_spatial_distribution_AVfactor:</strong> <em>contains information on the spatial distribution of venule-sided capillaries (AV-factor > 0.5). For details see [1].</em></p> |
|
|
125 |
|
|
|
126 |
<ul> |
|
|
127 |
<li>edges_L_mean_50um: list of all edges for which the average AV-factor in an analysis sphere of 50 µm has been computed.</li> |
|
|
128 |
<li>resulting_L_mean_50um: average AV-factor for an analysis sphere for 50 µm (see Figure4/AV_factor_delta_analysisSphere50_MVN*.pkl)</li> |
|
|
129 |
<li>shortest_distance_to_closest_vessel: list of shortest distances to any vessel for all discretization points along all venule sided capillaries.</li> |
|
|
130 |
<li>shortest_distance_to_Lfactor_lt_05: list of shortest distances to an arteriole-sided capillary (AV-factor < 0.5) for all discretization points along all venule sided capillaries.</li> |
|
|
131 |
</ul> |
|
|
132 |
|
|
|
133 |
<p><strong>4b. Occlusion scenarios (both single- and multi-capillary occlusions):</strong></p> |
|
|
134 |
|
|
|
135 |
<p><strong>verticesDict:</strong></p> |
|
|
136 |
|
|
|
137 |
<ul> |
|
|
138 |
<li>index: index of vertex</li> |
|
|
139 |
<li>coords: coordinates of the vertex [µm]</li> |
|
|
140 |
<li>pressure_strokeIndex_n: time averaged pressure at vertex [mmHg] for the simulation where edge n has been occluded. For details see [1].</li> |
|
|
141 |
</ul> |
|
|
142 |
|
|
|
143 |
<p><strong>edgesDict:</strong></p> |
|
|
144 |
|
|
|
145 |
<ul> |
|
|
146 |
<li>htd_strokeIndex_n: time averaged discharge hematocrit [-] for the simulation where edge n has been occluded. For details see [1]. </li> |
|
|
147 |
<li>flow: time averaged flow rate [µm<sup>3</sup> ms<sup>-1</sup>] for the simulation where edge n has been occluded. For details see [1].</li> |
|
|
148 |
<li>RBCflux: time averaged RBC flux [RBC/s] computed from the discharge hematocrit and the flow rate for the simulation where edge n has been occluded. For details see [1].</li> |
|
|
149 |
<li>htt: time averaged tube hematocrit [-] for the simulation where edge n has been occluded. For details see [1].</li> |
|
|
150 |
<li>connectivity: tuple of vertex indices which are connected by the edge.</li> |
|
|
151 |
<li>diameter_strokeIndex_n: effective vessel diameter [µm] for the simulation where edge n has been occluded (only given for multi-capillary occlusions).</li> |
|
|
152 |
</ul> |
|
|
153 |
|
|
|
154 |
<p><strong>pathsDict_allPaths_from_DA_to_AV_mainBranch_vertexBased:</strong> <em>contains all flow path from DA main brain to AV main branch (unique vertex sequences). For details see helperFunctions.py --></em><em> function convert_pathsDict_to_unique_vertexSequence.</em></p> |
|
|
155 |
|
|
|
156 |
<ul> |
|
|
157 |
<li>startPoint_strokeIndex_n: list of vertex indices of the end point of the DA for the simulation where edge n has been occluded.</li> |
|
|
158 |
<li>endpoint_strokeIndex_n: list of vertex indices of the end point of the AV for the simulation where edge n has been occluded.</li> |
|
|
159 |
<li>allPaths_strokeIndex_n: list of lists of vertex indices describing all paths between a the associated startPoint and endpoint for the simulation where edge n has been occluded.</li> |
|
|
160 |
</ul> |
|
|
161 |
</div> |
|
|
162 |
</section> |