[FieldTrip] AAL atlas interpolation and parcellation

Schoffelen, J.M. (Jan Mathijs) jan.schoffelen at donders.ru.nl
Wed Dec 30 14:36:12 CET 2020


Hi Philip,

That’s indeed correct: the ‘pos’-field is exchangeable. The idea behind topologically equivalent is the fact that corresponding vertices (in different subject-specific meshes) are aligned once these meshes are inflated into a sphere.

Best wishes,.
Jan-Mathijs


On 25 Dec 2020, at 02:09, Philip Cho <pnc9 at georgetown.edu<mailto:pnc9 at georgetown.edu>> wrote:

Thank you so much! I really appreciate the help -- the cortical atlas was exactly what I was looking for. You mentioned that the atlas is defined from the same topological mesh as the individual subject data, but I noticed that the .pos fields are different between the two, and FieldTrip is asking that I interpolate. Is it appropriate to just set source.pos=atlas.pos and move forward? I'm getting results that seem potentially feasible, but I'm hesitant whether that step was done appropriately. Thanks again!

Best,
Philip

On Sun, Dec 20, 2020 at 4:42 AM Schoffelen, J.M. (Jan Mathijs) <jan.schoffelen at donders.ru.nl<mailto:jan.schoffelen at donders.ru.nl>> wrote:
Dear Philip,

You’re right: since the source model that you used for inverse modelling is strictly constrained to the neocortex, the inverse result does not cover subcortical structures.
In general, I’d recommend against using a volumetrically defined parcellation (as is the AAL atlas shipped with FieldTrip) for a cortically-constrained source reconstruction (or the other way around).

I suggest you use the finer-grained Brodmann area constrained cortical atlas as available in the “Sensory modality independent activation of the brain network for language” data sharing collection on the Donders data repository. I noticed your name on the history of this collection, so I’d assume you know where to find it. The relevant file is the one whose name starts with “atlas”, in the metadata&templates folder. This atlas is defined on exactly the same topological mesh as the individual subject data, which makes the parcellation step very straightforward.

Next to this, I’d recommend you to have a look at the relatively new ‘ft_virtualchannel’ function. There is a little bit of documentation on the website about this. The bottom line is, that this function supports a parcellation (in addition to a source-level structure with spatial filters and sensor level single trial data) in the input. This allows you to obtain parcel-level single trial time series, which is not possible with ft_sourceparcellate.

Best wishes,
Jan-Mathijs


> On 20 Dec 2020, at 09:06, Philip Cho <pnc9 at georgetown.edu<mailto:pnc9 at georgetown.edu>> wrote:
>
> Dear FieldTrip Community,
>
> I am currently trying to obtain the source-level signal in a few anatomically defined ROIs, and so I'm interpolating the AAL atlas onto the 8196-vertex cortical surface template (since I previously used that to inverse-normalize onto my subject MRIs), and I'm using ft_sourceparcellate to obtain my results. However, I'm facing an error, which I believe stems from the fact that some labels (e.g. putamen, pallidum, cerebellum, vermis) are not present in my tissue after interpolation. Please let me know if any advice is available. Thank you very much.
>
> My code is as follows:
>
> function parc_source = mous2_sourceParcellate(sublist)
>
> %load atlas
> atlas = ft_read_atlas('C:\fieldtrip-20201205\template\atlas\aal\ROI_MNI_V4.nii');
>
> %load sourcemodel (to get its .pos field)
> ftpath   = 'C:\fieldtrip-20201205';
> sourcemodel = ft_read_headshape(fullfile(ftpath, 'template\sourcemodel\cortex_8196.surf.gii'));
>
> cfg_int = [];
> cfg_int.interpmethod = 'nearest';
> cfg_int.parameter = 'tissue';
> atlas_int = ft_sourceinterpolate(cfg_int,atlas,sourcemodel);
>
> for sub = sublist
>     %load source
>     load(['D:\MOUS2\results\sourceanalysis_low_depth\source_low_depth_' sub{1} '.mat']);
>     source_allWords = ft_datatype_source(source_allWords);
>     source_allWords.pos = sourcemodel.pos;
>
>     %parcellate
>     cfg = [];
>     cfg.method = 'mean';
>     cfg.parameter = 'all';
>     parc_source = ft_sourceparcellate(cfg,source_allWords,atlas_int);
> end
>
>
>
> And the last part of the command line message, including the error, is as follows:
>
> there is no "Putamen_L" in "tissue"
> there is no "Pallidum_L" in "tissue"
> there is no "Pallidum_R" in "tissue"
> there is no "Cerebellum_Crus1_R" in "tissue"
> there is no "Cerebellum_Crus2_L" in "tissue"
> there is no "Cerebellum_Crus2_R" in "tissue"
> there is no "Cerebellum_3_L" in "tissue"
> there is no "Cerebellum_3_R" in "tissue"
> there is no "Cerebellum_4_5_L" in "tissue"
> there is no "Cerebellum_6_L" in "tissue"
> there is no "Cerebellum_6_R" in "tissue"
> there is no "Cerebellum_7b_L" in "tissue"
> there is no "Cerebellum_7b_R" in "tissue"
> there is no "Cerebellum_8_L" in "tissue"
> there is no "Cerebellum_8_R" in "tissue"
> there is no "Cerebellum_9_L" in "tissue"
> there is no "Cerebellum_9_R" in "tissue"
> there is no "Cerebellum_10_L" in "tissue"
> there is no "Cerebellum_10_R" in "tissue"
> there is no "Vermis_1_2" in "tissue"
> there is no "Vermis_3" in "tissue"
> there is no "Vermis_4_5" in "tissue"
> there is no "Vermis_6" in "tissue"
> there is no "Vermis_7" in "tissue"
> there is no "Vermis_8" in "tissue"
> there is no "Vermis_9" in "tissue"
> there is no "Vermis_10" in "tissue"
> Warning: using "tissue" for the parcellation
>  In ft_sourceparcellate at line 117
>
> there are in total 8196 positions, 8196 positions are inside the brain, 7222 positions have a label
> 7222 of the positions inside the brain have a label
> 7222 of the labeled positions are inside the brain
> 974 of the positions inside the brain do not have a label
> creating 116 parcels for parameter mom by taking the mean
> computing parcellation
> Index exceeds the number of array elements (0).
>
> Error in ft_sourceparcellate>cellmean1 (line 488)
> y = x{1};
>
> Error in ft_sourceparcellate (line 226)
>           tmp(j,:,:) = cellmean1(dat(seg==j));
>
> Error in mous2_sourceParcellate (line 25)
>     parc_source = ft_sourceparcellate(cfg,source_allWords,atlas_int);
> _______________________________________________
> fieldtrip mailing list
> https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> https://doi.org/10.1371/journal.pcbi.1002202


_______________________________________________
fieldtrip mailing list
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
https://doi.org/10.1371/journal.pcbi.1002202
_______________________________________________
fieldtrip mailing list
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
https://doi.org/10.1371/journal.pcbi.1002202

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20201230/19d2ca60/attachment.htm>


More information about the fieldtrip mailing list