├── LICENSE ├── README.md └── docs ├── figure-1.1-processing-pipeline.png ├── figure-2-comparison-meshing-2000px.png ├── figure-2b-mesh-defects.png ├── figure-3-cut-types-red.png └── logos ├── aneux_logo.png └── logos_combined.png /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Digital Health Group 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | Mesh processing pipeline 9 |
10 | 11 | # AneuX morphology database 12 | 13 | An open-access, multi-centric database containing 3D geometric models of 750 intracranial aneurysms curated in the context of the AneuX project (2015-2020). The database combines data from three different projects (**AneuX**, **@neurIST** and **Aneurisk**) standardized using a single processing pipeline. 14 | 15 | The aneuxdb repository offers code to process, manipulate and view the 3D geometries for their morphological analysis. 16 | 17 |
18 | 19 | ``` 20 | NOTE: Code publication in progress 21 | Please be patient :) 22 | ``` 23 | 24 |
25 | 26 | ## At a glance 27 | 28 | 29 | ### Dataset summary: 30 | 31 | * 750 aneurysm domes (surface meshes) 32 | * 668 vessel trees (surface meshes) 33 | * 3 different data sources (AneuX, @neurIST, Aneurisk) 34 | * 3 different mesh resolutions (original resolution, 0.01mm² and 0.05mm² target cell area) 35 | * 4 different cut configurations (including planar and free-form cuts) 36 | * 5 clinical parameters (aneurysm rupture status, location and side; patient age and sex) 37 | * 170 pre-computed morphometric indices for each of the aneurysm domes 38 | 39 | ### Software summary: 40 | 41 | * GMTK: A geometric modeling toolkit to compute morphometric parameters, and more 42 | * Scripts implementing the processing pipeline 43 | * File viewer system (intuitive, lightweight, extensible, distributable) 44 | * Code based mostly on Python, [VTK](https://vtk.org/) and [VMTK](http://www.vmtk.org/) 45 | 46 | 47 | 48 | ## About 49 | 50 | * **Authors**: Norman Juchler¹, Philippe Bijlenga², Sven Hirsch¹ 51 | * **Affiliations**: 52 | ¹ [Center of Computational Health](https://www.zhaw.ch/en/lsfm/institutes-centres/icls/computational-health/), Zurich University of Applied Sciences, Switzerland 53 | ² [Neurosurgery Division](https://www.hug.ch/en/neurosurgery), Geneva University Hospital and Faculty of Medicine, Switzerland 54 | * **Licenses**: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) (dataset), [MIT](https://github.com/hirsch-lab/aneuxdb/blob/main/LICENSE) (code) 55 | * **Article citation**: Juchler, Schilling, Bijlenga, Kurtcuoglu, Hirsch. *"Shape trumps size: Image-based morphological analysis reveals that the 3D shape discriminates intracranial aneurysm disease status better than aneurysm size"*, Frontiers in Neurology (2022), [DOI: 10.3389/fneur.2022.809391](https://doi.org/10.3389/fneur.2022.809391). 56 | * **Dataset citation**: Juchler, Bijlenga, Hirsch, *"AneuX morphology database"*, Zenodo, [DOI: 10.5281/zenodo.6678442](https://doi.org/10.5281/zenodo.6678442) 57 | 58 | 59 | 60 | ## Dataset 61 | 62 | The AneuX morphology database includes data from 3 different data sources: AneuX, @neurIST and Aneurisk. The AneuX data consists of two portions AneuX1 and AneuX2, which have extracted by two different teams of data curators. 63 | 64 | The datasets differ in the exact case selection, but represent a very similar patient cohort (patients examined or treated for ruptured or unruptured aneurysms at the 65 | 66 | The dataset consists of totally 750 aneurysm domes. The geometries were all extracted from 3D rotational angiographies using different vessel lumen segmentation techniques. 67 | 68 |
69 | 70 | | | AneuX1 | AneuX2 | @neurIST | Aneurisk | *Overall* | 71 | |:--- |:---- |:---- |:-------- |:-------- |:------- | 72 | | Number of patients | 247 | 110 |151 |97 | ***605*** 73 | | Sex | F: 197 (77%)
M: 57 (33%) | F: 81 (74%)
M: 29 (26%) | F: 109 (67%)
M: 42 (33%) | F: 61 (63%)
M: 36 (37%) | ***F: 445 (73%)
M: 164 (27%)*** 74 | | Patient age in years
(mean±SD) | F: 56.4±14.0
M: 54.3±13.8 | F: 54.4±12.7
M: 50.6±12.2 | F: 53.4±12.2
M: 49.8±10.6 | F: 53.6±15.2
M: 55.5±10.8 | ***F: 55.0±13.6
M: 52.8±12.2*** 75 | | Number of IAs | 350 | 135 | 164 | 101 | ***750*** 76 | Ruptured / unruptured | R: 87 (25%)
U: 263 (75%) | R: 41 (30%)
U: 79 (59%) | R: 89 (54%)
U: 75 (46%) | R: 44 (44%)
U: 57 (56%) | ***R: 261 (35%)
U: 474 (65%)*** 77 | 78 | **Table 1**: Summary of the different sub-datasets. 79 | 80 |
81 | 82 | ## Processing 83 | 84 | The processing consists of the following main steps (Figure 1): mesh cleaning (re-meshing and smoothing), aneurysm isolation (cutting) and shape description (morphometry). The extraction of the vessel geometries (vessel lumen segmentation) is not further explained here, as the AneuX morphology database does not contain medical imaging data. 85 | 86 |
87 | 88 | 93 | 94 | 97 |
98 | Mesh processing pipeline 103 |
Figure 1: Mesh processing pipeline
104 |
105 | 106 | 116 | 117 |

