13622
Comment:
|
← Revision 93 as of 2023-09-18 19:37:59 ⇥
17362
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
''Authors: Andrew Krause, Francois Tadel, David Shattuck'' | ''Authors: Andrew Krause, Francois Tadel, Anand Joshi, David Shattuck'' |
Line 4: | Line 4: |
You can use the free !BrainSuite and SVReg software package to extract segmented brain surfaces from a T1-weighted MRI image. Surface extraction and segmentation can either be automatic or manual--this tutorial will step you through the automated process (more information on manual tweaks can be found in [[http://brainsuite.bmap.ucla.edu/processing/|BrainSuite's documentation]]). | You can use the free BrainSuite and SVReg software package to extract segmented brain surfaces from a T1-weighted MRI image. Surface extraction and segmentation can either be automatic or manual--this tutorial will step you through the automated process (more information on manual tweaks can be found in [[http://brainsuite.org/processing/|BrainSuite's documentation]]). |
Line 6: | Line 6: |
For this tutorial, we will use the 01.nii file from the CTF tutorials. If you do not already have those files on your computer, you can go to the [[http://neuroimage.usc.edu/brainstorm3_register/download.php|Download page]] and get the sample_ctf.zip file. After extracting the zip file, the MRI image we will be using can be found in the Anatomy folder. | For this tutorial, we will use the auditory_tutorial_T1.nii file: [[http://neuroimage.usc.edu/bst/download.php?file=auditory_tutorial_T1.zip|download]]. After extracting the zip file, you can rename the MRI image as T1.nii for convenience. We will use this filename in the tutorial for convenience. |
Line 8: | Line 8: |
Unlike !BrainStorm, Freesurfer, and !BrainVisa, !BrainSuite does not use a database structure for storing subject information and scans. Instead, by default it stores its output in the same folder as the input MRI scan. Thus, it is often best to have each subject's structural scan in its own folder. To extract head and cortex meshes from a T1 MRI, you can also try to use: [[Tutorials/SegBrainVisa|BrainVisa]] or [[Tutorials/SegFreeSurfer|FreeSurfer]]. |
Unlike Brainstorm, Freesurfer and BrainVisa, BrainSuite does not use a database structure for storing subject information and scans. Instead, by default it stores its output in the same folder as the input MRI scan. Thus, it is often best to have each subject's structural scan in its own folder. |
Line 15: | Line 13: |
1. Download the latest version of !BrainSuite from http://www.brainsuite.org/download. 1. Install it on your computer by following the instructions in [[http://brainsuite.bmap.ucla.edu/quickstart/installation/|BrainSuite's quick start installation guide]]. Note that you will be using Surface/Volume Registration (SVReg) to do the surface segmentation, so you will need to follow the instructions in the pink box on the top of the page to download a compatible MATLAB Compiler Runtime. You may ignore any instructions about "Setting up BDP" if you are not planning on using !BrainSuite for diffusion imaging. 1. Start !BrainSuite (if it is not already open following installation). |
1. Download the latest version of BrainSuite from http://forums.brainsuite.org/download/. 1. Install it on your computer by following the instructions in BrainSuite's quick start installation guide: https://brainsuite.org/quickstart/installation/. 1. You will be using Surface/Volume Registration (SVReg) to do the surface segmentation, so you need to install a compatible [[http://www.mathworks.com/products/compiler/matlab-runtime.html|MATLAB Runtime]] (2019b for BrainSuite 21a). You may ignore any instructions about "Setting up BDP" if you are not planning on using BrainSuite for diffusion imaging. 1. Set the installation path in the Brainstorm preferences. <<BR>><<BR>> {{attachment:bs_pref.gif}} |
Line 19: | Line 18: |
== Running BrainSuite == 1. Open the T1-weighted scan in !BrainSuite by going to File > Open Volume... and navigating to the CTF tutorial's 01.nii scan.<<BR>><<BR>> {{attachment:openvolume.png}} 1. Check that the scan is in the correct orientation. Some of the modules !BrainSuite and SVReg run while processing a scan assume that the scan is in LPI coordinates. Practically, this means the screen should look like below when you open it.<<BR>><<BR>> {{attachment:correctorientationsmall.png}} 1. Open the Cortical Surface Extraction sequence dialog by clicking on Cortex > Cortical Surface Extraction Sequence. <<BR>><<BR>> {{attachment:opencorticalsurface.png}} 1. Check the box next to "Register and label brain".<<BR>><<BR>> {{attachment:csedialogsmall.png}} 1. At the bottom of the dialog window, check that the filename prefix is "01" and that the working directory is the Anatomy folder of the CTF tutorial files (or, if you moved the scan to its own folder, that folder). 1. Click "Run All". The full surface creation and segmentation process should take about 0.5 - 1.5 hours, depending on your machine.<<BR>><<BR>> {{attachment:completedsegmentationsmall.png}} |
== Run BrainSuite from Brainstorm == * Switch to the anatomy side of the database explorer. * Create a new subject, set the default anatomy option to "No, use individual anatomy". * Import the T1 MRI for this subject. * Set the [[https://neuroimage.usc.edu/brainstorm/Tutorials/ImportAnatomy#Fiducial_points|fiducial points]] manually (NAS/LPA/RPA) or [[https://neuroimage.usc.edu/brainstorm/Tutorials/ImportAnatomy#MNI_normalization|compute the MNI normalization]]. * Right-click on the MRI > '''MRI segmentation > BrainSuite'''. You only need to enter the number of final vertices in the cortex surface.<<BR>><<BR>> {{attachment:bs_menuseg.gif}} * The process can take up to a couple of hours on a simple laptop. <<BR>><<BR>> {{attachment:bs_output.gif}} |
Line 27: | Line 26: |
== Importing the results in Brainstorm == | == Run BrainSuite manually == 1. Open the T1-weighted scan in BrainSuite by going to '''File > Open Volume'''... and navigating to the auditory tutorial's T1.nii scan.<<BR>><<BR>> {{attachment:brainsuite1small.png}} 1. Check that the scan is in the correct orientation. Some of the modules BrainSuite and SVReg run while processing a scan assume that the scan is in LPI coordinates. Practically, this means the screen should look like below when you open it.<<BR>><<BR>> {{attachment:brainsuite2small.png}} 1. Clicking on menu '''Cortex > Cortical Surface Extraction Sequence'''. <<BR>><<BR>> 1. Check the box next to "'''Register and label brain'''".<<BR>><<BR>> {{attachment:brainsuite14small.png}} 1. BrainSuite has two atlases, '''BrainSuiteAtlas1''' and '''BCI-DNI_brain_atlas'''. If you are using '''BrainSuiteAtlas1 '''here, then you should use '''Colin27_BrainSuite_2016 '''or '''ICBM152_BrainSuite_2016''' as the default anatomy.''' '''If you are using the '''BCI-DNI_brain_atlas '''here, then you should use '''BCI-DNI_BrainSuite_2016 '''as the default anatomy in BrainStorm. 1. At the bottom of the dialog window, check that the filename prefix is "T1" and that the working directory is the Anatomy folder of the CTF tutorial files (or, if you moved the scan to its own folder, that folder). 1. Click "Run All". The full surface creation and segmentation process should take about 0.5 - 1.5 hours, depending on your machine.<<BR>><<BR>> {{attachment:brainsuite13small_v2.png}} == Import the results in Brainstorm == |
Line 30: | Line 38: |
1. Right-click on the subject > Import anatomy folder...<<BR>><<BR>> {{attachment:import1.gif}} 1. Select the file format "!BrainSuite folder" and select the top folder of your subject (i.e. the "Working Directory" from !BrainSuite) 1. Then you're prompted for the number of vertices you want in the final cortex surface. This will by extension define the number of dipoles to estimate during the source estimation process. By default we set this value to 15000 for the entire brain (it means 7500 for each hemisphere). <<BR>><<BR>> {{attachment:nvertices.png}} 1. The MRI Viewer appears, and a help window asks you to validate the orientation of the MRI and to define the 6 fiducial points. If something doesn't look right at this step, for instance if the MRI is not presented with a correct orientation, you should stop this automatic import process and follow the manual instructions in the basic tutorial pages.<<BR>><<BR>> {{attachment:fiducialssmall.png}} 1. Place the six fiducials. If you need help, refer to this page: CoordinateSystems 1. Click on Save to keep your modifications, and the automatic import will go on. 1. The files that are imported from the !BrainSuite folder are the following: * '''01.nii''' (original T1 MRI volume) * '''01.scalp.dfs''' (head surface) * '''01.inner_skull.dfs''' (inner skull surface) * '''01.outer_skull.dfs''' (outer skull surface) * '''01.left.pial.cortex.svreg.dfs''' (grey/csf interface, left hemisphere) * '''01.right.pial.cortex.svreg.dfs''' (grey/csf interface, right hemisphere) * '''01.left.inner.cortex.svreg.dfs''' (white matter, left hemisphere) * '''01.right.inner.cortex.svreg.dfs''' (white matter, right hemisphere) * '''brainsuite_labeldescription.xml''' (not imported, but required for properly labelling scouts) 1. The successive steps that are performed automatically by Brainstorm: * Import all the surfaces (head, skull, left/right, white/pial) * Read the anatomical label information from pial and white matter surfaces * Downsample each hemisphere to the number specified in the options (by default 7500, half of the total default number 15000) * Merge left and right hemispheres for the two cortical surface types: white matter and cortex envelope * Downsample the head and skull surfaces * Delete all the unnecessary surfaces 1. The files you can see in the database explorer at the end:<<BR>><<BR>> {{attachment:brainsuitefilescropped.png}} * '''MRI''': The T1 MRI of the subject * '''01.scalp_1082V''': The head surface (downsampled to 1082 vertices) * '''01.outer_skull_642''': The skull surface (downsampled to 642 vertices) * '''01.inner_skull_642''': The inner skull surface (downsampled to 642 vertices) * '''cortex_270604V''': High-resolution cortical surface that was generated by !BrainSuite. * '''cortex_15000V''': Low-resolution cortical surface, downsampled using the '''reducepatch''' function from Matlab (it keeps a meaningful subset of vertices from the original surface). This one appears in green, meaning that it is going to be used as the default by the processes that require a cortex surface.) 1. A figure is automatically shown at the end of the process, to check visually that the low-resolution cortex and head surfaces were properly imported. If it doesn't look like the following picture, do not go any further in your source analysis, fix the anatomy first.<<BR>><<BR>> {{attachment:importresultssmall.png}} |
1. Right-click on the subject > Import anatomy folder.<<BR>><<BR>> {{attachment:importMenu.gif}} * '''Import anatomy folder''': Interactive import: asks for the number of vertices expected in the final cortex surfaces and for the location of the fiducials NAS/LPA/RPA. Select this option in the case of an MEG study, when you know exactly where the fiducials were digitized during the MEG acquisition. See tutorial [[https://neuroimage.usc.edu/brainstorm/Tutorials/ChannelFile#Automatic_registration|MRI registration]]. * '''Import anatomy folder (auto)''': Automatic import: Computes the [[https://neuroimage.usc.edu/brainstorm/CoordinateSystems#MNI_coordinates|linear MNI normalization]], uses default positions from the MNI atlas for the NAS/LPA/RPA fiducials, and uses 15000 vertices for the cortex downsampled surfaces. 1. Select one of the BrainSuite import options and select the processing folder: * '''BrainSuite''': Import the T1 MRI, pial and white cortex surfaces, scalp and skull surfaces, registration squares, surface and volume parcellations. * BrainSuite '''+ Volume atlas''': Same as above, with the following addition: Import the volume parcellations available in the subject folder. 1. Manual import: You're prompted for the number of vertices you want in the final cortex surface. This will by extension define the number of dipoles to estimate during the source estimation process. By default we set this value to 15000 for the entire brain (it means 7500 for each hemisphere). <<BR>><<BR>> {{attachment:nvertices.png}} 1. Manual import: The MRI Viewer appears for you to define the anatomical fiducials. See tutorial [[https://neuroimage.usc.edu/brainstorm/Tutorials/ImportAnatomy#Fiducial_points|Import anatomy]]. Click on Save to keep your modifications, and the import will continue. <<BR>><<BR>> {{attachment:fiducialssmall.png||height="400",width="415"}} 1. A figure is automatically shown at the end of the process, to check visually that the low-resolution cortex and head surfaces were properly imported. If it doesn't look like the following picture, do not go any further in your source analysis, fix the anatomy first.<<BR>><<BR>> {{attachment:importresultssmall.png||height="179",width="227"}} == Files imported == The files that are imported from the BrainSuite folder are the following: * '''T1.nii''' (original T1 MRI volume) * '''T1.scalp.dfs''' (head surface) * '''T1.inner_skull.dfs''' (inner skull surface) * '''T1.outer_skull.dfs''' (outer skull surface) * '''T1.left.pial.cortex.svreg.dfs''' (gray/csf interface, left hemisphere) * '''T1.right.pial.cortex.svreg.dfs''' (gray/csf interface, right hemisphere) * '''T1.left.inner.cortex.svreg.dfs''' (white matter, left hemisphere) * '''T1.right.inner.cortex.svreg.dfs''' (white matter, right hemisphere) * '''T1.left.mid.cortex.svreg.dfs''' (registered squares, left hemisphere) * '''T1.right.mid.cortex.svreg.dfs''' (registered squares, right hemisphere) * '''atlas.left.mid.cortex.svreg.dfs''' (registered squares from the atlas, left hemisphere) * '''atlas.right.mid.cortex.svreg.dfs''' (registered squares from the atlas, left hemisphere) * '''brainsuite_labeldescription.xml''' (not imported, but required for properly labelling scouts) * '''T1.svreg.label.nii.gz''' (anatomical BCI-DNI atlas in volume) The successive steps that are automatically performed by Brainstorm: * Import all the surfaces (head, skull, left/right, white/pial) * Read the anatomical label information and SVReg atlases from pial and white matter surfaces * Downsample each hemisphere to the number specified in the options (by default 7500, half of the total default number 15000) * Merge left and right hemispheres for the two cortical surface types: white matter and cortex envelope * Downsample the head and skull surfaces * Delete all the unnecessary surfaces * Import additional volume parcellations The files you can see in the database explorer at the end: * '''MRI''': The T1 MRI of the subject * '''svreg''': Volume SVReg parcellation. * '''01.scalp_1082V''': The head surface (downsampled to 1082 vertices) * '''01.outer_skull_642V''': The skull surface (downsampled to 642 vertices) * '''01.inner_skull_642'''V: The inner skull surface (downsampled to 642 vertices) * '''cortex_270604V''': High-resolution cortical surface that was generated by BrainSuite. * '''cortex_15000V''': Low-resolution cortical surface, downsampled using the '''reducepatch''' function from Matlab (it keeps a meaningful subset of vertices from the original surface). This one appears in green, meaning that it is going to be used as the default by the processes that require a cortex surface) * '''white_270604V''': High-resolution white matter envelope from BrainSuite. * '''white_15000V''': Low-resolution white matter envelope from BrainSuite. * '''subcortical''': Atlas of subcortical regions imported from SVReg volume as labelled surfaces <<BR>><<BR>> {{attachment:files.gif}} |
Line 63: | Line 90: |
Line 65: | Line 91: |
It's hard to estimate what would be a good cortical reconstruction. What you are trying to spot at this level is mostly the obvious errors, like when the early stages of the brain extraction didn't perform well, just with a visual inspection. Play with the ''Smooth'' slider in the ''Surface'' tab. If it looks like a brain (two separate hemispheres) in both smooth and original views, it is probably ok. | It's hard to estimate what would be a good cortical reconstruction. Try to spot the most obvious errors, e.g. when the early stages of the brain extraction didn't perform well. Play with the ''Smooth'' slider in the ''Surface ''tab. If it looks like a brain (two separate hemispheres) in both smooth and original views, it is probably OK. |
Line 69: | Line 95: |
{{attachment:alignmrisurfacesmall.png}} | . {{attachment:alignmrisurfacesmall.png||height="273",width="226"}} |
Line 72: | Line 98: |
It is critical to get a good cortex surface for source estimation. If the final cortex surface looks bad, it means that something didn't work well somewhere along the !BrainSuite cortical surface extraction sequence. This tutorial is not meant to guide you though troubleshooting !BrainSuite results, but most errors in surface generation and segmentation occur at the first step, skull-stripping. If you are ending up with surfaces that include non-brain regions, or are missing large chunks of cortex, this step is where the error occurred. | It is critical to get a good cortex surface for source estimation. If the final cortex surface looks bad, it means that something didn't work well somewhere along the BrainSuite cortical surface extraction sequence. This tutorial is not meant to guide you though troubleshooting BrainSuite results, but most errors in surface generation and segmentation occur at the first step, skull-stripping. If you are ending up with surfaces that include non-brain regions, or are missing large chunks of cortex, this step is where the error occurred. |
Line 74: | Line 100: |
To fix skull-stripping issues, re-open the original T1 scan in !BrainSuite. Open the Cortical Surface Extraction Sequence and check the box next to "Register and label brain" as you did above, but this time uncheck "Skull stripping". Next click on Cortex > Skull Stripping (BSE) to open the skull stripping dialog box, as this will let you step back and forth until you get a result that works. Common parameter settings that work are: | To fix skull-stripping issues, re-open the original T1 scan in BrainSuite. Open the Cortical Surface Extraction Sequence and check the box next to "Register and label brain" as you did above, but this time uncheck "Skull stripping". Next click on Cortex > Skull Stripping (BSE) to open the skull stripping dialog box, as this will let you step back and forth until you get a result that works. First try increasing 'Automated Iterations' from 5 to 10 or 15, and press 'Apply'. If the results do not look satisfactory, then press 'Back' and try again. You can also try entering parameters manually by unchecking 'automated parameter selection'. Common parameter settings that work are: |
Line 78: | Line 104: |
* Erosion Size: 1, 2 | |
Line 81: | Line 108: |
If after following those instructions you still don't manage to get good surfaces, you can try to run the automatic MRI segmentation from [[Tutorials/SegBrainVisa|BrainVISA]] or [[Tutorials/LabelFreeSurfer|FreeSurfer]]. | If after following these instructions you still don't manage to get good surfaces, you can try to run the automatic MRI segmentation from [[Tutorials/SegBrainVisa|BrainVISA]] or [[Tutorials/LabelFreeSurfer|FreeSurfer]]. |
Line 84: | Line 111: |
It is not mandatory to have a perfect head surface to use any of the Brainstorm features: you don't necessarily have to recognize the face (for the anonymity of the figures, it can be even better if you don't). The head surface is important mostly for the alignment of the MEG sensors and the MRI. If you digitized the head shape with a Polhemus device, you can align automatically the head surface (hence the MRI) with the MEG sensors (in the same referential as the Polhemus points). The quality of this automatic registrations depends on the quality of both surfaces: the Polhemus head shape (green points) and the head surface from the MRI (grey surface). If you placed lots of points on the nose but your head surface doesn't have a nose, those points are not going to help. Except for that, a nice head shape is mainly useful for producing nicer figures. If the default head surface looks bad, you can try generating another one: right-click on the subject folder > Generate head surface. The options are: * '''Number of vertices''': Number of points that are kept from the initial isosurface computed from the MRI. Increasing this number may increase the quality of the final surface. * '''Erode factor''': Number of pixels to erode after the first binary threshold of the MRI. Increasing this number removes small components that are connected to the head. * '''Fill holes factor''': Number of dimensions in which the holes should be identified and closed. Increasing this number removes more of the cavities of the head surface (0=no correction, 1=removes holes inside the surface, 3=closes all the features that make the surface non-convex) You can also try to import manually the original !BrainSuite head surface. Right click on the subject > Import surface > 01.scalp.dfs. If the surface has holes, you can right-click on the head surface > Fill holes. Note that !BrainSuite's head and skull files have too many vertices for analysis, so you may have to decrease the surface resolution by right-clicking the head file > Less vertices.... The automated folder importation decreases the number of vertices to 1082. |
See the instructions to generate a new head surface file in the [[https://neuroimage.usc.edu/brainstorm/Tutorials/LabelFreeSurfer#Handling_errors|FreeSurfer tutorial]]. |
Line 99: | Line 114: |
Checking the box next to "Register and label brain" when running !BrainSuite's Cortical Surface Extraction sequence causes !BrainSuite to run a companion program called SVReg that implements an automatic parcellation of the cortical surface into anatomical regions. More information on this program can be found here:http://brainsuite.bmap.ucla.edu/processing/svreg/ | Checking the box next to "Register and label brain" when running BrainSuite's Cortical Surface Extraction sequence causes BrainSuite to run a companion program called SVReg that implements an automatic parcellation of the cortical surface into anatomical regions. More information on this program can be found here:http://brainsuite.bmap.ucla.edu/processing/svreg/ |
Line 101: | Line 116: |
SVReg's labels are imported into !BrainStorm as scouts (cortical regions of interest), and saved directly in the surface files. To check where they are saved: right-click on the low-resolution cortex file > File > View file contents. You can see that there are two "Atlas" structures available, one that has Name='User scouts' and the other with Name='SVReg'. | SVReg's labels are imported into BrainStorm as scouts (cortical regions of interest), and saved directly in the surface files. To check where they are saved: right-click on the low-resolution cortex file > File > View file contents. You can see that there are two "Atlas" structures available, one that has Name='User scouts' and the other with Name='SVReg'. |
Line 105: | Line 120: |
{{attachment:svregscoutssmall.png}} | {{attachment:svregscoutssmall.png||height="252",width="621"}} |
Line 108: | Line 123: |
If you get some error messages in the Matlab command window during the segmention ("Could not find XML label description file brainsuite_labeldescription.xml"), you are using a version of !BrainSuite that does not save the file brainsuite_labeldescription.xml in the segmentation folder. | If you get some error messages in the Matlab command window during the segmention ("Could not find XML label description file brainsuite_labeldescription.xml"), you are using a version of BrainSuite that does not save the file brainsuite_labeldescription.xml in the segmentation folder. |
Line 112: | Line 127: |
== Feedback == <<EmbedContent(http://neuroimage.usc.edu/brainstorm3_register/get_feedback.php?Tutorials/SegBrainSuite)>> |
== Volume parcellations == The SVReg atlas is available as a volume, with the same dimensions as the original T1 MRI. ''[TODO]'' == Additional parcellations == An additional BrainSuite module allows the computation multiple parcellations (atlases in BrainStorm terminology). This is not integrated into BrainSuite yet but it is a separate executable and is a separate download. Follow the link for instructions:<<BR>>https://github.com/ajoshiusc/svreg_multiparc {{attachment:multiparc1.png}} {{attachment:multiparc2.png}} == Subcortical structures: svreg labels == The file T1.svreg.label.nii.gz contains a volume the subcortical regions. Brainstorm reads these volume labels and tesselates some of these regions, groups all the meshes in a large surface file where the regions are identified in an atlas called "Structures". It identifies: 8 bialateral structures (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus, cerebellum) and 1 central structure (brainstem). You can easily extract one structure (for example the brainstem or the cerebellum) by selecting the corresponding entries in the scouts list and selecting the menu Scout > Edit surface > Keep only selected scouts. It creates a new surface with only the selected regions. If you want to remove one or several structures, use the menu "Remove selected scouts" instead. Read more about the segmentation and labeling process in BrainSuite here: http://brainsuite.org/processing/svreg/ . {{attachment:brainsuite_subcortical_brainstorm.png||height="331",width="554"}} == Template registration for group analysis == BrainSuite provides an accurate registration method to the Brainstorm anatomy templates (Colin27, ICBM152). The registration procedure works in the same way as the FreeSurfer-based registration illustrated in this tutorial: [[Tutorials/CoregisterSubjects|Group studies: Subject coregistration]]. To use this registration, you need to use a template anatomy processed with BrainSuite. <<BR>>Right-click on ''Default anatomy'' > Use template > '''Colin27_BrainSuite_2016''' or '''ICBM152_BrainSuite_2016'''. . {{attachment:coreg.gif||height="331",width="554"}} . == Resection labeling == BrainSuite's module [[https://github.com/ajoshiusc/auto_resection_mask|auto_resection_labeling]] can coregister pre- and post- op MRI's of subjects that underwent surgical resection. The module coregisters pre- and post-op MRI images and identifies resection as a volumetric mask. This volumetric mask can be imported as a MRI parcellation (aka MRI atlas) in subject space, and then used to generate [[Tutorials/TutVolSource#Volume_atlases|volume scouts]] in the source space. Please refer to the [[https://github.com/ajoshiusc/auto_resection_mask|documentation]] of the module for identifying the resection and importing results into BrainStorm. Brainstorm will import the resection mask, and extract a surface representation. . {{attachment:resection_labeling3.png||height="331",width="554"}} <<EmbedContent(http://neuroimage.usc.edu/bst/get_feedback.php?Tutorials/SegBrainSuite)>> |
T1-MRI Segmentation with BrainSuite
Authors: Andrew Krause, Francois Tadel, Anand Joshi, David Shattuck
You can use the free BrainSuite and SVReg software package to extract segmented brain surfaces from a T1-weighted MRI image. Surface extraction and segmentation can either be automatic or manual--this tutorial will step you through the automated process (more information on manual tweaks can be found in BrainSuite's documentation).
For this tutorial, we will use the auditory_tutorial_T1.nii file: download. After extracting the zip file, you can rename the MRI image as T1.nii for convenience. We will use this filename in the tutorial for convenience.
Unlike Brainstorm, Freesurfer and BrainVisa, BrainSuite does not use a database structure for storing subject information and scans. Instead, by default it stores its output in the same folder as the input MRI scan. Thus, it is often best to have each subject's structural scan in its own folder.
Contents
Installation
Download the latest version of BrainSuite from http://forums.brainsuite.org/download/.
Install it on your computer by following the instructions in BrainSuite's quick start installation guide: https://brainsuite.org/quickstart/installation/.
You will be using Surface/Volume Registration (SVReg) to do the surface segmentation, so you need to install a compatible MATLAB Runtime (2019b for BrainSuite 21a). You may ignore any instructions about "Setting up BDP" if you are not planning on using BrainSuite for diffusion imaging.
Set the installation path in the Brainstorm preferences.
Run BrainSuite from Brainstorm
- Switch to the anatomy side of the database explorer.
- Create a new subject, set the default anatomy option to "No, use individual anatomy".
- Import the T1 MRI for this subject.
Set the fiducial points manually (NAS/LPA/RPA) or compute the MNI normalization.
Right-click on the MRI > MRI segmentation > BrainSuite. You only need to enter the number of final vertices in the cortex surface.
The process can take up to a couple of hours on a simple laptop.
Run BrainSuite manually
Open the T1-weighted scan in BrainSuite by going to File > Open Volume... and navigating to the auditory tutorial's T1.nii scan.
Check that the scan is in the correct orientation. Some of the modules BrainSuite and SVReg run while processing a scan assume that the scan is in LPI coordinates. Practically, this means the screen should look like below when you open it.
Clicking on menu Cortex > Cortical Surface Extraction Sequence.
Check the box next to "Register and label brain".
BrainSuite has two atlases, BrainSuiteAtlas1 and BCI-DNI_brain_atlas. If you are using BrainSuiteAtlas1 here, then you should use Colin27_BrainSuite_2016 or ICBM152_BrainSuite_2016 as the default anatomy. If you are using the BCI-DNI_brain_atlas here, then you should use BCI-DNI_BrainSuite_2016 as the default anatomy in BrainStorm.
- At the bottom of the dialog window, check that the filename prefix is "T1" and that the working directory is the Anatomy folder of the CTF tutorial files (or, if you moved the scan to its own folder, that folder).
Click "Run All". The full surface creation and segmentation process should take about 0.5 - 1.5 hours, depending on your machine.
Import the results in Brainstorm
- Switch to the anatomy side of the database explorer
- Create a new subject, set the default anatomy option to "No, use individual anatomy"
Right-click on the subject > Import anatomy folder.
Import anatomy folder: Interactive import: asks for the number of vertices expected in the final cortex surfaces and for the location of the fiducials NAS/LPA/RPA. Select this option in the case of an MEG study, when you know exactly where the fiducials were digitized during the MEG acquisition. See tutorial MRI registration.
Import anatomy folder (auto): Automatic import: Computes the linear MNI normalization, uses default positions from the MNI atlas for the NAS/LPA/RPA fiducials, and uses 15000 vertices for the cortex downsampled surfaces.
Select one of the BrainSuite import options and select the processing folder:
BrainSuite: Import the T1 MRI, pial and white cortex surfaces, scalp and skull surfaces, registration squares, surface and volume parcellations.
BrainSuite + Volume atlas: Same as above, with the following addition: Import the volume parcellations available in the subject folder.
Manual import: You're prompted for the number of vertices you want in the final cortex surface. This will by extension define the number of dipoles to estimate during the source estimation process. By default we set this value to 15000 for the entire brain (it means 7500 for each hemisphere).
Manual import: The MRI Viewer appears for you to define the anatomical fiducials. See tutorial Import anatomy. Click on Save to keep your modifications, and the import will continue.
A figure is automatically shown at the end of the process, to check visually that the low-resolution cortex and head surfaces were properly imported. If it doesn't look like the following picture, do not go any further in your source analysis, fix the anatomy first.
Files imported
The files that are imported from the BrainSuite folder are the following:
T1.nii (original T1 MRI volume)
T1.scalp.dfs (head surface)
T1.inner_skull.dfs (inner skull surface)
T1.outer_skull.dfs (outer skull surface)
T1.left.pial.cortex.svreg.dfs (gray/csf interface, left hemisphere)
T1.right.pial.cortex.svreg.dfs (gray/csf interface, right hemisphere)
T1.left.inner.cortex.svreg.dfs (white matter, left hemisphere)
T1.right.inner.cortex.svreg.dfs (white matter, right hemisphere)
T1.left.mid.cortex.svreg.dfs (registered squares, left hemisphere)
T1.right.mid.cortex.svreg.dfs (registered squares, right hemisphere)
atlas.left.mid.cortex.svreg.dfs (registered squares from the atlas, left hemisphere)
atlas.right.mid.cortex.svreg.dfs (registered squares from the atlas, left hemisphere)
brainsuite_labeldescription.xml (not imported, but required for properly labelling scouts)
T1.svreg.label.nii.gz (anatomical BCI-DNI atlas in volume)
The successive steps that are automatically performed by Brainstorm:
- Import all the surfaces (head, skull, left/right, white/pial)
- Read the anatomical label information and SVReg atlases from pial and white matter surfaces
- Downsample each hemisphere to the number specified in the options (by default 7500, half of the total default number 15000)
- Merge left and right hemispheres for the two cortical surface types: white matter and cortex envelope
- Downsample the head and skull surfaces
- Delete all the unnecessary surfaces
- Import additional volume parcellations
The files you can see in the database explorer at the end:
MRI: The T1 MRI of the subject
svreg: Volume SVReg parcellation.
01.scalp_1082V: The head surface (downsampled to 1082 vertices)
01.outer_skull_642V: The skull surface (downsampled to 642 vertices)
01.inner_skull_642V: The inner skull surface (downsampled to 642 vertices)
cortex_270604V: High-resolution cortical surface that was generated by BrainSuite.
cortex_15000V: Low-resolution cortical surface, downsampled using the reducepatch function from Matlab (it keeps a meaningful subset of vertices from the original surface). This one appears in green, meaning that it is going to be used as the default by the processes that require a cortex surface)
white_270604V: High-resolution white matter envelope from BrainSuite.
white_15000V: Low-resolution white matter envelope from BrainSuite.
subcortical: Atlas of subcortical regions imported from SVReg volume as labelled surfaces
Handling Errors
How to check the quality of the result
It's hard to estimate what would be a good cortical reconstruction. Try to spot the most obvious errors, e.g. when the early stages of the brain extraction didn't perform well. Play with the Smooth slider in the Surface tab. If it looks like a brain (two separate hemispheres) in both smooth and original views, it is probably OK.
Display the cortex surface on top of the MRI slices, to make sure they are well aligned, that the surface follows the folds well, and that the left and right were not flipped: right-click on the low-resolution cortex > MRI registration > Check MRI/surface registration...
The cortex looks bad
It is critical to get a good cortex surface for source estimation. If the final cortex surface looks bad, it means that something didn't work well somewhere along the BrainSuite cortical surface extraction sequence. This tutorial is not meant to guide you though troubleshooting BrainSuite results, but most errors in surface generation and segmentation occur at the first step, skull-stripping. If you are ending up with surfaces that include non-brain regions, or are missing large chunks of cortex, this step is where the error occurred.
To fix skull-stripping issues, re-open the original T1 scan in BrainSuite. Open the Cortical Surface Extraction Sequence and check the box next to "Register and label brain" as you did above, but this time uncheck "Skull stripping". Next click on Cortex > Skull Stripping (BSE) to open the skull stripping dialog box, as this will let you step back and forth until you get a result that works. First try increasing 'Automated Iterations' from 5 to 10 or 15, and press 'Apply'. If the results do not look satisfactory, then press 'Back' and try again. You can also try entering parameters manually by unchecking 'automated parameter selection'. Common parameter settings that work are:
- Diffusion Constant: between 20 and 30 (inclusive)
- Edge Constant: 0.6, 0.75, 0.8
- Erosion Size: 1, 2
In general, increasing the edge constant will exclude more areas of the brain (decreasing will include more areas), while increasing the diffusion constant will include more areas. Set the parameters as you want, then click "Step >" until it says "finished skullstripping" above the progress bar. If the results look good, then click "Run All" on the Cortical Surface Extraction Sequence dialog box to run the rest of the segmentation process; if the results do not look good, click "< Back" on the Skull Stripping Tool dialog box until the progress bar returns to 0% and try a different set of parameters. More information can be found in BrainSuite's documentation.
If after following these instructions you still don't manage to get good surfaces, you can try to run the automatic MRI segmentation from BrainVISA or FreeSurfer.
The head surface looks bad
See the instructions to generate a new head surface file in the FreeSurfer tutorial.
Cortical Parcellations
Checking the box next to "Register and label brain" when running BrainSuite's Cortical Surface Extraction sequence causes BrainSuite to run a companion program called SVReg that implements an automatic parcellation of the cortical surface into anatomical regions. More information on this program can be found here:http://brainsuite.bmap.ucla.edu/processing/svreg/
SVReg's labels are imported into BrainStorm as scouts (cortical regions of interest), and saved directly in the surface files. To check where they are saved: right-click on the low-resolution cortex file > File > View file contents. You can see that there are two "Atlas" structures available, one that has Name='User scouts' and the other with Name='SVReg'.
To access them from the interface: 1. Double-click on the low-resolution cortex (works with the original, high-resolution cortex too, it's just longer to display) 2. Go to the Scout tab, and click on the drop-down list to select "SVReg"
Troubleshooting: You do not see the atlas SVReg
If you get some error messages in the Matlab command window during the segmention ("Could not find XML label description file brainsuite_labeldescription.xml"), you are using a version of BrainSuite that does not save the file brainsuite_labeldescription.xml in the segmentation folder.
Workaround: Copy manually the file brainsuite_labeldescription.xml to the segmentation folder.
Volume parcellations
The SVReg atlas is available as a volume, with the same dimensions as the original T1 MRI.
[TODO]
Additional parcellations
An additional BrainSuite module allows the computation multiple parcellations (atlases in BrainStorm terminology). This is not integrated into BrainSuite yet but it is a separate executable and is a separate download. Follow the link for instructions:
https://github.com/ajoshiusc/svreg_multiparc
Subcortical structures: svreg labels
The file T1.svreg.label.nii.gz contains a volume the subcortical regions. Brainstorm reads these volume labels and tesselates some of these regions, groups all the meshes in a large surface file where the regions are identified in an atlas called "Structures". It identifies: 8 bialateral structures (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus, cerebellum) and 1 central structure (brainstem). You can easily extract one structure (for example the brainstem or the cerebellum) by selecting the corresponding entries in the scouts list and selecting the menu Scout > Edit surface > Keep only selected scouts. It creates a new surface with only the selected regions. If you want to remove one or several structures, use the menu "Remove selected scouts" instead. Read more about the segmentation and labeling process in BrainSuite here: http://brainsuite.org/processing/svreg/
Template registration for group analysis
BrainSuite provides an accurate registration method to the Brainstorm anatomy templates (Colin27, ICBM152). The registration procedure works in the same way as the FreeSurfer-based registration illustrated in this tutorial: Group studies: Subject coregistration.
To use this registration, you need to use a template anatomy processed with BrainSuite.
Right-click on Default anatomy > Use template > Colin27_BrainSuite_2016 or ICBM152_BrainSuite_2016.
Resection labeling
BrainSuite's module auto_resection_labeling can coregister pre- and post- op MRI's of subjects that underwent surgical resection. The module coregisters pre- and post-op MRI images and identifies resection as a volumetric mask. This volumetric mask can be imported as a MRI parcellation (aka MRI atlas) in subject space, and then used to generate volume scouts in the source space.
Please refer to the documentation of the module for identifying the resection and importing results into BrainStorm. Brainstorm will import the resection mask, and extract a surface representation.