Realistic head model: FEM with Duneuro

[TUTORIAL UNDER DEVELOPMENT: NOT READY FOR PUBLIC USE]

Authors: Takfarinas, Juan, ..., Sophie, Maria, Christian, Carsten, John, Richard ?

This tutorial explains how to use brainstorm-dueneuro to compute the head model using the finite element method, implemented in the Duneuro software.

This forward model uses a finite element element method (FEM) implemented within the Duneuro software. More documentation could be found on this gitlab page.

The FEM methods use the realistic volume mesh of the head model genertaed from the segmentation of the magnetic reasonance images (MRI). The goal of the forward solution is, mostly for EEG users (and for sEEG/ECOG), to provide more accurate results than the spherical models and more realistic geometry than the BEM.

In this tutorial we will describe the software requirement to use the DUNEuro computation from brainstrom and examples on the FEM computation through the graphical interface.

Duneuro

DUNEuro is an open-source C++ software library for solving partial differential equations (PDE) in neurosciences using mesh bases methods. It is based on the DUNE library and its main features that include solving the electroencephalography (EEG) and magnetoencephalography (MEG) forward problem and providing simulations for brain stimulation.

height="230",width="500"

Requirements

FEM Computation

DUNEuro is build on top of DUNE Library, at this time (September 2019) the source code works only on Linux operating systems. However we are able to generate the binaries for the main platforms (windows 64, Linux and Mac), therefor it can be easily used from Matlab for all platforms without the need to install and compile the tidiuos CPP library of DUNE and DUNEuro.

We distribute the binary files for Windows, MAC and Ubunto 64bit systems, you don't need to installan extra Microsoft software package to run DUNEuro.

Advanced

If you want to use the source code of Duneuro you can visite: http://duneuro.org/

We have also develloped an alternative way to install and generates the binaries for the main platforms. For the advanced user users, the main steps you need in order to compile for windows are listed here : https://github.com/brainstorm-tools/bst-duneuro

FEM Mesh generation & visualisation

The FEM mesh visualisation and some mesh processing requires the installation of the iso2mesh toolbox (link). If you want to work on offline, you can download it and add it to your matlab path. If it's not installed, Brainstrom will download and istall this toolbox when it needed.

Advanced

FEM surfaces / Volume generation

SIMNIBS

https://simnibs.github.io/simnibs/build/html/index.html

SimNIBS Installation

Please follow the instructions on this webapge:

https://simnibs.github.io/simnibs/build/html/installation/simnibs_installer.html

Volume mesh generation from Brainstorm

To generate the volume mesh head model we use the "headreco" :

https://simnibs.github.io/simnibs/build/html/documentation/command_line/headreco.html

This function is part of the SimNibs software:

https://simnibs.github.io/simnibs/build/html/index.html

headreco

The headreco function is fully integrated to brainstorm. With this option, brainstorm can reconstructs a tetrahedral head mesh from T1- and T2-weighted structural MR images. It runs also with only a T1w image, but it will achieve more reliable skull segmentations when a T2w image is supplied.

Surface mesh generation from volume mesh

Volume generation from surface files

In this part you can generate your FEM mesh from surfaces that you can get fron the segmentation software (brainSuite, FreeSurfer ....).

This process will

- merge the surfaces,

- check the self intersecting

- fixe the size of the mesh

- generate the volum mesh

- visual checking ...

- TODO : may be we can add some mesh auqlity measures ??

Advanced

Volume generation from T1/T2 MRI data

You can also generate your own FEM head model and then load it to brainstorm. However the automatic head model generation from from imaging techniques are not accurate and most of the time visual checking are needed and manual correction are required.

==> this depends lagely on the quality of the T1/T2 MRI image(https://simnibs.github.io/simnibs/build/html/tutorial/head_meshing.html).

This step is based on the "roast" toolbox (link to roast : https://github.com/andypotatohy/roast

) that we adapted for the MEEG forward computation. If you want to generate your own FEM head model from an MRI, you will need to download these file (link), then run the bst process as explained here.

FEM Head model generation with SimNibs

This method used the SimNibs software. So to call this process, you need to download and install the SimNibs software, the process of the installation is explained in the SimNibs webpage : https://simnibs.github.io/simnibs/build/html/installation/simnibs_installer.html.

When you have installed SimNibs, Brainstorm can call the main function used for the mesh generation frm the main graphical interface. Depemding on your computer performances, this process will take between 2 to 5 hours. We highly recommend to close all other running process and application on our computer in order to speed this process.

- Explain here the main steps with screenshots :

1- Create new subject within the current protocole

2- Load the T1 of the subject to the brainstorm database.

3- Associate a T2 mri to the subject if it's available (this is better for csf/skull/scalp segmentation)

4- Right click on the subject, select the "Generate FEM mesh"

5- When this process is finished, a new node will appear in the data base, which hase he name "FEM xxxV, (simNibs, yLayers)". This is the FEM mesh model generated from the T1.

FEM Head model template

- Load the FEM volumic mesh (template created from ICBM T1 MRI using SimNibs)

- Load the surface mesh (template created also from ICBM using ICBM ) and then generates the volume mesh (either tetra or hexa) by calling the tetgen process cia iso2mesh toolbox (if hexa are desired, the tetra mesh will be converted to hexa ... )

https://github.com/brainstorm-tools/brainstorm3/issues/185#issuecomment-576749612

Head model based on the level set approach

TODO and Validate

if users want to use freesurfer and simnibs, the priority is given to freesurfer, then load the fs files, then call simnibs headmodel generation from t1/t2.

FEM computation and interface to DUNEuro

Head model

Number of layers, conductivity value, isotropy/anisotropy/ mesh resolution/

Electrode model

Check the position of the electrodes and align to the head model (projection if needed)

Source model

Similarly to the spherical nad BEM head model, the source position are defined on the cortex surface vertices. We can either define a contraned or not constrained orientation.

However, for the FEM model, more paramters could be tuned for the source model.

Choice of the source model : PI, Venant, Subtraction, Whitney

Panel of the options choice that the user can select. (other wise we will set to default )

Advanced

Advanced paramaters

- Solver parameters

- Electrodes projection

- maybe explain here the relevant option of the mini file ??

Additional documentation

refer to :

http://duneuro.org/

https://www.dune-project.org/

https://simnibs.github.io/simnibs/build/html/index.html

Reported Errors & alternative solution

Advanced

simnibs pblm :

https://simnibs.github.io/simnibs/build/html/installation/throubleshooting.html

The MEEG forward problem with the FEM

License

Reference

Tutorials/Duneuro (last edited 2020-02-10 23:10:38 by TakfarinasMedani)