[FieldTrip] Interpolate, normalise and sourcegrandaverage with MNE
Schoffelen, J.M. (Jan Mathijs)
jan.schoffelen at donders.ru.nl
Thu Oct 1 17:07:31 CEST 2015
Hi Sara,
What you need are some of the .coord files, and the .topo files.
Specifically, the midthickness_orig and the sphere files should be converted into a format that the mne-software can work with.
The only way I managed this, was to convert the gifti files back into freesurfer’s format:
tmp = ft_read_headshape({‘something-something.topo.gii’ ‘somethingelse-.L.midthickness_orig.coord.gii’});
ft_write_headshape(‘lh.orig’, tmp, ‘format’, ‘freesurfer’);
and likewise for the right hemisphere, as well as for the spheres.
Then, you can proceed with using mne_setup_source_space to create the 8196 mesh. The final tricky thing eventually is to get the stuff properly co-registered in the correct coordinate system again, but this should proceed in the same way as when you would have used non-surface registered meshes.
The creation of the volume conduction model is a separate step (and does not require the cortical meshes).
Best,
Jan-Mathijs
On Oct 1, 2015, at 4:48 PM, Sara Aurtenetxe <s.aurtenetxe at bcbl.eu> wrote:
> Dear Jan Mathijs,
>
> Thank you very much for your quick and detailed answer!
>
> As suggested, I post-processed the surface of one of my subjects based on the recipe on the link.
> The process resulted into a bunch of files (e.g. .L.164k_fs_L.topo.gii, .L.white_mni.164k_fs_LR.coord.gii, .L.def_sphere.164k_fs_L.coord.gii),
> but at this point I am not sure about how to proceed. So I have now several questions:
>
> - Do you know which are the files containing the registered data for the creation of the meshes?
> How should I create them given the current format? most are .gii files.
> - Once creating the meshes, should I follow with the creation of the volume conduction model
> and analysis of the functional data as described in the tutorial? http://www.fieldtriptoolbox.org/tutorial/minimumnormestimate
>
> Apologize for all these specific questions but it is being a little bit confusing to me.
> So if anyone has experienced the same and/or have any suggestion, any comment would be very welcomed.
>
> Thanks a lot in advance,
>
> Best,
>
> Sara
>
>
>
>
>
>
>
> ----- Original Message -----
> From: "Schoffelen, J.M. (Jan Mathijs)" <jan.schoffelen at donders.ru.nl>
> To: "FieldTrip discussion list" <fieldtrip at science.ru.nl>
> Sent: Wednesday, September 30, 2015 9:33:03 AM
> Subject: Re: [FieldTrip] Interpolate, normalise and sourcegrandaverage with MNE
>
> Hi Sara,
>
> I think that in this case there is no absolutely ‘correct’ approach, although some approaches may make more sense than others.
> At this point in time it is indeed not well documented how to proceed from individual subject results source-reconstructed onto an individual cortically constrained mesh to a group analysis.
> In the past, we have been working with a procedure where the surface data were interpolated onto a 3D-grid so that we could use volumetric normalization techniques in order to get the subjects into a common space to allow for group statistics. So, here the order of the steps would be to call ft_sourceinterpolate, followed by ft_volumenormalise, or to interpolate the functional data directly onto a MNI-warped grid (http://www.fieldtriptoolbox.org/example/create_single-subject_grids_in_individual_head_space_that_are_all_aligned_in_mni_space).
> In the code you pasted in your e-mail message, there is also reference to ft_volumerealign, but I am not sure I understand why this is a required step at this point in the pipeline.
>
> All the above being said, nowadays I would advocate a slightly different approach, which bypasses the volumetric interpolation, where per subject I would use cortical meshes that is surface-registered to a template mesh, which as a consequence allows for direct comparison of source locations across subjects. The way to achieve this would be to post-process the surfaces that come out of the freesurfer pipeline according to the recipe described on http://brainvis.wustl.edu/wiki/index.php/Caret:Operations/Freesurfer_to_fs_LR. After this registration step, the low-resolution (i.e. in this case the 8196-vertex) meshes can be created.
>
> Best wishes,
> Jan-Mathijs
>
>
>
>
> Jan-Mathijs Schoffelen, MD PhD, Senior researcher
>
> Max Planck Institute for Psycholinguistics
> Donders Centre for Cognitive Neuroimaging
>
> E-mail: j.schoffelen at donders.ru.nl
> Telephone: +31-24-3614793
>
> http://www.fieldtriptoolbox.org
> http://www.hettaligebrein.nl
>
>
>
> On Sep 29, 2015, at 5:27 PM, Sara Aurtenetxe <s.aurtenetxe at bcbl.eu> wrote:
>
>> Dear all,
>>
>> I am working on the source analysis of ERF data from ElektaNeuromag system, with individual T1s, using minimum-norm estimate as described in the following tutorial:
>> http://www.fieldtriptoolbox.org/tutorial/minimumnormestimate
>> I am exactly following the suggested steps, and so got the source estimation for each of my subjects (bellow the output for one subject), which i can nicely plot with the ft_plot_mesh function:
>>
>> sourceest =
>>
>> time: [1x1401 double]
>> inside: [8196x1 logical]
>> pos: [8196x3 double]
>> method: 'average'
>> avg: [1x1 struct]
>> cfg: [1x1 struct]
>>
>> Now, prior to a ft_sourcegrandaverage and ft_sourcestatistics,
>> I am trying to normalise (ft_volumenormalise) and interpolate (ft_sourceinterpolate) the functional and anatomical data.
>>
>> However, I am struggling in this two last steps.
>> Since I did not find a clear pipeline/tutorial about the exact approach (am I missing something?)
>> and after trying several options (bellow I copy the code I am using), it is not clear to me:
>>
>> - which is the exact input data for each of these last two functions, and
>> - in which order they should be called.
>>
>> Now, I would highly appreciate if anyone could give me any cue about which the correct approach is.
>>
>> Thank you in advance,
>>
>> All the best,
>>
>> Sara
>>
>>
>>
>> %%%%%%%%%%%%
>>
>> % Inverse solution
>> cfg = [];
>> cfg.method = 'mne';
>> cfg.grid = leadfield;
>> cfg.vol = vol;
>> cfg.mne.prewhiten = 'yes';
>> cfg.mne.lambda = 3;
>> cfg.mne.scalesourcecov = 'yes';
>> cfg.senstype = 'MEG';
>>
>> sourceest = ft_sourceanalysis(cfg,erf);
>>
>> % read T1 volume - coords in scanner space
>> mri = ft_read_mri('s01.nii');
>> mri.coordsys = 'neuromag';
>>
>> % read headshape - Neuromag coords
>> hsf = 's01.fif';
>> [headshape] = ft_read_headshape(hsf);
>>
>> % align T1 with head posiiton in MEG
>> cfg = [];
>> cfg.method = 'headshape';
>> cfg.parameter = 'anatomy';
>> cfg.headshape.headshape = headshape;
>> cfg.headshape.interactive = 'no';
>>
>> mri_real = ft_volumerealign(cfg,mri);
>>
>> % normalize the realinged individual MRI to SPM template
>> cfg = [];
>> cfg.spmversion = 'spm8';
>> % cfg.template='T1.nii'; % when enabling this field, an incoming error message indicates that the template is not in the spm coordinate system.
>> % However, is the one used by default in this function (as mentioned in the reference) so it is confusing to me
>>
>> norm_mri = ft_volumenormalise(cfg,mri_real);
>>
>> % interpolate Source with MEG-aligned T1
>> cfg = [];
>> cfg.parameter = 'all';
>> cfg.downsample = 2;
>>
>> source_int = ft_sourceinterpolate(cfg, sourceest,norm_mri);
>>
>> %%%%%%%%%%%%%%
>>
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
More information about the fieldtrip
mailing list