I am trying to compute FEM headmodel using Brainstorm Duneuro. I was able to compute the FEM mesh for iso2mesh and ROAST. When I compute headmodel for iso2mesh (3 components), Duneuro works (but the range of values of FEM leadfields seems abnormally high as compared with BEM leadfield, so not sure if it is correct or not). On the other hand if I create FEM headmodel using ROAST FEM mesh, then Duneuro fails and gives following error:
BST> Plugin duneuro already loaded: /home/user/.brainstorm/plugins/duneuro
DUNEURO> Writing temporary files to: /home/user/.brainstorm/tmp/duneuro_240430_174450
DUNEURO> System call: "/home/user/.brainstorm/plugins/duneuro/bst_duneuro/bin/bst_duneuro_meeg_linux64.app" "/home/user/.brainstorm/tmp/duneuro_240430_174450/duneuro_minifile.mini"
Reading 3d Gmsh grid...
version 2.2 Gmsh file detected
file contains 438583 nodes
file contains 2545391 elements
number of real vertices = 438583
number of boundary elements = 0
number of elements = 2545391
"/home/user/.brainstorm/plugins/duneuro/bst_duneuro/bin/bst_duneuro_meeg_linux64.app" "/home/user/.brainstorm/tmp/duneuro_240430_174450/duneuro_minifile.mini": Segmentation fault
status =
139
This error comes in both individual and default anatomy with default cap. I use Brainstorm which was last updated on 21st March, 2024. Any help would be highly appreciated.
You need also to make sure that the mesh is refined to compare the LFs, and in some case you need to make sure that the source are all within the Brain volum.
It seems the mesh has some errors. Have you tried to visualize it before calling the DUNEuro?
Thanks a lot for your help! The first part got resolved when I made the conductivities same. Regarding ROAST mesh, I viewed using display option and it looked fine. Is there any other way to check its goodness? Also when I checked the option to force the sources inside the gray layer at the beginning of the Duneuro, it moved all the sources to GM and then gave me same segmenatation fault error (139).
PS: At the moment I am trying everything on default head. Let me know if you need more info. to pinpoint the issue.
Regarding the mesh, ROAST uses voxel-based segmentation, and if something goes wrong in the segmentation process, it will affect the mesh generation and then the FEM computation.
I would recommend using the SimNibs Headreco process for the FEM mesh generation; this is the option that we recommend.
It actually worked. Charm works, I am able to create simnibs 4 (charm) mesh but Duneuro takes a lot of time 24 hrs and still running. Does it take that long? Should I install SuperLU? I am running on Linux machine (server). What do you suggest?
I am also trying to run with headreco. Will update once done.
Hey @nikiita013
The computation can last longer depending on the performance of your computer, as well as some other parameters, including the resolution of the mesh, the number of channels, the source resolution, and the model...
Can you share a screenshot of the Matlab terminal just to see at what step the computation is?
Thanks for your reply. Sorry for late response. Following is the terminal output:
BST> Checking latest online version for duneuro...
BST> Adding plugin duneuro to path: /home/user/.brainstorm/plugins/duneuro/bst_duneuro
BST> Adding plugin duneuro to path: /home/user/.brainstorm/plugins/duneuro/bst_duneuro/bin
DUNEURO> Writing temporary files to: /home/user/.brainstorm/tmp/duneuro_240522_140829
DUNEURO> System call: "/home/user/.brainstorm/plugins/duneuro/bst_duneuro/bin/bst_duneuro_meeg_linux64.app" "/home/user/.brainstorm/tmp/duneuro_240522_140829/duneuro_minifile.mini"
Reading 3d Gmsh grid...
version 2.2 Gmsh file detected
file contains 669243 nodes
file contains 3748503 elements
number of real vertices = 669243
number of boundary elements = 0
number of elements = 3748503
volume_conductor.time_reading_gmsh = 114.401
tensors = 12
time = 0.018281
volume_conductor.time_reading_tensors = 0.0183118
volume_conductor.time_reordering_indices = 0.286049
volume_conductor.time = 114.705
degree = 1
element_type = tetrahedron
WARNING: You are using AMG without SuperLU! Please consider installing SuperLU, or set the usesuperlu flag to false to suppress this warning.
time = 0.000307239
Sorry I could not take the full screenshot of the terminal as the whole text was not fitting in. The Duneuro computation never finished and also did not give any error.
From this screen, it seems that computation doesn't start. only the data are passed to the solver, and then nothing.
Can you share screenshot of the model that you are using, as well as some details of the model.
Can you also share a screenshot of the files in this folder:
/home/user/.brainstorm/tmp/duneuro_240522_140829/
I did not understand exactly which model you are referring to... Following are the settings of the Duneuro. To create mesh I use simnibs 4.1.0 in brainstorm with default values to create the mesh.
Please let me know if you want some other information. I will share. Thanks a lot!
Yes I tried Oulap's reply and it worked. I tried to create the headreco FEM mesh but it fails due to CAT segmention. Following is the terminal output of MATLAB.
reading binary
Number of Nodes : 660073
Number of Triangles : 933289
Number of Triangle Regions : 9
Number of Tetrahedra : 3699670
Number of Tetrahedron Regions: 9
Elapsed time is 0.341284 seconds.
Warning: MATLAB has disabled some advanced graphics rendering features by switching to software OpenGL. For more information,
click here.
FEM> T1 MRI: /home/user/SharedData/844/hbnetdata/HBN_headmodels/brainstorm_db_HBN/CMI-HBN_CS_1/anat/@default_subject/subjectimage_T1.mat
FEM> T2 MRI:
BST> Processing dependencies: cat12 requires: spm12
BST> Plugin cat12 already loaded: /home/user/.brainstorm/plugins/cat12
========================================================================
PREPARING VOLUMES FOR MESHING
========================================================================
Copying input files to m2m_default_subject
Copying T1fs.nii.gz to T1fs_conform.nii.gz
Preparing to segment
Starting MATLAB
========================================================================
< M A T L A B (R) >
Copyright 1984-2024 The MathWorks, Inc.
R2024a Update 2 (24.1.0.2578822) 64-bit (glnxa64)
April 9, 2024
To get started, type doc.
For product information, visit www.mathworks.com.
Downsampling factor for segmentation : 3
------------------------------------------------------------------------
Running job #1
------------------------------------------------------------------------
Running 'Segment'
SPM12: spm_preproc_run (v6365) 14:32:45 - 31/05/2024
========================================================================
Segment /home/user/.brainstorm/tmp/headreco_240531_143226/m2m_default_subject/segment/spm/T1fs_conform.nii
Completed : 14:39:25 - 31/05/2024
Done 'Segment'
Running 'Normalise: Write'
Done 'Normalise: Write'
Running 'Deformations'
spmprior_tissue 1,1,1
spmprior_eye1 1,1,1
spmprior_eye2 1,1,1
spmprior_air 1,1,1
spmprior_ventricles_lateral 1,1,1
spmprior_spinal 1,1,1
Done 'Deformations'
Done
Getting transformation matrices from MNI to subject space...
SPM12: spm_coreg (v6435) 14:39:32 - 31/05/2024
========================================================================
Completed : 14:39:39 - 31/05/2024
Item extopts: No field(s) named
darteltpm
Item cat: No field(s) named
extopts
------------------------------------------------------------------------
Running job #1
------------------------------------------------------------------------
Running 'CAT12: Segmentation'
------------------------------------------------------------------------
CAT12 r1278: 1/1: ./m2m_default_subject/segment/cat/T1fs_conform.n
------------------------------------------------------------------------
APPs bias correction:
Preparation 1s
SPM bias correction (samp: 6.00 mm, fwhm: 120 mm) bias= 39 mm 21s
SPM bias correction (samp: 5.70 mm, fwhm: 105 mm) 26s
SPM bias correction (samp: 5.40 mm, fwhm: 90 mm) 26s
SPM bias correction (samp: 5.10 mm, fwhm: 75 mm) 38s
SPM bias correction (samp: 4.80 mm, fwhm: 60 mm) 39s
SPM bias correction (samp: 4.50 mm, fwhm: 45 mm) 44s
Postprocessing 202s
SANLM denoising (NCstr=-Inf): 14s
Coarse affine registration: 3s
Affine registration 6s
SPM preprocessing 1 (estimate): 147s
SPM preprocessing 2 (write): 41s
Global intensity correction: 8s
SANLM noise correction: 4s
Local adaptive segmentation (LASstr=0.50):
Prepare maps 3s
Prepare partitions 1s
Prepare segments (LASmod = 1.00) 7s
Estimate local tissue thresholds 35s
SANLM noise correction for LAS 3s
48s
ROI segmentation (partitioning):
Atlas -> subject space 4s
Major structures 4s
Ventricle detection 4s
Blood vessel detection 2s
WMH detection (WMHCstr=0.50) 6s
Closing of deep structures 0s
Side alignment 2s
Final corrections 1s
24s
Blood vessel correction (BVCstr=0.50): 0s
Skull-stripping using graph-cut (gcutstr=0.50):
WM initialisation 2s
GM region growing 1s
GM-CSF region growing 2s
CSF region growing 2s
Ventricle filling 1s
8s
Amap using initial SPM12 segmentations (MRF filter strength 0.07): 15s
AMAP peaks: [CSF,GM,WM] = [0.39±0.06,0.73±0.12,0.99±0.02]
Final cleanup (gcutstr=0.50):
Level 1 cleanup (ROI estimation) 2s
Level 1 cleanup (brain masking) 0s
Level 2 cleanup (CSF correction) 0s
Level 3 cleanup (CSF/WM PVE) 0s
3s
Internal WMH correction for spatial normalization (WMHCstr=0.50): 0s
Dartel registration with 1.50 mm on a 1.50 mm Template:
Template: "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/templates_1.50mm/Template_1_IXI555_MNI152.nii"
1 | 0.0948 | 301802 0 301802 213.851
2 | 0.0908 | 289106 4980 294086 71.464
3 | 0.0908 | 289136 4365 293501 51.517
4 | 0.0864 | 275161 2207 277368 116.543
5 | 0.0843 | 268539 6854 275393 55.038
6 | 0.0844 | 268675 6461 275135 49.528
7 | 0.0803 | 255560 3336 258897 109.457
8 | 0.0773 | 246207 9705 255912 48.686
9 | 0.0775 | 246643 9053 255697 45.472
10 | 0.0739 | 235232 4760 239993 108.121
11 | 0.0699 | 222633 12803 235436 48.842
12 | 0.0699 | 222677 12392 235070 40.963
13 | 0.0681 | 216799 6506 223304 97.787
14 | 0.0639 | 203355 14717 218071 44.700
15 | 0.0637 | 202720 14833 217553 38.166
16 | 0.0636 | 202489 15550 218039 44.347
17 | 0.0634 | 201815 15701 217515 37.054
18 | 0.0632 | 201313 16047 217359 34.312
107s
Jacobian determinant (RMS): 0.086818
Template Matching: 0.063218
Write result maps: 6s
Surface and thickness estimation:
lh:
Thickness estimation (0.50 mm³):
WM distance: 33s
CSF distance: 27s
PBT2x thickness: 27s
Final Corrections: 0s
94s
95s
Create initial surface 26s
Reduce surface to 100000 faces: 13s
Topology correction and surface refinement: 73s
Thickness / Depth mapping 0s
Final correction of central surface in highly folded areas 3s
Spherical mapping with areal smoothing 142s
Spherical registration 264s
rh:
Thickness estimation (0.50 mm³):
WM distance: 33s
CSF distance: 27s
PBT2x thickness: 27s
Final Corrections: 0s
93s
94s
Create initial surface 28s
Reduce surface to 100000 faces: 13s
Topology correction and surface refinement: 77s
Thickness / Depth mapping 0s
Final correction of central surface in highly folded areas 3s
Spherical mapping with areal smoothing 141s
Spherical registration 261s
Display thickness: /home/user/.brainstorm/tmp/headreco_240531_143226/m2m_default_subject/segment/cat/surf/lh.thickness.T1fs_conform
Display thickness: /home/user/.brainstorm/tmp/headreco_240531_143226/m2m_default_subject/segment/cat/surf/rh.thickness.T1fs_conform
Surface and thickness estimation: 1245s
Quality check:
------------------------------------------------------------------------
CAT Preprocessing error for T1fs_conform:
------------------------------------------------------------------------
Can't write XML-file '/home/user/.brainstorm/tmp/headreco_240531_143226/m2m_default_subject/segment/cat/report/cat_T1fs_conform.xml'!
------------------------------------------------------------------------
155 - cat_io_xml
837 - cat_vol_qa
1811 - cat_main
1185 - cat_run_job
18 - cat_run_newcatch
395 - run_job
161 - cat_run
29 - cfg_run_cm
1688 - local_runcj
959 - cfg_util
469 - fill_run_job
247 - spm_jobman
73 - segment_CAT
------------------------------------------------------------------------
Failed 'CAT12: Segmentation'
Error using cat_io_xml (line 155)
Can't write XML-file '/home/user/.brainstorm/tmp/headreco_240531_143226/m2m_default_subject/segment/cat/report/cat_T1fs_conform.xml'!
In file "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/cat_io_xml.m" (v1212), function "cat_io_xml" at line 155.
In file "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/cat_vol_qa.m" (v1270), function "cat_vol_qa" at line 538.
In file "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/cat_run_newcatch.m" (???), function "cat_run_newcatch" at line 66.
In file "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/cat_run.m" (v1245), function "run_job" at line 395.
In file "/home/user/SimNIBS-3.2/simnibs_env/lib/python3.7/site-packages/simnibs/resources/spm12/toolbox/cat12/cat_run.m" (v1245), function "cat_run" at line 161.
The following modules did not run:
Failed: CAT12: Segmentation
This CAT12 module was installed by Brainstorm itself.
Any suggestions?
Thanks a lot for your reply. I am using cortex surface. It gives error even after checking the option 'Force source space inside gray'. I tried using volume grid and it works. Is there no way to use cortex surface?
I am also experienced the same error when generating a head model with a FEM mesh, both generated with Iso2mesh-2021 (3 layers) and SimNIBs (12 layers):
Dune reported error: Dune::Exception [findEntityImpl:/home/juan/bst-duneuro/src/duneuro/duneuro/common/edgehopping.hh:84]: coordinate is outside of the grid, or grid is not convex
status =
-1
** Error: Error during the DUNEuro computation, see logs in the command window.
This was after 1200 solver.coil projections and 2 days of anticipation! Also using ICMB 152 template with default the options MRI Segementation -> generate FEM mesh -> SimNIBS 4. The only difference is I did warp the template to match my subject's headpoints and head shape, however upon physical inspectation, the warping looked very minimal.
Is there any way to run this process with far fewer projections? Do you recommend generating an FEM mesh prior to warping the MRI template files, or after?
Thank you in advance! I have followed the tutorials to the best of my ability but I am also very new to neuroimaging and neuro data analysis.