118 | 119 | **Mesh cleaning:** Many operations on surface meshes are highly sensitive to mesh defects, such as small holes, singular/non-manifold edges or vertices, incoherently oriented mesh cells, isolated or intersecting elements [1]. Re-meshing the input surfaces with an appropriate target cell area can solve many of these problems. Smoothing equally has a sanitizing, homogenizing effect on the surface meshes, see Figure 2. 120 | 121 | Therefore, it is recommended to clean the input surface meshes. The processing scripts rely on VMTK's surface re-meshing tool ([link](http://www.vmtk.org/vmtkscripts/vmtksurfaceremeshing.html)), with target cell area of 0.05mm² or 0.01mm². For smoothing, non-shrinking Taubin smoothing is used, implemented in VTK ([link](https://vtk.org/doc/nightly/html/classvtkWindowedSincPolyDataFilter.html)). Note that Taubin's method is a "topological" smoother that disregards spatial proximity. Consequently, smoothing meshes with different resolutions and fixed smoothing parameters will produce different results. In order to achieve similar spatial smoothing for differently resolved surface meshes, the parameters were adjusted based on a heuristic relationship. 122 | 123 |
124 | 125 |
126 | Comparison mesh resolutions 131 |
Figure 2: Comparison of different mesh resolutions
132 |
133 | 134 |

