13932
Comment:
|
← Revision 78 as of 2022-07-21 18:10:55 ⇥
23018
Clarify that the MRI Cube is in RAS orientation.
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
The anatomy of the subject "Subject01" should now contain all the files that Brainstorm could import from the FreeSurfer segmentation results: | The anatomy of the subject "Subject01" should now contain all the files Brainstorm could import from the FreeSurfer segmentation results: |
Line 10: | Line 10: |
* '''Head mask''': Head surface, generated by Brainstorm.<<BR>>If this doesn't look good for your subject, you can recalculate another head surface using different parameters: right-click on the subject folder > Generate head surface. * '''Cortex_330142V''': High-resolution pial envelope generated by FreeSurfer. |
* '''ASEG / DKT / Desikan-Killiany / Destrieux''': Volume parcellations (including subcortical regions) * '''Head mask''': Head surface, generated by Brainstorm.<<BR>>If this doesn't look good for your subject, you can recalculate another head surface using different parameters: right-click on the subject folder > [[https://neuroimage.usc.edu/brainstorm/Tutorials/LabelFreeSurfer#Handling_errors|Generate head surface]]. * '''Cortex_336231V''': High-resolution pial envelope generated by FreeSurfer. |
Line 13: | Line 14: |
* '''Cortex_cereb_17005V''': Low-res pial envelope + cerebellum surface extracted from ASEG | |
Line 15: | Line 17: |
* '''Aseg atlas''': Surfaces representing various sub-cortical regions identified by FreeSurfer. * For more information about the files generated by FreeSurfer, read the [[Tutorials/LabelFreeSurfer|FreeSurfer page]].<<BR>><<BR>> {{attachment:import_anat_files.gif||height="190",width="305"}} |
* '''Subcortical''': Save FreeSurfer subcortical regions as in the ASEG volume, but tesselated as surfaces. * For more information about the files generated by FreeSurfer, read the [[Tutorials/LabelFreeSurfer|FreeSurfer page]].<<BR>><<BR>> {{attachment:import_anat_files.gif}} |
Line 21: | Line 23: |
* This selected surface is displayed in '''green'''. | * This selected surface is displayed in <<HTML(<FONT color="#00DD00">)>> '''green'''<<HTML(</FONT>)>>. |
Line 23: | Line 25: |
* All the mid, cortex and white surfaces can all be used as "cortex" surfaces, only one can be selected at a time. By default, the '''low-resolution cortex''' should be selected and displayed in green. | * The mid, cortex and white surfaces can all be used as "cortex" surfaces, only one can be selected at a time. By default, the '''low-resolution cortex''' should be selected and displayed in green. |
Line 31: | Line 33: |
Select the MRI Viewer. This interface was already introduced in the previous tutorial. It corresponds to the default display menu if you double-click on the MRI from the database explorer. Let's describe a few more options: | Open the MRI Viewer. This interface was already introduced in the previous tutorial. It corresponds to the default display menu if you double-click on the MRI from the database explorer. Description of the window: |
Line 34: | Line 36: |
* '''Neurological/Radiological''': Two standard ways displaying scans. In the neurological orientation, the left hemisphere is on the left of the image while in the radiological orientation the left hemisphere is on the right on the image. * '''Coordinates''': Position of the cursor in different coordinate systems, as described on this page: [[CoordinateSystems]]. The MNI coordinates are only available for the MRI volumes that have been transformed to the MNI stereotaxic space (for example the Colin27 and ICBM152 templates). |
* '''Neurological/Radiological''': There are two standard orientations for displaying medical scans. In the neurological orientation, the left hemisphere is on the left of the image, in the radiological orientation the left hemisphere is on the right of the image. * '''Coordinates''': Position of the cursor in different coordinate systems. See: [[CoordinateSystems]] |
Line 40: | Line 42: |
You can get collections of slices in any direction axial/coronal/sagittal with menus in the popup menu in the database explorer or from the popup menu in the MRI Viewer figure. | You can get collections of slices in any direction (axial, coronal or sagittal) with the popup menus in the database explorer or the MRI Viewer figure. |
Line 46: | Line 48: |
== MRI in 3D figures == | == MRI in 3D == |
Line 52: | Line 54: |
* '''Rotate''': Click + move. | * '''Rotate''': Click + move. Note that two different types of rotations are available: at the center of the figure the object will follow you mouse, on the sides it will do a 2D rotation of the image. |
Line 58: | Line 60: |
* '''Move slices''': Right click + move along the MRI slice axis.<<BR>>(or use the ''Resect ''panel in the ''Surface ''tab) | * '''Move slices''': Right click on the slice to move + move.<<BR>>(or use the ''Resect ''panel in the ''Surface ''tab) |
Line 61: | Line 63: |
* '''MRI Display''': For now, contains only the MIP option (Maximum Intensity Projection). | * '''MRI display''': For now, contains mostly the MIP option (Maximum Intensity Projection). |
Line 67: | Line 69: |
* Keyboard shortcuts: <<BR>> | * Keyboard shortcuts: |
Line 70: | Line 72: |
* Surfaces tab: | * '''Move slices''': [x]=Sagittal, [y]=Coronal, [z]=Axial, hold [shift] for reverse direction. * Surface tab (in the main Brainstorm window, right of the database explorer): |
Line 72: | Line 75: |
* '''Transparency''': This slider lets you change the transparency of the slices. * '''Smooth''': This slider changes the background threshold applied to the MRI slices. If you set it zero, you will see the full slices, as extracted from the volume. * '''Resect''': You can change the position of the slices with the three sliders. |
* '''Transparency''': Changes the transparency of the slices. * '''Smooth''': Changes the background threshold applied to the MRI slices. If you set it zero, you will see the full slices, as extracted from the volume. * '''Resect''': Changes the position of the slices in the three directions. |
Line 77: | Line 80: |
To display a surface you can either double-click on it or right-click > Display. | To display a surface you can either double-click on it or right-click > Display. The tab "Surface" contains buttons and sliders to control the display of the surfaces. |
Line 80: | Line 83: |
* The surface tab has more options available now. Open the cortex surface and try them all. * '''Smooth''': Inflates the cortical surface to make all the parts of the cortex envelopes visible. <<BR>>This is just a display option, it does not actually modify the surface. |
* '''Smooth''': Inflates the surface to make all the parts of the cortex envelope visible. <<BR>>This is just a display option, it does not actually modify the surface. |
Line 85: | Line 87: |
* '''Multiple surfaces''': If you open two surfaces from the same subject, they will be displayed on the same figure. Then you need to select the surface you want to edit before changing its properties. The list of the available surfaces is displayed at the top of the ''Surface ''tab. | * '''Resect''': The sliders and the buttons Left/Right/Struct at the bottom of the panel allow you to cut the surface or reorganize the anatomical structures in various ways. * '''Multiple surfaces''': If you open two surfaces from the same subject, they will be displayed on the same figure. Then you need to select the surface you want to edit before changing its properties. The list of available surfaces is displayed at the top of the ''Surface ''tab. |
Line 90: | Line 93: |
* Right-click on the 3D figure, select "Get coordinates". A new window appears. * Click anywhere on the cortex surface: a big yellow cross appears, and the coordinates of the point are displayed in all the available coordinates systems (see page: CoordinateSystems) * MRI: MR volume, in millimeters (multiplied with the Voxsize field in the MRI file). * SCS: Subject Coordinates System, in millimeters * MNI: Montreal Neurological Institute standard coordinates * You can click on "View / MRI" to see where this point is located in the MRI, using the MRI Viewer. <<BR>><<BR>> {{attachment:panelCoord.gif}} {{attachment:panelCoordPt.gif}} == Check registration with MRI == Your Subject01 anatomy is ready for source estimation. But before going further, you should '''always''' check that surfaces and MRI are well registered. When performing those steps a bit too fast, it is really easy to end up with a cortex envelope that is not aligned with the MRI. None of the following steps in source estimation will check that for you, and the sources estimated would be completely wrong. * Right-click on the ''Cortex ''surface ''> MRI Registration > Check MRI/surface registration''... . {{http://neuroimage.usc.edu/brainstorm/Tutorials/TutImportAnatomy?action=AttachFile&do=get&target=checkMriRegistration.gif|checkMriRegistration.gif|height="265px",width="332px",class="attachment"}} * The calculation of the interpolation MRI-surface takes a few seconds, but it is then saved in the database and will be reused later. * The yellow lines represent the re-interpolation of the surface in the MRI volume. The computation may take a while, but the result will be stored in the surface file, and will be useful for other operations anyway. == What happened on the hard drive == For most manipulations, it is not necessary to know exactly what is going on at the level of the file system, in the Brainstorm database directory. However, many things are not accessible from the Brainstorm interface, you may find sometimes useful to manipulate some piece of data directly from the Matlab command window. The '''right-click > File menu''', accessible on all the nodes in Brainstorm database explorer, offers many tools to interact with the file system and the Matlab environment. |
* Right-click on the 3D figure, select "Get coordinates". * Click anywhere on the cortex surface: a yellow cross appears and the coordinates of the point are displayed in all the available coordinates systems. * You can click on [View/MRI] to see where this point is located in the MRI, using the MRI Viewer. <<BR>><<BR>> {{attachment:surface_coordinates.gif||height="152",width="365"}} == Subcortical regions: Volume == The standard FreeSurfer segmentation pipeline generates multiple volume parcellations of anatomical regions, all including the ASEG subcortical parcellation. Double-click on a volume parcellation to open it for display. This opens the MRI Viewer with two volumes: the T1 MRI as the background, and the parcellation as a semi-transparent overlay. * Adjust the transparency of the overlay from the Surface tab, slider Transp. * The '''name of the region''' under the cursor appears at the top-right corner. The integer before this name is the label of the ROI, ie. the integer value of the voxel under the cursor in the parcellation volume.<<BR>><<BR>> {{attachment:aseg_volume.gif}} * Close the MRI viewer. * Double-click again on the subject's MRI to open it in the MRI viewer. * Observe that the anatomical label is also present at the top-right corner of this figure; in this case, the integer reprents the voxel value of the displayed MRI. This label information comes from the ASEG file: whenever there are volume parcellations available for the subject, one of them is loaded in the MRI Viewer by default. The name of the selected parcellation is displayed in the figure title bar. * You can change the selected parcellation with the right-click popup menu '''Anatomical atlas'''. You can change the parcellation scheme, disable its use to make the MRI work faster, or show the parcellation volume as an overlay (menu Show atlas). More information in the tutorial [[https://neuroimage.usc.edu/brainstorm/Tutorials/DefaultAnatomy#MNI_parcellations|Using anatomy templates]].<<BR>><<BR>> {{attachment:aseg_label.gif}} == Subcortical regions: Surface == Brainstorm reads the ASEG volume labels and tesselates some of these regions, then groups all the meshes in a large surface file where the regions are identified in an atlas called "Structures". It identifies: 8 bilateral structures (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus, cerebellum) and 1 central structure (brainstem). These structures can be useful for advanced source modeling, but will not be used in the introduction tutorials. Please refer to the advanced tutorials for more information: [[https://neuroimage.usc.edu/brainstorm/Tutorials/TutVolSource#Volume_scouts|Volume source estimation]] and [[http://neuroimage.usc.edu/brainstorm/Tutorials/DeepAtlas#Source_estimation|Deep cerebral structures]]. . {{attachment:aseg.gif||height="186",width="368"}} With the button '''[Struct]''' at the bottom of the Surface tab, you can see the structures separately. . {{attachment:resect_struct.gif||height="226",width="432"}} == Registration MRI/surfaces == The MRI and the surfaces are represented using the different coordinate systems and could be misregistered for various reasons. If you are using the automated segmentation pipeline from FreeSurfer or BrainSuite you should never have any problem, but if something goes wrong or in the case of more manual import procedures it is always good to check that the MRI and the surfaces are correctly aligned. * Right-click on the low-res cortex > MRI Registration > Check MRI/surface registration * The calculation of the interpolation between the MRI and the cortex surface takes a few seconds, but the result is then saved in the database and will be reused later. * The yellow lines represent the re-interpolation of the surface in the MRI volume.<<BR>><<BR>> {{attachment:surface_register.gif||height="216",width="271"}} <<TAG(Advanced)>> == Interaction with the file system == For most manipulations, it is not necessary to know exactly what is going on at the level of the file system, in the Brainstorm database directory. However, many things are not accessible from the Brainstorm interface, you may sometimes find it useful to manipulate some piece of data directly from the Matlab command window. |
Line 111: | Line 132: |
Several ways to reach a file: * Leave your mouse during a few seconds over any node in the database explorer, and a tooltip will appear, with the name and path of the corresponding file on the hard drive. <<BR>><<BR>> {{attachment:treeToolTip.gif}} * Paths are relative to current protocol path (''brainstorm_db/TutorialCTF''). What is displayed in the Brainstorm window is a comment and may have nothing to do with the real file name. Eg. the Cortex surface's real file name is ''tess_cortex_pial.mat''. * Almost all the files in the database (imported data or computation results) are in Matlab .mat format. As a consequence, you can load them really easily in the Matlab environment, where they appear as structures with several fields. |
* Leave your mouse for a few seconds over any node in the database explorer, a tooltip will appear with the name and path of the corresponding file on the hard drive. * Paths are relative to current protocol path (brainstorm_db/TutorialIntroduction). What is displayed in the Brainstorm window is a comment and may have nothing to do with the real file name. For instance, the file name corresponding to "head mask" is ''Subjec01/tess_head_mask.mat''. * Almost all the files in the database are in Matlab .mat format. You can load and edit them easily in the Matlab environment, where they appear as structures with several fields.<<BR>><<BR>> {{attachment:file_tooltip.gif||height="122",width="482"}} |
Line 118: | Line 137: |
Right-click on a surface file: many menus can lead you to the files and their contents: . {{attachment:treeFileMenu.gif}} * '''View file contents''': Display all the fields in the corresponding Matlab .mat file and the file path<<BR>><<BR>> {{attachment:fileViewMat.gif}} * '''View file history''': Review the History field in the file, that records all the operations that were performed on the file since if was imported in Brainstorm<<BR>><<BR>> {{attachment:fileViewHistory.gif}} * '''Export to file''': Export in one of the supported mesh file format |
Right-click on a surface file: many menus can lead you to the files and their contents. . {{attachment:file_menu.gif}} * '''View file contents''': Display all the fields in the Matlab .mat file. <<BR>><<BR>> {{attachment:file_contents.gif}} * '''View file history''': Review the History field in the file, that records all the operations that were performed on the file since if was imported in Brainstorm.<<BR>><<BR>> {{attachment:file_history.gif}} * '''Export to file''': Export in one of the supported mesh file format. |
Line 126: | Line 145: |
* '''Import from Matlab''': Replace the selected file with the content of a variable from the Matlab base workspace. Useful to save back in the database some structures that where exported and modified manually with the Matlab command window. * '''Copy / Cut / Paste''': Allow you to copy/move files in the database explorer. Keyboard shortcuts for those menus are the standard Windows shortcuts (Ctrl+C, Ctrl+X, Ctrl+V). The tree also support drag-and-drop operations for moving files between different folders. |
* '''Import from Matlab''': Replace the selected file with the content of a variable from the Matlab base workspace. Useful to save back in the database a structure that was exported and modified manually with the Matlab command window. * '''Copy / Cut / Paste''': Allow you to copy/move files in the database explorer. Keyboard shortcuts for these menus are the standard Windows shortcuts (Ctrl+C, Ctrl+X, Ctrl+V). The database explorer also supports drag-and-drop operations for moving files between different folders. |
Line 129: | Line 148: |
* '''Rename''': Change the Comment field in the file ("renames" the file in the database explorer, but does not rename the actual file on the hard drive). Keyboard shortcut: F2 | * '''Rename''': Change the Comment field in the file. It "renames" the file in the database explorer, but does not change the actual file name on the hard drive. Keyboard shortcut: F2 |
Line 132: | Line 151: |
* '''Show in file explorer''': Open an explorer window in this directory (not working on all the systems...) * '''Open terminal in this folder''': Start a system console in the file directory (Linux, Unix, MacOS only) ==== What are all those other files ? ==== * If you look in your ''brainstorm_db/TutorialCTF ''directory with the file explorer of your operating system, you'll find many other directories and files that are not visible in Brainstorm database explorer.<<BR>><<BR>> {{attachment:protocolFolders.gif}} * The protocol TutorialCTF is divided in ''Anatomy ''and ''Datasets ''directories: |
* '''Show in file explorer''': Open a file explorer window in this directory. * '''Open terminal in this folder''': Start a system console in the file directory (Linux and MacOS only). ==== What are all these other files ? ==== * If you look in ''brainstorm_db/TutorialIntroduction ''with the file explorer of your operating system, you'll find many other directories and files that are not visible in the database explorer.<<BR>><<BR>> {{attachment:file_disk.gif}} * The protocol TutorialIntroduction is divided in ''Anatomy ''and ''Datasets ''directories: |
Line 139: | Line 158: |
* Each condition in ''data ''is described by an extra file: ''brainstormstudy.mat'' * '''anat/@default_subject''': contains the files of the default anatomy ''(Default anatomy)'' * '''data/@default_study''': files shared between different subjects ''(Global common files)'' * '''data/@inter''': results of inter-subject analysis * '''data/Subject01/@default_study''': files shared between different conditions in Subject01 * '''data/Subject01/@intra''': results of intra-subject analysis (across different conditions) <<EmbedContent("http://neuroimage.usc.edu/bst/get_prevnext.php?prev=Tutorials/ImportAnatomy&next=Tutorials/ReviewRaw")>> |
* Each folder in ''data ''is described by an extra file: ''brainstormstudy.mat'' * '''anat/@default_subject''': Contains the files of the default anatomy ''(Default anatomy)'' * '''data/@default_study''': Files shared between different subjects ''(Global common files)'' * '''data/@inter''': Results of inter-subject analysis * '''data/Subject01/@default_study''': Files shared between different folders in Subject01 * '''data/Subject01/@intra''': Results of intra-subject analysis (across different folders) <<TAG(Advanced)>> == On the hard drive: MRI == Right-click on the MRI > File > View file contents: . {{attachment:contents_mri.gif||width="530"}} ==== Structure of the MRI files: subjectimage_*.mat ==== * '''Comment''': String displayed in the database explorer to represent the file. * '''Cube''': [Nsagittal x Ncoronal x Naxial] full MRI volume. Cube(1,1,1) is in the left, posterior, inferior corner. * '''Voxsize''': Size of one voxel in millimeters (sagittal, coronal, axial). * '''SCS''': Defines the [[CoordinateSystems|Subject Coordinate System]]. Points below are in MRI (millimeters) coordinates. * '''NAS''': (x,y,z) coordinates of the nasion fiducial. * '''LPA''': (x,y,z) coordinates of the left ear fiducial. * '''RPA''': (x,y,z) coordinates of the right ear fiducial. * '''R''': [3x3] rotation matrix from MRI coordinates to SCS coordinates. * '''T''': [3x1] translation matrix from MRI coordinates to SCS coordinates. * '''Origin''': MRI coordinates of the point with SCS coordinates (0,0,0). * '''NCS''': Defines the [[http://neuroimage.usc.edu/brainstorm/CoordinateSystems#MNI_coordinates|MNI coordinate system]], either with a linear or a non-linear transformation. * '''AC''': (x,y,z) coordinates of the Anterior Commissure. * '''PC''': (x,y,z) coordinates of the Posterior Commissure. * '''IH''': (x,y,z) coordinates of an Inter-Hemisperic point. * (Linear transformation) * '''R''': [3x3] rotation matrix from MRI coordinates to MNI coordinates. * '''T''': [3x1] translation matrix from MRI coordinates to MNI coordinates. * (Non-linear transformation) * '''iy''': 3D floating point matrix: Inverse MNI deformation field, as in SPM naming conventions. Same size as the Cube matrix, it gives for each voxel its coordinates in the MNI space, and is therefore used to convert from MRI coordinates to MNI coordinates. * '''y''': 3D floating point matrix: Forward MNI deformation field, as in SPM naming conventions. For some MNI coordinates, it gives their coorrespondance in the original MRI space. To be interpreted, it has to be used with the matrix y_vox2ras. * '''y_vox2ras''': [4x4 double], transformation matrix that converts from voxel coordinates of the y volume to MNI coordinates. * '''y_method''': Algorithm used for computing the normalization ('segment'=SPM12 Segment) * '''Origin''': MRI coordinates of the point with NCS coordinates (0,0,0). * '''Header''': Header from the original file format (.nii, .mgz, ...) * '''Histogram''': Result of the internal analysis of the MRI histogram, mainly to detect background level. * '''InitTransf''': [Ntransform x 2] cell-matrix: Transformations that are applied to the MRI before importing the surfaces. Example: {'vox2ras', [4x4 double]} * '''Labels''': [Nlabels x 3] cell-matrix: For anatomical parcellations, this field contains the names and RGB colors associated with each integer label in the volume. Example:<<BR>>{0, 'Background', [0 0 0]}<<BR>>{1, 'Precentral L', [203 142 203]} * '''History''': List of operations performed on this file (menu File > View file history). ==== Useful functions ==== * /toolbox/io/'''in_mri_bst'''(MriFile): Read a Brainstorm MRI file and compute the missing fields. * /toolbox/io/'''in_mri'''(MriFile, FileFormat=[]): Read a MRI file (format is auto-detected). * /toolbox/io/'''in_mri_*.m''': Low-level functions for reading all the file formats. * /toolbox/anatomy/'''mri_*.m''': Routines for manipulating MRI volumes. * /toolbox/gui/'''view_mri'''(MriFile, ...): Display an imported MRI in the MRI viewer. * /toolbox/gui/'''view_mri_3d'''(MriFile, ...): Display an imported MRI in a 3D figure. <<TAG(Advanced)>> == On the hard drive: Surface == Right-click on any cortex surface > File > View file contents: . {{attachment:file_contents.gif||height="271",width="529"}} ==== Structure of the surface files: tess_*.mat ==== * '''Atlas''': Array of structures, each entry is one menu in the drop-down list in the Scout tab. * '''Name''': Label of the atlas (reserved names: "User scouts", "Structures", "Source model") * '''Scouts''': List of regions of interest in this atlas, see the [[http://neuroimage.usc.edu/brainstorm/Tutorials/Scouts#On_the_hard_drive|Scout tutorial]]. * '''Comment''': String displayed in the database explorer to represent the file. '' '' * '''Curvature''': [Nvertices x 1], curvature value at each point. * '''Faces''': [Nfaces x 3], triangles constituting the surface mesh. * '''History''': List of operations performed on this file (menu File > View file history). * '''iAtlas''': Index of the atlas that is currently selected for this surface. * '''Reg''': Structure with registration information, used to interpolate the subject's maps on a template. * '''Sphere.Vertices''': Location of the surface vertices on the [[Tutorials/CoregisterSubjects|FreeSurfer registered spheres]]. * '''Square.Vertices''': Location of the surface vertices in the [[http://neuroimage.usc.edu/brainstorm/Tutorials/CoregisterSubjects#Registration_with_BrainSuite|BrainSuite atlas]]. * '''AtlasSquare.Vertices''': Corresponding vertices in the high-resolution [[http://neuroimage.usc.edu/brainstorm/Tutorials/CoregisterSubjects#Registration_with_BrainSuite|BrainSuite atlas]]. * '''SulciMap''': [Nvertices x 1], binary mask marking the botton of the sulci (1=displayed as darker). * '''tess2mri_interp''': [Nvoxels x Nvertices] sparse interpolation matrix MRI<=>surface. * '''VertConn''': [Nvertices x Nvertices] Sparse adjacency matrix, VertConn(i,j)=1 if i and j are neighbors. * '''Vertices''': [Nvertices x 3], coordinates (x,y,z) of all the points of the surface, in SCS coordinates. * '''VertNormals''': [Nvertices x 3], direction (x,y,z) of the normal to the surface at each vertex. ==== Useful functions ==== * /toolbox/io/'''in_tess_bst'''(SurfaceFile): Read a Brainstorm surface file and compute the missing fields. * /toolbox/io/'''in_tess'''(TessFile, FileFormat=[], sMri=[]): Read a surface file (format is auto-detected). * /toolbox/io/'''in_tess_*.m''': Low-level functions for reading all the file formats. * /toolbox/anatomy/'''tess_*.m''': Routines for manipulating surfaces. * /toolbox/gui/'''view_surface'''(SurfaceFile, ...): Display an imported surface in a 3D figure. * /toolbox/gui/'''view_surface_data'''(SurfaceFile, OverlayFile, ...): Display a surface with a source map. * /toolbox/gui/'''view_surface_matrix'''(Vertices, Faces, ...): Display a mesh in a 3D figure. <<HTML(<!-- END-PAGE -->)>> <<EmbedContent("http://neuroimage.usc.edu/bst/get_prevnext.php?prev=Tutorials/ImportAnatomy&next=Tutorials/ChannelFile")>> |
Tutorial 3: Display the anatomy
Authors: Francois Tadel, Elizabeth Bock, Sylvain Baillet
Contents
Anatomy folder
The anatomy of the subject "Subject01" should now contain all the files Brainstorm could import from the FreeSurfer segmentation results:
MRI: T1-weighted MRI, resampled and re-aligned by FreeSurfer.
ASEG / DKT / Desikan-Killiany / Destrieux: Volume parcellations (including subcortical regions)
Head mask: Head surface, generated by Brainstorm.
If this doesn't look good for your subject, you can recalculate another head surface using different parameters: right-click on the subject folder > Generate head surface.Cortex_336231V: High-resolution pial envelope generated by FreeSurfer.
Cortex_15002V: Low-resolution pial envelope, downsampled from the original one by Brainstorm.
Cortex_cereb_17005V: Low-res pial envelope + cerebellum surface extracted from ASEG
White_*: White matter envelope, high and low resolution.
Mid_*: Surface that represents the mid-point between the white and cortex envelopes.
Subcortical: Save FreeSurfer subcortical regions as in the ASEG volume, but tesselated as surfaces.
For more information about the files generated by FreeSurfer, read the FreeSurfer page.
Default surfaces
- There are four possible surface types: cortex, inner skull, outer skull, head.
- For each type of surface, one file is selected as the one to use by default for all the operations.
This selected surface is displayed in green.
- Here, there is only one "head" surface, which is selected.
The mid, cortex and white surfaces can all be used as "cortex" surfaces, only one can be selected at a time. By default, the low-resolution cortex should be selected and displayed in green.
To select a different cortex surface, you can double-click on it or right-click > Set as default.
MRI Viewer
Right-click on the MRI to get the list of the available display menus:
Open the MRI Viewer. This interface was already introduced in the previous tutorial. It corresponds to the default display menu if you double-click on the MRI from the database explorer. Description of the window:
MIP Anatomy: Maximum Intensity Projection. When this option is selected, the MRI viewer shows the maximum intensity value across all the slices in each direction. This maximum does not depend on the selected slice, therefore if you move the cursor, the image stays the same.
Neurological/Radiological: There are two standard orientations for displaying medical scans. In the neurological orientation, the left hemisphere is on the left of the image, in the radiological orientation the left hemisphere is on the right of the image.
Coordinates: Position of the cursor in different coordinate systems. See: CoordinateSystems
Colormap: Click on the colorbar and move up/down (brightness) or left/right (contrast)
Popup menu: All the figures have additional options available in a popup menu, accessible with a right-click on the figure. The colormap options will be described later in the tutorials, you can test the other options by yourself.
MRI contact sheets
You can get collections of slices in any direction (axial, coronal or sagittal) with the popup menus in the database explorer or the MRI Viewer figure.
Zoom: mouse wheel (or two finger-move on a MacBook pad)
Move in zoomed image: click + move
Adjust contrast: right click + move up/down
MRI in 3D
Right-click on the MRI file in the database explorer > Display > 3D orthogonal slices.
Simple mouse operations:
Rotate: Click + move. Note that two different types of rotations are available: at the center of the figure the object will follow you mouse, on the sides it will do a 2D rotation of the image.
Zoom: Mouse wheel, or two finger-move on a MacBook pad.
Move: Left+right click + move (or middle-click + move).
Colormap: Click on the colorbar and move up/down (brightness) or left/right (contrast).
Reset view: Double click anywhere on the figure.
Reset colormap: Double-click on the colorbar.
Move slices: Right click on the slice to move + move.
(or use the Resect panel in the Surface tab)
- Popup operations (right-click on the figure):
Colormap: Edit the colormap, detailed in another tutorial.
MRI display: For now, contains mostly the MIP option (Maximum Intensity Projection).
Get coordinates: Pick a point in any 3D view and get its coordinates.
Snapshots: Save images or movies from this figure.
Figure: Change some of the figure options or edit it using the Matlab tools.
Views: Set one of the predefined orientation.
- Note the indications in the right part of the popup menu, they represent the keyboard shortcut for each menu.
- Keyboard shortcuts:
Views shortcuts (0,1,2...9 and [=]): Remember them, they will be very useful when exploring the cortical sources. To switch from left to right, it is much faster to press a key than having to rotate the brain with the mouse.
Zoom: Keys [+] and [-] for zooming in and out.
Move slices: [x]=Sagittal, [y]=Coronal, [z]=Axial, hold [shift] for reverse direction.
- Surface tab (in the main Brainstorm window, right of the database explorer):
- This panel is primarily dedicated to the display of the surfaces, but some controls can also be useful for the 3D MRI view.
Transparency: Changes the transparency of the slices.
Smooth: Changes the background threshold applied to the MRI slices. If you set it zero, you will see the full slices, as extracted from the volume.
Resect: Changes the position of the slices in the three directions.
Surfaces
To display a surface you can either double-click on it or right-click > Display. The tab "Surface" contains buttons and sliders to control the display of the surfaces.
- The mouse and keyboard operations described for the 3D MRI view also apply here.
Smooth: Inflates the surface to make all the parts of the cortex envelope visible.
This is just a display option, it does not actually modify the surface.Color: Changes the color of the surface.
Sulci: Shows the bottom of the cortical folds with a darker color. We recommend to keep this option selected for the cortex, it helps for the interpretation of source locations on smoothed brains.
Edge: Display the faces of the surface tesselation.
Resect: The sliders and the buttons Left/Right/Struct at the bottom of the panel allow you to cut the surface or reorganize the anatomical structures in various ways.
Multiple surfaces: If you open two surfaces from the same subject, they will be displayed on the same figure. Then you need to select the surface you want to edit before changing its properties. The list of available surfaces is displayed at the top of the Surface tab.
At the bottom of the Surface tab, you can read the number of vertices and faces in the tesselation.
Get coordinates
- Close all the figures. Open the cortex surface again.
- Right-click on the 3D figure, select "Get coordinates".
- Click anywhere on the cortex surface: a yellow cross appears and the coordinates of the point are displayed in all the available coordinates systems.
You can click on [View/MRI] to see where this point is located in the MRI, using the MRI Viewer.
Subcortical regions: Volume
The standard FreeSurfer segmentation pipeline generates multiple volume parcellations of anatomical regions, all including the ASEG subcortical parcellation. Double-click on a volume parcellation to open it for display. This opens the MRI Viewer with two volumes: the T1 MRI as the background, and the parcellation as a semi-transparent overlay.
- Adjust the transparency of the overlay from the Surface tab, slider Transp.
The name of the region under the cursor appears at the top-right corner. The integer before this name is the label of the ROI, ie. the integer value of the voxel under the cursor in the parcellation volume.
- Close the MRI viewer.
- Double-click again on the subject's MRI to open it in the MRI viewer.
- Observe that the anatomical label is also present at the top-right corner of this figure; in this case, the integer reprents the voxel value of the displayed MRI. This label information comes from the ASEG file: whenever there are volume parcellations available for the subject, one of them is loaded in the MRI Viewer by default. The name of the selected parcellation is displayed in the figure title bar.
You can change the selected parcellation with the right-click popup menu Anatomical atlas. You can change the parcellation scheme, disable its use to make the MRI work faster, or show the parcellation volume as an overlay (menu Show atlas). More information in the tutorial Using anatomy templates.
Subcortical regions: Surface
Brainstorm reads the ASEG volume labels and tesselates some of these regions, then groups all the meshes in a large surface file where the regions are identified in an atlas called "Structures". It identifies: 8 bilateral structures (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus, cerebellum) and 1 central structure (brainstem).
These structures can be useful for advanced source modeling, but will not be used in the introduction tutorials. Please refer to the advanced tutorials for more information: Volume source estimation and Deep cerebral structures.
With the button [Struct] at the bottom of the Surface tab, you can see the structures separately.
Registration MRI/surfaces
The MRI and the surfaces are represented using the different coordinate systems and could be misregistered for various reasons. If you are using the automated segmentation pipeline from FreeSurfer or BrainSuite you should never have any problem, but if something goes wrong or in the case of more manual import procedures it is always good to check that the MRI and the surfaces are correctly aligned.
Right-click on the low-res cortex > MRI Registration > Check MRI/surface registration
- The calculation of the interpolation between the MRI and the cortex surface takes a few seconds, but the result is then saved in the database and will be reused later.
The yellow lines represent the re-interpolation of the surface in the MRI volume.
Interaction with the file system
For most manipulations, it is not necessary to know exactly what is going on at the level of the file system, in the Brainstorm database directory. However, many things are not accessible from the Brainstorm interface, you may sometimes find it useful to manipulate some piece of data directly from the Matlab command window.
Where are the files ?
- Leave your mouse for a few seconds over any node in the database explorer, a tooltip will appear with the name and path of the corresponding file on the hard drive.
Paths are relative to current protocol path (brainstorm_db/TutorialIntroduction). What is displayed in the Brainstorm window is a comment and may have nothing to do with the real file name. For instance, the file name corresponding to "head mask" is Subjec01/tess_head_mask.mat.
Almost all the files in the database are in Matlab .mat format. You can load and edit them easily in the Matlab environment, where they appear as structures with several fields.
Popup menu: File
Right-click on a surface file: many menus can lead you to the files and their contents.
View file contents: Display all the fields in the Matlab .mat file.
View file history: Review the History field in the file, that records all the operations that were performed on the file since if was imported in Brainstorm.
Export to file: Export in one of the supported mesh file format.
Export to Matlab: Load the contents of the .mat file in the Matlab base workspace. It is then accessible from the Matlab command window.
Import from Matlab: Replace the selected file with the content of a variable from the Matlab base workspace. Useful to save back in the database a structure that was exported and modified manually with the Matlab command window.
Copy / Cut / Paste: Allow you to copy/move files in the database explorer. Keyboard shortcuts for these menus are the standard Windows shortcuts (Ctrl+C, Ctrl+X, Ctrl+V). The database explorer also supports drag-and-drop operations for moving files between different folders.
Delete: Delete a file. Keyboard shortcuts: Delete key.
Rename: Change the Comment field in the file. It "renames" the file in the database explorer, but does not change the actual file name on the hard drive. Keyboard shortcut: F2
Copy file path to clipboard: Copies the full file name into the system clipboard, so that you can paste it in any other window (Ctrl+V or Paste menu)
Go to this directory (Matlab): Change the current Matlab path, so that you can access the file from the Matlab Command window or the Matlab Current directory window
Show in file explorer: Open a file explorer window in this directory.
Open terminal in this folder: Start a system console in the file directory (Linux and MacOS only).
What are all these other files ?
If you look in brainstorm_db/TutorialIntroduction with the file explorer of your operating system, you'll find many other directories and files that are not visible in the database explorer.
The protocol TutorialIntroduction is divided in Anatomy and Datasets directories:
Each subject in anat is described by an extra file: brainstormsubject.mat
Each folder in data is described by an extra file: brainstormstudy.mat
anat/@default_subject: Contains the files of the default anatomy (Default anatomy)
data/@default_study: Files shared between different subjects (Global common files)
data/@inter: Results of inter-subject analysis
data/Subject01/@default_study: Files shared between different folders in Subject01
data/Subject01/@intra: Results of intra-subject analysis (across different folders)
On the hard drive: MRI
Right-click on the MRI > File > View file contents:
Structure of the MRI files: subjectimage_*.mat
Comment: String displayed in the database explorer to represent the file.
Cube: [Nsagittal x Ncoronal x Naxial] full MRI volume. Cube(1,1,1) is in the left, posterior, inferior corner.
Voxsize: Size of one voxel in millimeters (sagittal, coronal, axial).
SCS: Defines the Subject Coordinate System. Points below are in MRI (millimeters) coordinates.
NAS: (x,y,z) coordinates of the nasion fiducial.
LPA: (x,y,z) coordinates of the left ear fiducial.
RPA: (x,y,z) coordinates of the right ear fiducial.
R: [3x3] rotation matrix from MRI coordinates to SCS coordinates.
T: [3x1] translation matrix from MRI coordinates to SCS coordinates.
Origin: MRI coordinates of the point with SCS coordinates (0,0,0).
NCS: Defines the MNI coordinate system, either with a linear or a non-linear transformation.
AC: (x,y,z) coordinates of the Anterior Commissure.
PC: (x,y,z) coordinates of the Posterior Commissure.
IH: (x,y,z) coordinates of an Inter-Hemisperic point.
- (Linear transformation)
R: [3x3] rotation matrix from MRI coordinates to MNI coordinates.
T: [3x1] translation matrix from MRI coordinates to MNI coordinates.
- (Non-linear transformation)
iy: 3D floating point matrix: Inverse MNI deformation field, as in SPM naming conventions. Same size as the Cube matrix, it gives for each voxel its coordinates in the MNI space, and is therefore used to convert from MRI coordinates to MNI coordinates.
y: 3D floating point matrix: Forward MNI deformation field, as in SPM naming conventions. For some MNI coordinates, it gives their coorrespondance in the original MRI space. To be interpreted, it has to be used with the matrix y_vox2ras.
y_vox2ras: [4x4 double], transformation matrix that converts from voxel coordinates of the y volume to MNI coordinates.
y_method: Algorithm used for computing the normalization ('segment'=SPM12 Segment)
Origin: MRI coordinates of the point with NCS coordinates (0,0,0).
Header: Header from the original file format (.nii, .mgz, ...)
Histogram: Result of the internal analysis of the MRI histogram, mainly to detect background level.
InitTransf: [Ntransform x 2] cell-matrix: Transformations that are applied to the MRI before importing the surfaces. Example: {'vox2ras', [4x4 double]}
Labels: [Nlabels x 3] cell-matrix: For anatomical parcellations, this field contains the names and RGB colors associated with each integer label in the volume. Example:<<BR>>{0, 'Background', [0 0 0]}
{1, 'Precentral L', [203 142 203]}History: List of operations performed on this file (menu File > View file history).
Useful functions
/toolbox/io/in_mri_bst(MriFile): Read a Brainstorm MRI file and compute the missing fields.
/toolbox/io/in_mri(MriFile, FileFormat=[]): Read a MRI file (format is auto-detected).
/toolbox/io/in_mri_*.m: Low-level functions for reading all the file formats.
/toolbox/anatomy/mri_*.m: Routines for manipulating MRI volumes.
/toolbox/gui/view_mri(MriFile, ...): Display an imported MRI in the MRI viewer.
/toolbox/gui/view_mri_3d(MriFile, ...): Display an imported MRI in a 3D figure.
On the hard drive: Surface
Right-click on any cortex surface > File > View file contents:
Structure of the surface files: tess_*.mat
Atlas: Array of structures, each entry is one menu in the drop-down list in the Scout tab.
Name: Label of the atlas (reserved names: "User scouts", "Structures", "Source model")
Scouts: List of regions of interest in this atlas, see the Scout tutorial.
Comment: String displayed in the database explorer to represent the file.
Curvature: [Nvertices x 1], curvature value at each point.
Faces: [Nfaces x 3], triangles constituting the surface mesh.
History: List of operations performed on this file (menu File > View file history).
iAtlas: Index of the atlas that is currently selected for this surface.
Reg: Structure with registration information, used to interpolate the subject's maps on a template.
Sphere.Vertices: Location of the surface vertices on the FreeSurfer registered spheres.
Square.Vertices: Location of the surface vertices in the BrainSuite atlas.
AtlasSquare.Vertices: Corresponding vertices in the high-resolution BrainSuite atlas.
SulciMap: [Nvertices x 1], binary mask marking the botton of the sulci (1=displayed as darker).
tess2mri_interp: [Nvoxels x Nvertices] sparse interpolation matrix MRI<=>surface.
VertConn: [Nvertices x Nvertices] Sparse adjacency matrix, VertConn(i,j)=1 if i and j are neighbors.
Vertices: [Nvertices x 3], coordinates (x,y,z) of all the points of the surface, in SCS coordinates.
VertNormals: [Nvertices x 3], direction (x,y,z) of the normal to the surface at each vertex.
Useful functions
/toolbox/io/in_tess_bst(SurfaceFile): Read a Brainstorm surface file and compute the missing fields.
/toolbox/io/in_tess(TessFile, FileFormat=[], sMri=[]): Read a surface file (format is auto-detected).
/toolbox/io/in_tess_*.m: Low-level functions for reading all the file formats.
/toolbox/anatomy/tess_*.m: Routines for manipulating surfaces.
/toolbox/gui/view_surface(SurfaceFile, ...): Display an imported surface in a 3D figure.
/toolbox/gui/view_surface_data(SurfaceFile, OverlayFile, ...): Display a surface with a source map.
/toolbox/gui/view_surface_matrix(Vertices, Faces, ...): Display a mesh in a 3D figure.