'''[TUTORIAL UNDER DEVELOPMENT: NOT READY FOR PUBLIC USE]''' This page will explain the different options available within brainstorm to generate the FEM mesh. In order to use the finite element method to compute either the EEG/MEG forward problem or the simulate TMS od TDSC stimulation, the mesh of the head model is required. In this tutorial, we present the different methods available with brainstorm to generate the FEM mesh and how to use them. == Available methods == Brainstorm integrated a list of the open-source tools that are commonly used by the FEM community to generate either tetra or hexahedra mesh head model either from surface mesh or from MRI. Here is the list of the available methods in brainstorm: - [[http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?Doc/FunctionList|iso2mesh]] - [[http://mcx.space/brain2mesh/|Brain2mesh]] - [[https://simnibs.github.io/simnibs/build/html/index.html|SimNibs]] - [[http://www.fieldtriptoolbox.org/|Fieldtrip]] 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" {{attachment:meshMethods.JPG||height="400",width="350"}} === iso2mesh === iso2mesh is a matlab /octave-based mesh generation and processing toolbox. It can [[http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?Doc/Workflow|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 [[https://neuroimage.usc.edu/brainstorm/http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?Download|webpage]] and install it when it'is needed. However, you can also download the iso2mesh from the [[https://github.com/fangq/iso2mesh|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 [[https://neuroimage.usc.edu/brainstorm/Tutorials/TutBem?highlight=(bem)|OpenMeeg]]forward 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' 3- Select the iso2mesh option 4- Set the iso2mesh parameters . These options are used by the surf2mesh function. Select either '''MergeMesh''' or '''MergeSurf.''' . '''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. {{attachment:iso2meshProcess.JPG||height="380",width="720"}} 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. {{attachment:IcbmMeshModels.jpg||height="420",width="700"}} From our experience, a value of 0.1 for the volume of the tetrahedral achieves similar results as the OpenMeeg. And we have that the result wit v = 0.001 is almost similar ar 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 disc. Also, a full example is explained in this [[https://neuroimage.usc.edu/brainstorm/Duneuro?highlight=(duneuro)|page]].]. 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 use ==== You can also select any surface mesh, or multiple surfaces (with Shift key), on the brainstorm anatomy windows and then generate tetrahedral mesh y folowing the same steps above. Here are some examples using only some 2 tissues. This option could be usful for investigation of tissu influence on the EEG/MEG source localisation or analysing only SEEG within brain volume ... {{attachment:otherMesh.JPG||height="320",width="600"}} === brain2mesh === '''SimNIBS Installation''' Please follow the instructions on this [[https://simnibs.github.io/simnibs/build/html/installation/simnibs_installer.html|webapge]]''__ (new brainstorm page that explains how to generate the head model is under development)__'' in order to do the SimNibs software should be installed on your computer. ==== Iso2Mesh Installation ==== If iso2mesh is not installed on your computer, Brainstorm will download the last release from this [[https://neuroimage.usc.edu/brainstorm/http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?Download|webpage]] and install it when it is needed. However, you can also download the iso2mesh from the [[https://github.com/fangq/iso2mesh|github]] and add it to your Matlab path. ==== Brain2Mesh Installation [TODO] ==== ==== Brainsuite Installation [TODO] ==== == FEM surfaces / Volume generation == === Volume mesh generation from Brainstorm === The most modern software that are used to generate the volume mesh head model are integrated within brainstorm with an easy graphical interface to use call these tools. Right click on the subject and then "Generate FEM Mesh" {{attachment:menuGenerateFemMesh.PNG|height="40",width="150"}} The available options are : . {{attachment:FemMeshMethods.PNG|height="50",width="100"}} "Iso2mesh" : This option merges the brainstorm surfaces available on the subject and then generarte the tetrahedral mesh. "Brain2Mesh" : This options uses the MRIs available on the subjects, then it calls the SPM segmentation of the volume into 5 tissus (white, gray, scf, skull and skin). After that it converts into a tetrahedral mesh. "SimNibs" : The recommended option, it calls the headreco {ref} and generate a FEM head model "FieldTrip" : (in progress) "Roast" : (in progress) "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 ?? '''<>''' === 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. * If there is a MRI file with the string "T2" in the subject anatomy folder, it will use it * Otherwise, if you select explicitly two MRI files with CTRL+Click, it will use the first one as the T1 and the second one as the T2 (this needs to be documented in the tutorial) === 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" . Select "SIMNIBS", and choose "Tetrahedral element" and keep the other options to the default value. 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 == Errors == <
>'''<>''' <
> The most modern software that are used to generate the volume mesh head model are integrated within brainstorm with an easy graphical interface to use call these tools. Right click on the subject and then "Generate FEM Mesh" The available options are : . "Iso2mesh" : This option merges the brainstorm surfaces available on the subject and then generarte the tetrahedral mesh. "Brain2Mesh" : This options uses the MRIs available on the subjects, then it calls the SPM segmentation of the volume into 5 tissus (white, gray, scf, skull and skin). After that it converts into a tetrahedral mesh. "SimNibs" : The recommended option, it calls the headreco {ref} and generate a FEM head model "FieldTrip" : (in progress) "Roast" : (in progress) "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 ?? '''<>''' === 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. * f there is a MRI file with the string "T2" in the subject anatomy folder, it will use it * Otherwise, if you select explicitly two MRI files with CTRL+Click, it will use the first one as the T1 and the second one as the T2 (this needs to be documented in the tutorial) === 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" . Select "SIMNIBS", and choose "Tetrahedral element" and keep the other options to the default value. 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 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 == '''<>''' simnibs pblm : https://simnibs.github.io/simnibs/build/html/installation/throubleshooting.html == The MEEG forward problem with the FEM == == License == == Reference == == Additional documentation == https://github.com/brainstorm-tools/bst-duneuro/issues/1 https://github.com/brainstorm-tools/brainstorm3/issues/242