mri2mesh reconstructs a tetrahedral head mesh from T1- and T2-weighted structural MR images. It runs also with only a T1w image, but will create better skull segmentations when also a T2w image is available.
Open a terminal and go to the directory of the “Ernie” example data set.
Run the reconstruction:
mri2mesh --all ernie org/ernie_T1.nii.gz org/ernie_T2.nii.gz
mri2meshto run all reconstruction steps including volume meshing. The subject ID (subID) ernie is given next. Mri2mesh will create a mesh named
ernie.msh, a folder
fs_ernie/that contains the FreeSurfer results, and a folder
m2m_ernie/that contains the files that are needed for volume meshing. The input images are given as final arguments (first the T1, then the T2). When calling
mri2mesh --allthe first time for a dataset, it will run FreeSurfer on it using the T1 as input. This is quite time-consuming. When re-running
mri2mesh --allit will use the existing FreeSurfer results, shortening the time required to ~3-4 hours.
Alternatively, the reconstruction can be run with only the T1w image as input, but this will result in a less accurate skull region:mri2mesh --all ernie org/ernie_T1fs.nii.gz
Check the results:
mri2mesh -c ernie
This will show the reconstructed surfaces overlaid over the MR images using freeview. The red lines indicate the final surfaces used for volume meshing, the yellow indicate the GM and WM surfaces created by FreeSurfer. A second freeview will show the subject T1 overlaid on the MNI template for a visual check of the registration accuracy. In addition, you should have a look at the tetrahedral head mesh by loading it into gmsh.
A quick check can be performed by looking at the final volume masks overlaid over the structural images in fslview:
mri2mesh --qc ernie
As a standard,
mri2meshuses 60000 triangles for each white matter surface, and the number of triangles for the other surfaces are scaled relative to this number. This results in a volume mesh of ~3.5 million tetrahedra. Alternatively, you can adjust the mesh resolution by setting
After the head mesh creation, temporary files are deleted to save disk-space. Adding
--t2pial, FreeSurfer will use the T2 image to improve the estimate of the pial surfaces (recommended only for high-res with T2 images 1mm iso voxel).
Manual editing: For improving the GM and WM surfaces after the first run of
mri2mesh, edit the FreeSurfer results as described on the FreeSurfer wiki. Then run
mri2meshagain with the
--alloption, as stated above.
mri2meshwill use the edited FreeSurfer results to create a new head mesh. For improving the ventricles, cerebellum, csf, skull or skin surfaces, manually edit one or more of the binary masks stored in
m2m_subID/mask_prep/. Then run
mri2meshagain wit the
--keep_masksoptions. The latter option will prevent
mri2meshfrom overwriting the edited masks.
Transformation from and to MNI space: Both positions and results such as the electric field can be transformed between MNI and subject space. Please see below for a description of the corresponding command line programs. The transformation is based on a non-linear whole-head registration of the T1 of the subject to the MNI template, using FSL’s fnirt command. Even though fnirt was developed for registering the brain, usually acceptable results are achieved by
mri2meshfor the whole head. When a T1 without fat suppression is used as input, the bright skull might be warped into the skin or brain. Using the option
–mnimaskskullcan prevent this. A skull mask will then be applied to down-weight the skull intensity. The transformations are stored in the toMNI subdirectory of the
m2m_subID/folder. Subject space is defined by the qform set in the
subID_T1fs_conform.nii.gz, which can be found in the same folder as the head mesh.
When something goes wrong, you can check the