135 | 136 | 137 | **Aneurysm isolation:** GMTK offers two cut tools to isolate the aneurysm, implemented as extensions for the GMTK FileViewer. With the *planar* method (extension: `ex:cut`), the aneurysm domes are delineated using planar cuts. The placement of cut planes is facilitated using the centerlines of the parent vessels. With the *ninja* method (extension: `ex:scissor`), the aneurysm domes are isolated using non-planar, free-form cuts. 138 | 139 | Both methods require manual input by an operator. It is recommended to clean the surface meshes of the isolated aneurysm domes once more after cutting (re-meshing, no smoothing) to remove seams or other artifacts caused by the cutting routines. 140 | 141 | Figure 3 illustrates all cut configurations relevant for the Aneux morphology database. The cut planes / seams were determined according to a set of predetermined rules. ([Link](https://doi.org/10.3389/fneur.2022.809391)) 142 | 143 |
144 | 145 |
146 | Cut configurations 151 |
Figure 3: Different cut configurations
152 |
153 | 154 |

155 | 156 | **Geometry description:** A brief description of the morphometric features computed for the AneuX morphology database is included in [Juchler 2022](https://doi.org/10.3389/fneur.2022.809391). Note that some methods are more sensitive to mesh resolution or different cutting methods than others. 157 | 158 | **Implementation:** The scripts under `code/aneuxdb/processing/` implement the above steps. Table 1 provides a summary of what these scripts do. Some of scripts require user interaction (*manual* mode), others of which do not (*automated* mode). 159 | 160 | *Note*: The provided scripts make use of the GMTK library, see ../gmtk/README.md **TODO** for the setup instructions. 161 | 162 | 163 | *Note*: The steps are not chained, that is, the output of one script is not necessarily the input of the next script. To update the AneuX morphology database with updated items, copy the result folders manually to `$ANEUX_DATA` or one of its subdirectories. 164 | 165 |
166 | 167 | | Step | Description | Mode | Input | Output | 168 | |:----|:----------- |:---- |:------|:-------| 169 | | 1. | Mesh cleaning of vessel models | Automated | Vessels | Vessels* 170 | | 2. | Extract centerlines | Manual | Vessels* | Centerlines | 171 | | 3. | Run cut-tools| Manual | Vessels*, centerlines | Cut specs | 172 | | 4. | Apply the cuts | Automated | Vessels*, cut specs | Aneurysms | 173 | | 5. | Mesh cleaning of aneurysms | Automated | Aneurysms | Aneurysms* | 174 | | 6. | Show/inspect the data | Manual | Aneurysms*, vessels | – | 175 | | 7. | Compute geometry indices | Automated | Aneurysms* | Morpho data 176 | 177 | **Table 2**: Sequence of operations to compute morphometric indices. The * indicates geometries after mesh cleaning. 178 | 179 |

180 | 181 | 182 | ## Acknowledgments 183 | 184 | We thank the following people for their support and contributions to the AneuX project, namely (in alphabetical order) 185 | 186 | 187 | * Diana Sapina 188 | * Karl Lovblad 189 | * Karl Schaller 190 | * Olivier Brina 191 | * Paolo Machi 192 | * Rafik Ouared 193 | * Sabine Schilling 194 | * Sandrine Morel 195 | * Ueli Ebnöther 196 | * Vartan Kurtucuoglu 197 | * Vitor Mendes Pereira 198 | * Zolt Kuscàr 199 | 200 | 201 | The AneuX project was supported by SystemsX.ch, and evaluated by the Swiss National Science Foundation (SNSF). This database would not be possible without the support of the Zurich University of Applied Sciences (ZHAW) and University Hospitals Geneva (HUG) 202 | 203 |
204 | 205 | Supporters of this project 210 | 211 |
212 | 213 | ## References 214 | 215 | \[1\]: Campen et al., 2012, A practical Guide to Polygon Mesh Repairing. [Link](https://www.graphics.rwth-aachen.de/publication/034/) 216 | 217 | **[TODO]**: Refs vmtk, vtk, own publications. 218 | -------------------------------------------------------------------------------- /docs/figure-1.1-processing-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/figure-1.1-processing-pipeline.png -------------------------------------------------------------------------------- /docs/figure-2-comparison-meshing-2000px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/figure-2-comparison-meshing-2000px.png -------------------------------------------------------------------------------- /docs/figure-2b-mesh-defects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/figure-2b-mesh-defects.png -------------------------------------------------------------------------------- /docs/figure-3-cut-types-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/figure-3-cut-types-red.png -------------------------------------------------------------------------------- /docs/logos/aneux_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/logos/aneux_logo.png -------------------------------------------------------------------------------- /docs/logos/logos_combined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirsch-lab/aneuxdb/a6b355e8f271e9a88399a2e432ed924d99b85d64/docs/logos/logos_combined.png --------------------------------------------------------------------------------