Zeffiro Forward and Inverse Interface for Complex Geometries
Zeffiro Interface
© 2018- Sampsa Pursiainen & ZI Development Team
Introduction
Zeffiro Interface (ZI) is an open source code package constituting an accessible tool for multidisciplinary finite element (FE) based forward and inverse simulations in complex geometries. Developed for MATLAB, ZI aims to streamline the process of analyzing brain activity and make it accessible to researchers and clinicians alike. With ZI, one can generate a volumetric finite element mesh for a realistic multilayer geometry, such as human brain or an asteroid.
A suitable surface segmentation can be produced, for example, using the FreeSurfer software suite ( Copyright © FreeSurfer, 2013). ZI allows importing a parcellation created with FreeSurfer to enable distinguishing different brain regions and, thereby, analysing the sub-cortical structures and connectivity of the brain function over a time series. In each compartment, the orientation of the activity can be either normally constrained or unconstrained. The main routines of ZI can be accelerated significantly in a computer equipped with a graphics computing unit (GPU). It is especially recommendable to perform the forward simulation process, i.e., to generate the finite element mesh, the lead field matrix and to interpolate between different point sets, utilizing a GPU. After the forward simulation phase, the model can be processed also without GPU acceleration.
Requirements
- MATLAB >= r2019a
- Toolboxes
- Signal Processing Toolbox
- Optimization toolbox
- Parallel Computing Toolbox
- Statistics and Machine Learning Toolbox
- GPU (optional)
Installation
Zeffiro Interface relies on the external repositories, such as SDPT3, SeDuMi and others, that will
be fetched automatically when cloning with --recurse-submodules
. See the installation wiki page
for instructions on how to install Zeffiro Interface.
Getting Started
To start ZI, open Matlab, navigate to the project directory and run the following command:
zeffiro_interface()
To learn more about startup options, run one of the following commands in Matlab:
help zeffiro_interface
% or
doc zeffiro_interface
Read the wiki pages for more information.
Contributing
See CONTRIBUTING.md for details on how to contribute to the project.
License
Zeffiro Interface is licensed under the GNU GPLv3. See the LICENSE file for details.
Submodules from external directory are licensed as follows:
- CVX: GNU GPLv3
- fieldtrip: GNU GPLv3
- OSQP: Apache v2.0
- SDPT3: GNU GPLv2
- SeDuMi: GNU GPLv2
- SESAME: unknown
- spm12: GNU GPLv2
Related papers
The interface itself has been introduced in:
- He, Q., Rezaei, A. & Pursiainen, S. (2019). Zeffiro User Interface for Electromagnetic Brain Imaging: a GPU Accelerated FEM Tool for Forward and Inverse Computations in Matlab. Neuroinformatics, https://doi.org/10.1007/s12021-019-09436-9
Recent papers:
-
Galaz Prieto, F., Rezaei, A., Samavaki, M., & Pursiainen, S. (2022). L1-norm vs. L2-norm fitting in optimizing focal multi-channel tES stimulation: linear and semidefinite programming vs. weighted least squares. Computer Methods and Programs in Biomedicine, 226, 107084, https://doi.org/10.1016/j.cmpb.2022.107084
-
Lahtinen, J., Koulouri, A., Rezaei, A., & Pursiainen, S. (2022). Conditionally Exponential Prior in Focal Near-and Far-Field EEG Source Localization via Randomized Multiresolution Scanning ( RAMUS). Journal of Mathematical Imaging and Vision, 1-22. https://doi.org/10.1007/s10851-022-01081-3
-
Rezaei, A., Lahtinen, J., Neugebauer, F., Antonakakis, M., Piastra, M. C., Koulouri, A., Wolters, C. H., & Pursiainen, S. (2021). Reconstructing subcortical and cortical somatosensory activity via the RAMUS inverse source analysis technique using median nerve SEP data. NeuroImage, 245, 118726. https://doi.org/10.1016/j.neuroimage.2021.118726
-
Rezaei, A., Koulouri, A., & Pursiainen, S. (2020). Randomized multiresolution scanning in focal and fast E/MEG sensing of brain activity with a variable depth. Brain Topography, 33(2), 161-175. https://doi.org/10.1007/s10548-020-00755-8
The essential mathematical techniques used in the interface have been reviewed and validated in:
-
Miinalainen, T., Rezaei, A., Us, D., Nüßing, A., Engwer, C., Wolters, C. H., & Pursiainen, S. ( 2019). A realistic, accurate and fast source modeling approach for the EEG forward problem. NeuroImage, 184, 56-67. https://doi.org/10.1016/j.neuroimage.2018.08.054
-
Pursiainen, S. (2012). Raviart–Thomas-type sources adapted to applied EEG and MEG: implementation and results. Inverse Problems, 28(6), 065013. https://doi.org/10.1088/0266-5611/28/6/065013
The IAS MAP (iterative alternating sequential maximum a posteriori) inversion method and the hierarchical Bayesian sampler are based on:
- Calvetti, D., Hakula, H., Pursiainen, S., & Somersalo, E. (2009). Conditionally Gaussian hypermodels for cerebral source localization. SIAM Journal on Imaging Sciences, 2(3), 879-909. https://doi.org/10.1137/080723995
It has been applied for a realistic brain geometry, e.g., in:
- Lucka, F., Pursiainen, S., Burger, M., & Wolters, C. H. (2012). Hierarchical Bayesian inference for the EEG inverse problem using realistic FE head models: depth localization and source separation for focal primary currents. Neuroimage, 61(4), 1364-1382. https://doi.org/10.1016/j.neuroimage.2012.04.017
The current preserving source model combines linear (face-intersecting) and quadratic (edgewise) elements via the Position Based Optimization (PBO) method and the 10-source stencil in which 4 face sources and 6 edge sources are applied for each tetrahedral element containing a source:
-
Bauer, M., Pursiainen, S., Vorwerk, J., Köstler, H., & Wolters, C. H. (2015). Comparison study for Whitney (Raviart–Thomas)-type source models in finite-element-method-based EEG forward modeling. IEEE Transactions on Biomedical Engineering, 62(11), 2648-2656. https://doi.org/10.1109/TBME.2015.2439282
-
Pursiainen, S., Vorwerk, J., & Wolters, C. H. (2016). Electroencephalography (EEG) forward modeling via H (div) finite element sources with focal interpolation. Physics in Medicine & Biology, 61(24), 8502. https://doi.org/10.1088/0031-9155/61/24/8502
Zeffiro Interface is not intended for use in clinical applications. The authors do not assume responsibility for the results obtained with ZI when using clinical data.
Cita come
Sampsa Pursiainen (2024). Zeffiro Forward and Inverse Interface for Complex Geometries (https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.19.1), GitHub. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxCategorie
- Sciences > Neuroscience > Human Brain Mapping > EEG/MEG/ECoG >
- Sciences > Neuroscience > Human Brain Mapping > MRI >
- Sciences > Neuroscience > Human Brain Mapping > Multimodal >
- Engineering > Biomedical Engineering > Biomedical Signal Processing >
Tag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.
+core
+core/+gui/+menu_tool
+core/+import
+core/+preconditioners
+examples
+examples/+studies/+decision_making
+examples/+studies/+santtus_peeling_article
+examples/+studies/+tES_hyperparameter_optimization
+tests
+utilities
+utilities/+brainstorm2zef
+utilities/+cluster
+utilities/+duneuro2zef
+utilities/+fs2zef
data/segmentations/multicompartment_head_project
m
m/auxiliary
m/auxiliary/analysisScripts
m/auxiliary/mesh_averaging
m/auxiliary/mri
m/auxiliary/plotting
m/auxiliary_scripts
m/barycentric
m/constants
m/forward_simulation
m/forward_simulation/lead_field
m/forward_simulation/nse
m/forward_simulation/wave
m/import
m/inverse
m/mesh
m/operators
m/visualization/graph_bank
m/visualization/time_series_tools
mlapp
plugins/Beamformer
plugins/ClassicalSparseMethods
plugins/CreateDipolarPair/m
plugins/DBS_tool
plugins/DipoleScan/m
plugins/DynamicalPlotQueue/m
plugins/DynamicalPlotQueue/m/dynamical_plot_queue_bank
plugins/EITSensitivityTool/m
plugins/EXP/common
plugins/EXP/exp_em/m
plugins/EXP/exp_em_multires/m
plugins/EXP/exp_ias/m
plugins/EXP/exp_ias_multires/m
plugins/FindSyntheticGravityData/m
plugins/FindSyntheticSource/m
plugins/FindSyntheticSourceLegacy
plugins/GMMClustering
plugins/GMMClustering/v2/m
plugins/GMModel
plugins/GithubPusher/m
plugins/HBSampler/m
plugins/IASInversion/m
plugins/IASROIInversion/m
plugins/Kalman/Scripts
plugins/Kalman/clusterScripts
plugins/Kalman/m
plugins/LFBankTool/m
plugins/LFBankTool/m/lead_field_normalization_functions
plugins/LeadFieldProcessingTool
plugins/LeadFieldProcessingTool/m
plugins/MNETool/m
plugins/MUSIC
plugins/NSE_tool/m
plugins/PlotMeshesProto
plugins/RAMUSInversion/m
plugins/RAMUSSampler/m
plugins/RAP-MUSIC
plugins/ReconstructionTool
plugins/ReconstructionTool/m
plugins/ReconstructionTool/m/apply_functions
plugins/SESAME/m
plugins/WireframeTool/m
plugins/ZeffiroESWorkbench/m
plugins/ZeffiroFilterTool/m
plugins/ZeffiroFilterTool/m/filter_bank
plugins/ZeffiroTopography/m
plugins/dataBank
plugins/dataBank/m
plugins/preconditioned_relaxation_tool/m
Le versioni che utilizzano il ramo predefinito di GitHub non possono essere scaricate
Versione | Pubblicato | Note della release | |
---|---|---|---|
5.19.1.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.19.1 |
||
5.18.2.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.18.2 |
||
5.17.1.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.17.1 |
||
5.16.1.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.16.1 |
||
5.15.2.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.15.2 |
||
5.14.7 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.7 |
||
5.14.6 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.6 |
||
5.14.5 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.5 |
||
5.14.4.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.4 |
||
5.14.3 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.3 |
||
5.14.2 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.2 |
||
5.14.1 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.14.1 |
||
5.13 | - |
|
|
5.12.0.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.12 |
||
5.11.3 | - |
|
|
5.11.2 | - |
|
|
5.11.1 | - |
|
|
5.11.0.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.11 |
||
5.10.0.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.10 |
||
5.9.0.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.09 |
||
5.8.0.0 | See release notes for this release on GitHub: https://github.com/sampsapursiainen/zeffiro_interface/releases/tag/5.08 |
||
5.1.1 | April 2022 |
|
|
5.1.0 | Regular update. |
|
|
2.2.12 | Topography plot. |
|
|
2.2.11 | Description |
|
|
2.2.10 | Description. Filter tool. |
|
|
2.2.9 | Butterfly plot. |
|
|
2.2.8 | Corrections. |
|
|
2.2.7 | Corrections and a template for a 1 mm project added. |
|
|
2.2.6 | Minor fix of the startup script. |
|
|
2.2.5 | Segmentation import example for ASC (FreeSurfer) and DAT files added, import utility corrected. |
|
|
2.2.4 | Description. |
|
|
2.2.3 | Description. |
|
|
2.2.2 | Folder import utility for ASCII segmentation (DAT and ASC). |
|
|
2.2.1 | Description. |
|
|
2.2.0 | More compartments, Time series generator for connectivity analysis |
|
|
2.1.1 | Parcellation tool. |
|
|
2.1.0 | 18-compartments, options to merge and invert meshes, when importing. |
|
|
2.0.6 | Missing plugin file added. |
|
|
2.0.5 | Flash-free time-lapses for r2018b and above. |
|
|
2.0.4 | Plugin utility added. |
|
|
2.0.3 | Bugs fixed. |
|
|
2.0.2 | Window configuration |
|
|
2.0.1 | Bugs fixed |
|
|
2.0 | New main window configuration. |
|
|
1.0.12 | New menus |
|
|
1.0.11 | Description and 3D plots. |
|
|
1.0.10 | Bugs corrected. |
|
|
1.0.9 | Corrected plot mesh routine. |
|
|
1.0.8 | Description |
|
|
1.0.7 | EIT and multiresolution solvers |
|
|
1.0.6 | Description |
|
|
1.0.5 | Gradiometer solver for MEG + EIT solver |
|
|
1.0.4 | Complete Electrode Model |
|
|
1.0.3 | More inverse tools. |
|
|
1.0.2 | Inverse tools update. |
|
|
1.0.1 | New inverse tools added. |
|
|
1.0.0 |
|