[FieldTrip] interpolation (ft_sourceinterpolate) of triangulated cortical mesh onto MNI space atlas misalignment
Thomas Houweling
thomas.houweling at gmail.com
Thu Sep 23 19:09:09 CEST 2021
Dear FieldTrippers,
I have issues with aligning any atlas to my cortical sheet ('unstructured'
triangulated mesh) source model using ft_sourceinterpolate.
I need to do source interpolation in order to assign each of my (2002)
source points to a reduced number of parcels.
I have recorded EEG data from a 128-channel electrode (+ 4 non-recording
ones) EGI system.
I have used openMEEG to generate the headmodel, source model, and the
leadfield (following
https://www.fieldtriptoolbox.org/workshop/oslo2019/forward_modeling/) and
checked that everything was aligned.
The source model has the following fields:
pos: [2002×3 double]
tri: [3993×3 double]
unit: 'mm'
leadfield: {2002×1 cell}
label: {132×1 cell}
leadfielddimord: '{pos}_chan_ori'
I now would like to have an atlas-based assignment of the source points
('voxels') to an atlas.
I have first tried with the AAL 'ROI_MNI_V4.nii'.
atlas is a structure with the following fields:
dim: [91 109 91]
hdr: [1×1 struct]
transform: [4×4 double]
unit: 'mm'
tissue: [91×109×91 double]
tissuelabel: {1×116 cell}
coordsys: 'mni'
It is a suboptimal choice for me since I am not interested in subcortical
parcels, but it was the most documented one.
When I run ft_sourceinterpolate...:
cfg = [];
cfg.method = 'nearest';
cfg.parameter = 'tissue';
parcels = ft_sourceinterpolate(cfg,atlas,sourcemodel);
...obtaining the parcels structure...:
pos: [2002×3 double]
tri: [3993×3 double]
unit: 'mm'
inside: [2002×1 logical]
tissue: [2002×1 double]
cfg: [1×1 struct]
...only 47/116 parcels have at least one voxel assigned (which is possible,
since I only have voxels in the cortex), but, more worrying, only 535/2002
voxels are assigned to a parcel (which is not expected).
Further, by plotting the interpolated sources...:
cfg = [];
cfg.method = 'surface';
cfg.funparameter = 'tissue';
cfg.funcolormap = 'jet';
ft_sourceplot(cfg, parcels);
...a misalignment is clearly visible, such that parcels are mostly observed
in the left temporal lobe and much less elsewhere.
I have been trying to play around with the .pos field of the sourcemodel
(e.g., by switching its dimension, or shifting in one dimension) before
running ft_sourceinterpolate to look for systematic shifts in the
interpolated surface.
This does change the voxel-to-parcel assignment, but, as far as I can tell,
not in a really systematic way.
I have also tried the 'sphere_avg', and 'sphere_weighteddistance'
interpolation methods, but results were even more confusing.
I have also tried with other atlases, including the
'Schaefer2018_100Parcels_7Networks_order_FSLMNI152_1mm.nii' and the
'HCP-MMP1_on_MNI152_ICBM2009a_nlin.nii'.
I obtain very different source interpolations, but neither makes sense.
I fear that there is something very wrong in matching the MNI coordinate
system with the 'grid-free' voxel locations.
Can someone let me know how to do this?
Thank you very much and best regards,
Thom
--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20210923/04842612/attachment.htm>
More information about the fieldtrip
mailing list