Defining a new atlas

Hi,

I have been analyzing EEG functional connectivity in source space based on a head model that was generated in brainstorm. This is the cortical mesh I have. In our project, we are comparing connectivity in EEG and fMRI. For that, we would like to use the same cortical atlas in both modalities. The Craddock atlas has been applied to the fMRI dataset already, so it would be convenient to apply it to the cortical mesh from brainstorm as well.

Is there any way to import an atlas (nii.gz file) and apply it to a headmodel in brainstorm? I saw some older posts from 2016 where it did not seem to work yet, but I am hoping there were some updates. If not does anyone know another way to do this?

I would greatly appreciate some help.

Best,
Max

Hello

You can can load your own atlases, but you need to use a surface atlas for a surface source model, and a volume atlas for a volume source model. If your atlas is available as a volume only, either you need to find a way to project it on the cortex surface (Brainstorm does this but in a very inaccurate way, I don't recommend it) or use a volume source model.

  1. Surface atlas = a FreeSurfer .annot or .label file.
    To load it into Brainstorm: https://neuroimage.usc.edu/brainstorm/Tutorials/LabelFreeSurfer#Manual_import_of_the_anatomy

  2. Volume atlas = a .nii volume file
    https://neuroimage.usc.edu/brainstorm/Tutorials/TutVolSource#Volume_atlases

1 Like

Hi François,

Thanks for distinguishing those two options. I have been able to import any surface based atlas by your guidance.

The tutorial on volume based atlases makes sense, but I was wondering if there is any way to export volume based atlases from the anatomy before computing sources? I have a script from a collaborator to compute sources for over 1k subjects and it would be time consuming to set that up again. If I can export some file with the volume atlas in the same space as the surface atlas I could try to match them somehow.

Best,
Max

I'm sorry, I'm not following what you are trying to do here.
Can you please illustrate your question with a few screen captures? show what files you have in your database and what kind of information you are expecting to export? and what you are trying to do with them?

Hi François,

I was trying to export a volumetric atlas as in the screenshot attached. I managed to do this by importing EEG data and computing sources. What I was trying to do is to get the vertices in the volume purely anatomical without having to use data and then run the preprocessing outside the GUI.

Anyway, thanks for your help!

Best,
Max

Export which information? in which format?
Please describe your input files and output files, all the steps that you used from the interface, add a screen capture showing your files in the database explorer, and I can try to find a solution for you to automate this task if you need it.

Hi all, my question is related to the extraction of virtual channels and atlas correspondence. I'm studying several patients pre/post surgery . My question relates to the definition of the source space that will be subject specific. In case of cortical space , the definition of the removed scout is not easy as the segmentation of post-surgical mri can have errors and defining well the resected zone is not easy. The volume space seems more suitable as I can define by myself the grid, coregister the images and extract t the remaining source points on the same grid. My question is regarding the atlas correspondence. Using more parcellated atlases as defined in CAT (i.e. Schaefer ) the number or regions misses some ROIs( I'm not sure if a more parcellated volume is needed, ,I tried the 5mm as default , as I wanted to have quick results) .Is there a function inside bst where I can easily associate the source location and the atlas definition name ?It is clearly plotted in the figure but I would like to have access to this correspondence. I would like to have a clear definition of the resected zone.

My question is regarding the atlas correspondence. Using more parcellated atlases as defined in CAT (i.e. Schaefer ) the number or regions misses some ROIs( I'm not sure if a more parcellated volume is needed, ,I tried the 5mm as default , as I wanted to have quick results)

What do you mean by missing ROIs?
If you need help with this part, please post screen captures illustrating your issues (showing the files in the database, the volume parcellation, the process options...)

Is there a function inside bst where I can easily associate the source location and the atlas definition name ?

The source indices of all the scouts are available in the cortex surface:
https://neuroimage.usc.edu/brainstorm/Tutorials/Scouts#On_the_hard_drive
https://neuroimage.usc.edu/brainstorm/Tutorials/HeadModel#On_the_hard_drive

To convert indices between surface, volume grid (GridLoc matrix), and source file, you can use the function bst_convert_indices.m. Search the forumor read the file header for help: brainstorm3/toolbox/inverse/bst_convert_indices.m at master · brainstorm-tools/brainstorm3 · GitHub

Many new tools were added recently in Brainstorm to deal with anatomical atlases (and many more will be added added next year).
Please check the new tutorials and make sure you work with an updated version of Brainstorm.

[quote="Francois, post:8, topic:11662"]

My question is regarding the atlas correspondence. Using more parcellated atlases as defined in CAT (i.e. Schaefer ) the number or regions misses some ROIs( I'm not sure if a more parcellated volume is needed, ,I tried the 5mm as default , as I wanted to have quick results)

> What do you mean by missing ROIs?

I tried to use Schaefer(400-600) in order to have higher parcellation and define better the post-surgical zone removed . Using a fixed volumetric grid of 5mm, and then estimating " from subject anatomy" the atlas Shaefer which corresponds to a specific grid that I used(whole brain 5mm), I obtain less than 400(397 ) or 593 (instead of 600) ROI that I would have have estimating the -cortical sources& cortical scouts. I 'm talking about the pre-surgical, whole brain. I used the volumetric source because I wanted to have the same grid so I could easily have the correspondence before-after surgery and define exactly the grid points removed. I suppose that some regions are not defined with coarse grid and surface based atlases.
I tried then to use the surface based atlases before and after and extract the brain regions. In this case I have bad results in the post-surgical cortex, as the ROIs are "wrongly " estimated . (In fig. 1)

I have the symmetrical left/right temporal pole which was clearly removed as it can be seen from MRI and cortex .
So my question is : how can I have the same pre-post segmentation(volumetric or cortical) so I can export the scouts /ROIs, correctly excluding those which are removed with surgery?

I suppose that some regions are not defined with coarse grid and surface based atlases.

Indeed, the ROIs in the Schaefer400 atlas can be smaller than the 5mm grid.
Therefore some of the Schaefer400 would be missing if you use it to define volume scouts.

So my question is : how can I have the same pre-post segmentation(volumetric or cortical) so I can export the scouts /ROIs, correctly excluding those which are removed with surgery?

In understand that you want to:

  1. delineate the resection in the post-surgery MRI
  2. get the corresponding scouts in the pre-surgery MRI

The best solution probably depends on what you want to do with this result.
a) Is it only to be able to represent the resection in a standard space (ie. the list of parcels from the Schaefer400 parcelation)? Or
b) is it for doing some ROI-based source-level analysis in Brainstorm?

First of all, I don't think that trying to run the segmentation of the post-resection MRI would help much.
If you are interested in the a list of source points that are included in the resection, you should probably try to create a new volume scout (in a new volume atlas) from a grid covering the entire head that covers the resection, by drawing it point by point on the post MRI (read the tooltip for the Create scout button it should explain how to do this).

Then to get the list of grid points included in a scout, this is an information that you can find in the cortex surface structure (field Scout(i).Vertices):
https://neuroimage.usc.edu/brainstorm/Tutorials/Scouts#On_the_hard_drive
You can finally compare the list of vertices in this resection scout, with the list of vertices in all the scouts of the Schaefer400 atlas. This requires some Matlab scripting, the function ismember might help.