Realistic head model: FEM mesh generation

[TUTORIAL UNDER DEVELOPMENT: NOT READY FOR PUBLIC USE]

Authors: Takfarinas Medani

Introduction

This tutorial presents the methods integrated into Brainstorm, used to generate a FEM mesh.

The FEM mesh is required for the finite element method computation. The FEM computation could be used for most of the known modalities: EEG/MEG forward problem, TMS or TDSC stimulation and for intracranial modalities like sEEG and ECOG.

In this tutorial, we present the different methods available with Brainstorm to generate the FEM mesh and how to use them from the Brainstorm GUI.

New methods are under development and will be released to Brainstorm in the next future.

Mesh tools

Brainstorm integrates a list of open-source tools. These tools are commonly used by the FEM community to generate either tetrahedral or hexahedra mesh.

Here is the list of the available methods in Brainstorm:

- iso2mesh: this option merges the Brainstorm surfaces available for the subject and then generates a tetrahedral mesh.

- Brain2mesh: this option uses the MRI available on the subject, and calls SPM's segmentation routine. The volume will have 5 tissues (white, gray, CSF, skull and skin). After that, it calls iso2mesh (internally) to generate a tetrahedral mesh.

- SimNibs: this option -recommended for obtaining a realistic model- calls the headreco process from SimNIBS toolbox (see the Additional Documentation). It uses the available MRIs for the subject, and then calls SPM and CAT for the segmentation. Then the mesh generation is performed internally by integrated tools (netgen, gmesh and meshfixe).

- Fieldtrip: this option calls the volume segmentation function from FieldTrip's pipeline. It generates an hexahedral mesh.

You can display the full list and a short description by right click on the MRI of the subject and then click the item "Generate FEM mesh".

[ATTACH]

iso2mesh

iso2mesh is a Matlab /octave-based mesh generation and processing toolbox. It can create 3D tetrahedral finite element (FE) mesh from surfaces, 3D binary and gray-scale volumetric images such as segmented MRI/CT scans.

Requirement

it If iso2mesh is not installed in your computer, Brainstrom will download the last release from this webpage and install it when it is needed. However, you can also download the iso2mesh from the github and add it to your Matlab path.

When and how to use it

iso2mesh is used as the basic option by Brainstorm to generate FEM mesh from surfaces mesh.

Assuming the situation where you have surfaces mesh of your subject available and you have already computed the OpenMeegforward problem. If you want to use the duneuro FEM to compute the forward model, you need to generate the FEM mesh from a similar surface used by OpenMeeg Here is the way to do it :

  1. Richt-click on the subject: In this way, Brainstorm will load the inner, outer and the head from the subject data. if any of these surfaces is missing, an error will be displayed.
  2. Select the 'Generate FEM mesh' item,
  3. Select the iso2mesh option,
  4. Set the iso2mesh parameters,
  5. These options are used by the surf2mesh function.

    Select either MergeMesh or MergeSurf.

  6. Max tetrahedral volum : is the maximum volume of the tetrahedral element in the mesh. Pourcentage of the element to keep: parameter between 0-100%, it used to keep or not the original input surface nodes.

Also, a full example is explained in this page.

[ATTACH]

Here is a view of mesh obtained with different values of the Max volume = [10, 1, 0.1, 0.01] with a keep ratio = 100%.

[ATTACH]

From our tests, a FEM head model with a value of 0,1 for the tetrahedral volume achieves similar results as the OpenMeeg head model computed from the same surfaces. We have also noticed that the result with v = 0,001 is almost similar to v = 0,01.

Increasing the mesh resolution needs more time to generate the mesh, more time to perform the FEM computation and of course more memory to store the mesh in the database.

Advanced

If intersections are present on the surfaces mesh, the iso2mesh FEM mesh generation fails (tetgen) and an error will be displayed on the screen. If you face this problem, you need to check the surfaces and/or regenerate new surfaces from the MRI.

Other applications

You can also select any surface mesh, or multiple surfaces (with Shift key), on the Brainstorm anatomy windows and then generate tetrahedral mesh by following the same steps explained above.

Here are some examples using only 2 tissues. This option could be useful for investigation of tissues influence on the EEG/MEG on the forward solution or on the source localization, furthermore, this option could be used for analyzing only SEEG within brain volume.

[ATTACH]

On the left is FEM model obtained from the scalp and outer scalp surface. On the right, the FEM model generated from inner and outer skull.

Brain2mesh

Brain2Mesh is a MATLAB/Octave based 3D mesh generation toolbox dedicated to the creation of high-quality multi-layered brain mesh models.

Requirement

Brain2Mesh is developed by the same team that developed the iso2mesh toolbox. Therefore iso2mesh is required. So if these toolboxes are not available on your computer, Brainstorm will download the last release and install it when it's needed.

You may also need the SPM12 toolbox. Brain2mesh is used only to generate tetrahedral mesh from the segmentation output. Therefore a segmentation of the MRI will be performed by SPM when this option is called.

More parameters will be added in the next version. If you are using this method you can request our support to help you or to add these parameters asap.

When and how to use it

This option is used when you have the individual MRI of the subject either T1 or T1 and T2. As said before, the SPM toolbox is required. The time required for this option is around 1 hour. here is the view of the obtained mesh from a T1 MRI

