[FieldTrip] Results from source analysis with different fieldtrip versions differ!?
Alexandra Steina
alexandra.steina at uni-duesseldorf.de
Thu Nov 5 08:27:35 CET 2020
Hi Jan-Mathijs,
Thanks for the quick reply.
I've checked it for the april and october version and the 'freq'
structures are the same.
Greetings,
Alexandra
Am 04.11.2020 um 14:09 schrieb Schoffelen, J.M. (Jan Mathijs):
> Hi Alexandra,
>
> Hmmm, that’s not good. We have recently tried to clean up the codebase that is doing various inverse calculations, which was indeed around the time at which you identified a change in figure quality. I don’t think this has to do with the leadfield computation.
>
> Just as a first step, could you check whether the ‘freq’ structures are the same in the different FieldTrip versions? Just to be sure that indeed the cause of this lies in ft_sourceanalysis or ft_inverse_dics.
>
> Best wishes,
> Jan-Mathijs
>
>
>
>> On 4 Nov 2020, at 13:38, Alexandra Steina <Alexandra.Steina at uni-duesseldorf.de> wrote:
>>
>> Hello everyone,
>>
>> I used the following pipeline to perform a source analysis on MEG-LFP data. I noticed different results when using different Fieldtrip Versions for the exact same data and analysis pipeline.
>> I read that there was a bug in the 'ft_prepare_leadfield' function in the release of June and it says that the bug was fixed, but I got some weird results when doing dics source reconstruction on the MEG data with the Fieldtrip releases from August on (I also just tried the release from yesterday). I attached some sourceplots (all from the exact same data) that are all done with a different Fieldtrip Version.
>> Does anyone know if there is still a bug in the newest fieldtrip releases or why these differences occur?
>>
>> mri = ft_read_mri(mri_path);
>> mri.anatomy=double(mri.anatomy);
>> fidu = importdata([fidu_path,'fiducial.txt']);
>> cfg=[];
>> cfg.coordsys='neuromag';
>> cfg.method = 'fiducial';
>> cfg.fiducial.nas = fidu.data(2,:);
>> cfg.fiducial.lpa = fidu.data(3,:);
>> cfg.fiducial.rpa = fidu.data(1,:);
>> real_mri=ft_volumerealign(cfg,mri);
>>
>> cfg = [];
>> cfg.keepintermediate = 'no';
>> cfg.write = 'no';
>> cfg.name = [folder_intermediate,'spmtmp'];
>> segmentedmri = ft_volumesegment(cfg, real_mri);
>>
>> cfg = [];
>> cfg.method = 'singleshell';
>> hdm = ft_prepare_headmodel(cfg,segmentedmri);
>> hdm = ft_convert_units(hdm,'cm');
>>
>> template = load(fullfile('fieldtrip/template/sourcemodel/standard_sourcemodel3d10mm'));
>>
>> cfg = [];
>> cfg.grid.warpmni = 'yes';
>> cfg.grid.template = template.sourcemodel; % template_grid
>> cfg.grid.nonlinear = 'yes';
>> cfg.mri = real_mri;
>> cfg.grid.unit ='cm';
>> grid = ft_prepare_sourcemodel(cfg);
>>
>> cfg = [];
>> cfg.dataset = dataset;
>> cfg.dftfilter = 'yes';
>> cfg.trl = trl;
>> cfg.channel = ['MEG***2','MEG***3',Info_et.(subj).(cond).(file).bad_meg];
>> meg = ft_preprocessing(cfg);
>>
>>
>> cfg = [];
>> cfg.dataset = dataset;
>> cfg.dftfilter = 'yes';
>> cfg.trl = trl;
>> cfg.channel = Info_et.(subj).(cond).(file).old_lfp_labels;
>> cfg.montage = Info_et.(subj).(cond).(file).montage;
>> lfp = ft_preprocessing(cfg);
>>
>> data = ft_appenddata([],meg,lfp);
>>
>> cfg = [];
>> cfg.length = 1;
>> cfg.overlap = 0.5;
>> data_seg = ft_redefinetrial(cfg,data);
>>
>>
>> centerfreq = 12;
>> chan = ‘LFP-right-1-2A’;
>> bandwidth = 2;
>>
>> cfg = [];
>> cfg.method = 'mtmfft';
>> cfg.output = 'powandcsd';
>> cfg.foi = centerfreq;
>> cfg.tapsmofrq = bandwidth;
>> cfg.keeptrials = 'yes';
>> freq = ft_freqanalysis(cfg,data_seg);
>>
>> cfg=[];
>> cfg.method='dics';
>> cfg.dics.lambda='5%';
>> cfg.headmodel=hdm;
>> cfg.sourcemodel=grid;
>> cfg.frequency = centerfreq;
>> cfg.reducerank=2;
>> cfg.refchan = chan;
>> source=ft_sourceanalysis(cfg,freq);
>> source.pos = template.sourcemodel.pos;
>> source.dim = template.sourcemodel.dim;
>>
>> [maxval, maxcohindx] = max(source.avg.coh);
>> max_pos = source.pos(maxcohindx, :);
>>
>> cfg = [];
>> cfg.parameter = 'coh';
>> cfg.interpmethod = 'nearest';
>> it = ft_sourceinterpolate(cfg,source,p); % p
>>
>> cfg = [];
>> cfg.method = ‘ortho’;
>> cfg.funparameter = 'coh';
>> cfg.maskparameter = 'coh';
>> ft_sourceplot(cfg,it);
>>
>> Thanks and greetings,
>> Alexandra Steina<ft_2019.png><ft_april2020.png><ft_june2020.png><ft_november2020.png><ft_october2020.png>_______________________________________________
>> 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
More information about the fieldtrip
mailing list