Cerebellum source space: how to get surface convex hull sources?

Hello. I would like to perform MEG source reconstruction of Cerebellum sources located on the (outer, simple-shaped) surface of the Cerebellum and I donā€™t understand how to do it.
There is an example on the MNE website allowing to get volume sources for Cerebellum (but not surface once). I want to reduce the number of sources and restrict myself to the surface ones. But for the surface sources one has to do something different because the setup_source_space and setup_volume_source_space have different arguments (in particular one cannot just provide a volume label).

If I understand well, the way to go it to provide a surface that contains Cerebellum to setup_source_space and then select Cerebellum-related source using an appropriate atlas. The problem is that my knowledge of freesurfer and its interaction with MNE is not solid enough so I donā€™t know

  1. what is the right surface to use (is there a ready one or I have to recreate a new one?) and
  2. what is the right atlas to use (if I understand well, many atlases donā€™t contain Cerebellum).

Could you help me with these two issues?

Iā€™m using latest stable version MNE 1.2 on Ubuntu 20 (though perhaps it is not important for this question).

@demitau

I donā€™t think that freesurfer outputs a cerebellar surface, just a volumetric mask/classification that you can use to assemble a sorce space.

The cerebellum surface area is huge (internet says 80% of cortical surface) - so you will likely have even more surface points than volume points.

If you want to reduce the number of volume points, just increase your volumetric sampling size so there are less sources in your source space.

ā€“Jeff

1 Like

Sorry for confusion, I did not mean surface of the cerebellum in the sense of caring about all of its super complex geometry. I just want the surface of the outer convex hull of the cerebellum, especially its part that is closest to the MEG sensors (I realize I have not mentioned that I am working with MEGā€¦).

But if I were to follow your advise on increasing volumetric sampling size, do you know how could I do it? Just looking at documentation for setup_volume_source_space function I donā€™t see which parameter should control it.

The pos variable in setup_volume_source_space sets the grid sampling size, just increase it to whatever you need (the default 5mm is a typical good choice though).

If you want the outer surface of the cerebellum - you can probably do this in 3Dslicer software from the labelled voxels. I just donā€™t know how you would import those surfaces back into MNE. I would try the volume based methods first, since it will be easier to get to an end result and you wonā€™t be gaining any benefit from the surface, since you cant use the surface orientation in your model.

ā€“Jeff

1 Like

Thanks! I will try to do it this way.

Hello again. I have tried to follow your suggestion but unfortunately pos argument of setup_volume_source_space seems to have no effect. The number of sources I get is always the same, whether it is 4, 40 or 400. Do you know what am I doing wrong?

conductivity = (0.3,)  # for single layer
model = mne.make_bem_model(subject=subject, ico=4,
                           conductivity=conductivity,
                           subjects_dir=subjects_dir)
bem = mne.make_bem_solution(model)

volume_label = 'Left-Cerebellum-Cortex'
lh_cereb = mne.setup_volume_source_space(
    subject,  volume_label=volume_label, bem=bem, 
    subjects_dir=subjects_dir, pos=CB_spacing)

volume_label = 'Right-Cerebellum-Cortex'
rh_cereb = mne.setup_volume_source_space(
    subject,  volume_label=volume_label, bem=bem, 
    subjects_dir=subjects_dir, pos=CB_spacing)

<volume (Left-Cerebellum-Cortex), n_used=431>, <volume (Right-Cerebellum-Cortex), n_used=455>]

@demitau - I used your included code and got a different result from what you found:

CB_spacing = 4.0
volume_label = 'Left-Cerebellum-Cortex'
lh_cereb = mne.setup_volume_source_space(
    subject,  volume_label=volume_label, bem=bem, 
    subjects_dir=subjects_dir, pos=CB_spacing)


CB_spacing = 10.0
volume_label = 'Left-Cerebellum-Cortex'
lh_cereb2 = mne.setup_volume_source_space(
    subject,  volume_label=volume_label, bem=bem, 
    subjects_dir=subjects_dir, pos=CB_spacing)
lh_cereb
Out[19]: <SourceSpaces: [<volume (Left-Cerebellum-Cortex), n_used=690>] MRI (surface RAS) coords, subject 'sub-ON02747', ~78.4 MB>

lh_cereb2
Out[20]: <SourceSpaces: [<volume (Left-Cerebellum-Cortex), n_used=46>] MRI (surface RAS) coords, subject 'sub-ON02747', ~65.2 MB>

In the first example its a 4mm sampling and I get 690 sources, in the second its a 10mm sampling and I get 46 sources. So it does appear to be downsampling the source space using the pos flag. I tested this on mne version 1.2.1, but it should work on earlier versions as well. Not sure why you are seeing different results.

ā€“Jeff

I have found a problem that was not related to MNE (I have copied in the message only a part of the code inside an ā€˜ifā€™ clause that did not get actually executed).
After solving it I have gotten results similar to yours.

Sorry for confusion and thanks for the advice!