[ATTACH]

This option is based on the brain2mesh toolbox, we keep the default options. We will add more flexibility to control these options in the next future. However, if you want to use this option and you need support, we can help... just post your question on the forum or email us.

Fieldtrip

This option call ?the process of fieldtrip MRI segmentation (function ft_volumesegment) and hexahedral mesh generation (ft_meshprepare) develloped by the SimBio team.

Requirement

To use this option, the Fieldtrip and SPM toolbox should be in your matlab.

When and how to use it

This option can be called by two processes, either from the MRI or from any segmented tissue available on the Brainstorm database.

The mesh generation with the method is faster. It converts all the voxels to hexahedral mesh.

Only the hexahedral mesh is available for this method. You can either call this option from the MRI data or from any segmentation data available on the subject. If you call it from the MRI, a segmentation is processed first, then the mesh. If you call from the tissues, only the mesh process will be performed.

[ATTACH]

Right-click on the MRI (or the tissues), then "Generate FEM Mesh" then select Fieldtrip option. There are two parameters that the user needs to set, the downsampling of the volume and the node shift ratio.

fieldTripMeshCall.jpg

The option "Downsamp volume before meshing" will reduce the number of voxel by this factor.

The "Shift node" option calls the adaptative mesh generation. The process moves the nodes located on the interface either inward or outward in order to fit the geometry as explained here. This figure shows an example (from Fieldtrip webpage), left the unshifted and on the right the shifted.

nodeShiftFigure.JPG

This method is fast compare to the previous options, the following figures show examples of the mesh obtained with fieldtrip option from the ICBM model.

fieldTripMeshICBM.JPG

SimNIBS

SimNIBSsoftware develloped to calculate electric fields caused by Transcranial Electrical Stimulation (TES) and Transcranial Magnetic Stimulation (TMS). From its pipline, Brainstorm integrates the process of the automatic segmentation of MRI images and meshing to create individualized head models. This process is called "headreco and it's explained here.

Requirement

SimNibs is an independent software, Brainstorm call its functions internally therefore you need to install SimNibs and its dependencies. For more details please follow the instructions as explained in this webpage.

To resume, this process calls SPM12 and CAT for the tissue segmentation, then it calls Gmesh and Netgen for the tetrahedral mesh generation. The mesh is checked and repaired by calling the meshfixe process. Depending on your computer performances, this process will take between 2 to 5 hours. We highly recommend closing all other running processes and applications on your computer in order to speed this process.

When and how to use it

Brainstorm can call the main function used for the mesh generation frm the main graphical interface. To create individualized models, SimNIBS require as a T1-weighted image. T2-weighted images are optional, but highly recommended. The main steps used by SimNIBS are explained in this page.

When you have your MRI data available on your subject, follow the same steps are explained above, then select the "SimNibs" method. There is one option related to SimNibs, which is the 'Vertex density' or the number of node per mm2

[ATTACH]

If you have T1 and T2, you need to call this process by a right-click on the subject in order to include the two datasets, or you can select the T1 and T2 then call the Generate FEM mesh process.

* If there is an MRI file with the string "T2" in the subject anatomy folder, it will use it

The output head models obtained with this method are represented in the following figure.

[ATTACH]

The model has 5 layers representing the white matter, gray matter, CSF, skull and scalp.

Roast

comming soon under development and integration.

For more information, please visit: https://www.parralab.org/roast/ and https://github.com/andypotatohy/roast

Brainsuite

BrainSuite is a collection of open source software tools that enable largely automated processing of magnetic resonance images (MRI) of the human brain.

Brainstorm calls Brainsuite tools in order to compute the diffusion tensors from the diffusion wiethed inaging (DWI) data. The diffusion tensor are then converted to conductivity tensors by the linear transformation described by David Tuch et al (ref).

The conductivity tensors are are associated with the FEM mesh of the head model. Where ecah mesh element have it's own tensors.

The tensors are used to represnet the anisotropic conductivity of a tissue. The anisotropy means the change on the conductivity by changing the direction. For more information regarding tensors please refers to this page (add link).

Requirement

Brainsuite is an independant softeware, Brainstoem calls its functions from the core source code, therefore the installation of Brainsuite is required.

Please follow the instructions as explained in this webpage.

Once the instalation is completed, The BrainSuite installation folder must be informed in the Brainstorm preferences (From the Brainsuitrom interface, click on 'File' and then 'Edite preferences').

image

When and how to use it

[For this version June 2020, only the tetra mesh are supported and tested.]

The brainsuite pipline is used to estimate the anisotropy of the brain tissues. This process is associated with the DUNEuro FEM computation. The conductivity tensors will be assigned to each mesh elements.

In order to use this functionnality the DWI data are required. The Niftii files and the assocaited bvec and bval are required. Further more we assume that you have already generated the FEM mesh from the MRI as explained in the previous sections.

Tissue anisotropy estimation

Advanced

From Brainstorm, brainsuite is used for the skull stripping, bias field correction and then the diffusion pipline is used to compute the diffusion tensors.

ref to the maon function : likToGit

Brainstorm template

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

Level set

comming soon

Additional Documentation

SimNIBS

Tutorials/FemMesh (last edited 2020-08-27 06:44:59 by ?JuanGarciaPrieto)