[FieldTrip] Help with beamformer localizing tremor-coherence peaks

Alexandra Kathrin Steina Alexandra.Steina at uni-duesseldorf.de
Wed Dec 20 08:56:47 CET 2023


Hi Jan-Mathijs,

thanks for the quick response!
The data is not a combination of mag/grad, there are only grad
included. Also I have not applied maxfilter. We are aware of the
problem of rank-deficiency and use it always only with caution.
I've tried different values for lambda already, but haven't really
seen an improvement (I should maybe take a closer look at lambda
again.)
I've discussed this issue also with others in the lab, but we couldn't
figure out what's going on.
Do you have further ideas what I could try now that you know more
about the data?

Best and thank for your help,
Alex

Sent from Android device

> On Dec 19, 2023 17:58, "Schoffelen, J.M. (Jan Mathijs) via fieldtrip"
> <fieldtrip at science.ru.nl> wrote:
> 
>> Dear Alex,
>> 
>> Uhm, it’s difficult to comment why your script would work on the
>> beta band data, and not on the theta band data (where the value of
>> coherence seem to be much higher).
>> 
>> Actually,m I am a bit surprised that the script you copied into the
>> e-mail works more or less well for the beta band coherence. (Oh and
>> before I forget, there’s a small typo cfg.dics.reafilter should
>> read cfg.dics.realfilter, but that’s probably not going to solve
>> it).
>> 
>> The reason of my surprise, is that beamforming on Elekta data
>> typically does not work really well if you just use some mild
>> ‘lambda’ regularisation, specifically if you use maxfiltered
>> data and/or combine magnetometers and gradiometers. Maxfiltered data
>> is highly rank deficient, which typically requires a slightly
>> different heurstic for regularisation, and combined mag/grad data
>> should be handled with a little bit of care, given that the
>> respective signals are on a very different scale. How to best deal
>> with these issues is for instance described here:
>> https://pubmed.ncbi.nlm.nih.gov/34890794/ [3]. Some hands-on info is
>> given here:
>> 
> https://www.fieldtriptoolbox.org/workshop/paris2019/handson_sourceanalysis/
>> [4] (just forget about the fact that in the tutorial example we used
>> ‘lcmv’, and a cortical sheet constrained sourcemodel, that
>> shouldn’t matter overall).
>> 
>> Best wishes,
>> Jan-Mathijs
>> 
>>> On 18 Dec 2023, at 20:22, Alexandra Kathrin Steina via fieldtrip
>>> <fieldtrip at science.ru.nl> wrote:
>>> 
>>> Dear Fieldtrip community,
>>> 
>>> I am working with MEG and LFP data from patients with
>>> Parkinson’s disease/essential tremor.
>>> I want to compare how coherence between DBS-targets and cortex
>>> changes between tremor and tremor-free epochs at tremor frequency.
>>> For this, I’ve calculated coherence between LFPs and MEG and
>>> used a dics-beamformer to localize coherent sources.
>>> I have encountered something that I find weird/confusing when
>>> localizing the tremor-coherence peaks (LFP-MEG coherence at tremor
>>> frequency) of most of the subjects.
>>> I've uploaded images of one example on WeTransfer under the
>>> following link:
>>> 
>> 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwe.tl%2Ft-B6dw2hF4aT&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tSnUMDidX42D04I5Lez55pbkGJZei1CeS1R6kYcMXhs%3D&reserved=0
>>> [1] On sensor-level there is a clear peak visible at tremor
>>> frequency which is absent during no-tremor (figure 1). From what I
>>> see on sensor-level I would expect to also see much higher
>>> activity on source-level and a clear localization. However, when I
>>> apply dics-beamformer the maximal coherence value for the
>>> tremor-epochs is much lower, than for the tremor-free epochs
>>> (figure 2).
>>> In addition, the localization seems a bit strange to me,
>>> especially when compared with the sensor image.
>>> I’ve also applied a common filter, because I thought that it
>>> might solve the problem, but it did not.
>>> I’ve used the exact same pipeline and exact same script to
>>> localize coherence between LFP and MEG at eg. high-beta or alpha
>>> frequencies and it gives me “good” results (see image 3, data
>>> from a different subject which did not have tremor).
>>> I have used ‘fieldtrip-20201214‘ to generate the images, but
>>> have also tried fieldtrip versions from 2018 to the most recent
>>> one, all yielding similar results.
>>> 
>>> I would be grateful for advice on why this is happening!
>>> 
>>> Best,
>>> Alex
>>> 
>>> Code-snippet I've used:
>>> 
>>> refchannel = 'LFP-right-2B-3B';
>>> freqs = 1:35;
>>> 
>>> cfg=[];
>>> cfg.method='mtmfft';
>>> cfg.output='powandcsd';
>>> cfg.taper= 'hanning';
>>> cfg.foi = freqs;
>>> cfg.keeptrials = 'no';
>>> pow_csd_tremor =ft_freqanalysis(cfg,data_seg_tremor);
>>> pow_csd_notremor =ft_freqanalysis(cfg,data_seg_notremor);
>>> 
>>> cfg = [];
>>> cfg.method = 'coh';
>>> coh_tremor = ft_connectivityanalysis(cfg,pow_csd_tremor);
>>> coh_notremor = ft_connectivityanalysis(cfg,pow_csd_notremor);
>>> 
>>> cfg = [];
>>> cfg.interactive = 'yes';
>>> cfg.parameter = 'cohspctrm';
>>> cfg.refchannel = refchannel;
>>> cfg.layout = 'neuromag306planar.lay';
>>> ft_multiplotER(cfg,coh_tremor,coh_notremor);
>>> 
>>> %% dics beamformer
>>> 
>>> common_filter_dics = 1;
>>> 
>>> for f = 1:length(freqs)
>>> 
>>> dat_appended =
>>> ft_appenddata([],data_seg_tremor,data_seg_notremor);
>>> 
>>> cfg = [];
>>> cfg.method = 'mtmfft';
>>> cfg.output = 'powandcsd';
>>> cfg.foi = freqs(f);
>>> cfg.taper = 'hanning';
>>> cfg.keeptrials = 'yes';
>>> freq_tremor = ft_freqanalysis(cfg,data_seg_tremor);
>>> freq_notremor = ft_freqanalysis(cfg,data_seg_notremor);
>>> freq_appended = ft_freqanalysis(cfg,dat_appended);
>>> 
>>> cfg=[];
>>> cfg.method='dics';
>>> cfg.dics.lambda='5%';
>>> cfg.dics.keepcsd = 'yes';
>>> cfg.dics.keepfilter = 'yes';
>>> cfg.dics.reafilter = 'yes';
>>> cfg.frequency = freqs(f);
>>> cfg.channel = 'MEG';
>>> cfg.headmodel=hdm;
>>> cfg.sourcemodel=grid;
>>> cfg.reducerank=2;
>>> cfg.refchan = refchannel;
>>> source_appended_forfilter = ft_sourceanalysis(cfg,
>>> freq_appended);
>>> 
>>> cfg=[];
>>> cfg.method='dics';
>>> cfg.dics.lambda='5%';
>>> cfg.dics.keepcsd = 'yes';
>>> cfg.headmodel=hdm;
>>> cfg.sourcemodel=grid;
>>> cfg.frequency = freqs(f);
>>> cfg.channel = 'MEG';
>>> cfg.reducerank=2;
>>> cfg.refchan = refchannel;
>>> if common_filter_dics == 1
>>> cfg.sourcemodel.filter =
>>> source_appended_forfilter.avg.filter;
>>> cfg.sourcemodel.label =
>>> source_appended_forfilter.avg.label;
>>> end
>>> source_tremor_dics{f}= ft_sourceanalysis(cfg, freq_tremor);
>>> source_tremor_dics{f}.pos = template_grid.pos;
>>> source_tremor_dics{f}.dim = template_grid.dim;
>>> source_notremor_dics{f}= ft_sourceanalysis(cfg,
>>> freq_notremor);
>>> source_notremor_dics{f}.pos = template_grid.pos;
>>> source_notremor_dics{f}.dim = template_grid.dim;
>>> 
>>> end
>>> 
>>> %% plot all results
>>> 
>>> freq_to_plot = 4;
>>> 
>>> cfg = [];
>>> cfg.parameter = 'coh';
>>> cfg.interpmethod        = 'cubic';
>>> it_tremor_dics =
>>> ft_sourceinterpolate(cfg,source_tremor_dics{freq_to_plot},t1);
>>> it_notremor_dics =
>>> ft_sourceinterpolate(cfg,source_notremor_dics{freq_to_plot},t1);
>>> 
>>> cfg =  [];
>>> cfg.method = 'ortho';
>>> cfg.funparameter = 'coh';
>>> cfg.maskparameter = 'coh';
>>> cfg.interactive = 'yes';
>>> figure;
>>> cfg.funcolorlim = [0 max(it_tremor_dics.coh)];
>>> ft_sourceplot(cfg,it_tremor_dics);
>>> cfg.funcolorlim = [0 max(it_notremor_dics.coh)];
>>> ft_sourceplot(cfg,it_notremor_dics);
>>> _______________________________________________
>>> fieldtrip mailing list
>>> 
>> 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailman.science.ru.nl%2Fmailman%2Flistinfo%2Ffieldtrip&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6lm5S02fQCvioafyAUM6r1GI1MeILyBhA4EgKmert30%3D&reserved=0
>>> [2]
>>> 
>> 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoi.org%2F10.1371%2Fjournal.pcbi.1002202&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IT%2BTdD7oONzOrjCySts00%2FwVENqMUf13WF7zBwGzGO4%3D&reserved=0
> 
> 
> 
> Links:
> ------
> [1] 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwe.tl%2Ft-B6dw2hF4aT&data=05%7C02%7Cfieldtrip%40science.ru.nl%7C1608eefc088d488eb35008dc00b3b404%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638386019011248683%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Lsd1xPOJ2Eb7bgK%2BhxA3rJXO%2BfwR1WKSK5VVv4fQp5I%3D&reserved=0
> [2] 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailman.science.ru.nl%2Fmailman%2Flistinfo%2Ffieldtrip&data=05%7C02%7Cfieldtrip%40science.ru.nl%7C1608eefc088d488eb35008dc00b3b404%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638386019011248683%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=weVdL3rCwfOuerjGp1bxGgFBFcxXIPG2fMkffiNaiak%3D&reserved=0
> [3] 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpubmed.ncbi.nlm.nih.gov%2F34890794%2F&data=05%7C02%7Cfieldtrip%40science.ru.nl%7C1608eefc088d488eb35008dc00b3b404%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638386019011248683%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=uQmumk0sm5aVFd8jtzyHoxZg0joerp0r5O%2Bugolmb78%3D&reserved=0
> [4] 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.fieldtriptoolbox.org%2Fworkshop%2Fparis2019%2Fhandson_sourceanalysis%2F&data=05%7C02%7Cfieldtrip%40science.ru.nl%7C1608eefc088d488eb35008dc00b3b404%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638386019011248683%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MXgE7UX002EaSOnBU8ytD%2Fx6H9YPy3ZWGEUPdosisPg%3D&reserved=0
> Hi Jan-Mathijs, 
> 
> thanks for the quick response!
> The data is not a combination of mag/grad, there are only grad
> included. Also I have not applied maxfilter. We are aware of the
> problem of rank-deficiency and use it always only with caution. 
> I've tried different values for lambda already, but haven't really
> seen an improvement (I should maybe take a closer look at lambda
> again.)
> I've discussed this issue also with others in the lab, but we couldn't
> figure out what's going on. 
> Do you have further ideas what I could try now that you know more
> about the data?
> 
> Best and thank for your help, 
> Alex
> 
> 
> 
> Sent from Android device
> 
> On Dec 19, 2023 17:58, "Schoffelen, J.M. (Jan Mathijs) via fieldtrip"
> <fieldtrip at science.ru.nl> wrote:
>> 
>> Dear Alex,
>> 
>> Uhm, it’s difficult to comment why your script would work on the beta 
>> band data, and not on the theta band data (where the value of 
>> coherence seem to be much higher).
>> 
>> Actually,m I am a bit surprised that the script you copied into the 
>> e-mail works more or less well for the beta band coherence. (Oh and 
>> before I forget, there’s a small typo cfg.dics.reafilter should read 
>> cfg.dics.realfilter, but that’s probably not going to solve it).
>> 
>> The reason of my surprise, is that beamforming on Elekta data 
>> typically does not work really well if you just use some mild ‘lambda’ 
>> regularisation, specifically if you use maxfiltered data and/or 
>> combine magnetometers and gradiometers. Maxfiltered data is highly 
>> rank deficient, which typically requires a slightly different heurstic 
>> for regularisation, and combined mag/grad data should be handled with 
>> a little bit of care, given that the respective signals are on a very 
>> different scale. How to best deal with these issues is for instance 
>> described here: https://pubmed.ncbi.nlm.nih.gov/34890794/. Some 
>> hands-on info is given 
>> here: https://www.fieldtriptoolbox.org/workshop/paris2019/handson_sourceanalysis/ (just 
>> forget about the fact that in the tutorial example we used ‘lcmv’, and 
>> a cortical sheet constrained sourcemodel, that shouldn’t matter 
>> overall).
>> 
>> Best wishes,
>> Jan-Mathijs
>> 
>> 
>> 
>>> On 18 Dec 2023, at 20:22, Alexandra Kathrin Steina via fieldtrip 
>>> <fieldtrip at science.ru.nl> wrote:
>>> 
>>> Dear Fieldtrip community,
>>> 
>>> I am working with MEG and LFP data from patients with Parkinson’s 
>>> disease/essential tremor.
>>> I want to compare how coherence between DBS-targets and cortex 
>>> changes between tremor and tremor-free epochs at tremor frequency.
>>> For this, I’ve calculated coherence between LFPs and MEG and used a 
>>> dics-beamformer to localize coherent sources.
>>> I have encountered something that I find weird/confusing when 
>>> localizing the tremor-coherence peaks (LFP-MEG coherence at tremor 
>>> frequency) of most of the subjects.
>>> I've uploaded images of one example on WeTransfer under the following 
>>> link: 
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwe.tl%2Ft-B6dw2hF4aT&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tSnUMDidX42D04I5Lez55pbkGJZei1CeS1R6kYcMXhs%3D&reserved=0 
>>> On sensor-level there is a clear peak visible at tremor frequency 
>>> which is absent during no-tremor (figure 1). From what I see on 
>>> sensor-level I would expect to also see much higher activity on 
>>> source-level and a clear localization. However, when I apply 
>>> dics-beamformer the maximal coherence value for the tremor-epochs is 
>>> much lower, than for the tremor-free epochs (figure 2).
>>> In addition, the localization seems a bit strange to me, especially 
>>> when compared with the sensor image.
>>> I’ve also applied a common filter, because I thought that it might 
>>> solve the problem, but it did not.
>>> I’ve used the exact same pipeline and exact same script to localize 
>>> coherence between LFP and MEG at eg. high-beta or alpha frequencies 
>>> and it gives me “good” results (see image 3, data from a different 
>>> subject which did not have tremor).
>>> I have used ‘fieldtrip-20201214‘ to generate the images, but have 
>>> also tried fieldtrip versions from 2018 to the most recent one, all 
>>> yielding similar results.
>>> 
>>> I would be grateful for advice on why this is happening!
>>> 
>>> Best,
>>> Alex
>>> 
>>> Code-snippet I've used:
>>> 
>>>    refchannel = 'LFP-right-2B-3B';
>>>    freqs = 1:35;
>>> 
>>>    cfg=[];
>>>    cfg.method='mtmfft';
>>>    cfg.output='powandcsd';
>>>    cfg.taper= 'hanning';
>>>    cfg.foi = freqs;
>>>    cfg.keeptrials = 'no';
>>>    pow_csd_tremor =ft_freqanalysis(cfg,data_seg_tremor);
>>>    pow_csd_notremor =ft_freqanalysis(cfg,data_seg_notremor);
>>> 
>>>    cfg = [];
>>>    cfg.method = 'coh';
>>>    coh_tremor = ft_connectivityanalysis(cfg,pow_csd_tremor);
>>>    coh_notremor = ft_connectivityanalysis(cfg,pow_csd_notremor);
>>> 
>>>    cfg = [];
>>>    cfg.interactive = 'yes';
>>>    cfg.parameter = 'cohspctrm';
>>>    cfg.refchannel = refchannel;
>>>    cfg.layout = 'neuromag306planar.lay';
>>>    ft_multiplotER(cfg,coh_tremor,coh_notremor);
>>> 
>>>    %% dics beamformer
>>> 
>>>    common_filter_dics = 1;
>>> 
>>>    for f = 1:length(freqs)
>>> 
>>>        dat_appended = 
>>> ft_appenddata([],data_seg_tremor,data_seg_notremor);
>>> 
>>>        cfg = [];
>>>        cfg.method = 'mtmfft';
>>>        cfg.output = 'powandcsd';
>>>        cfg.foi = freqs(f);
>>>        cfg.taper = 'hanning';
>>>        cfg.keeptrials = 'yes';
>>>        freq_tremor = ft_freqanalysis(cfg,data_seg_tremor);
>>>        freq_notremor = ft_freqanalysis(cfg,data_seg_notremor);
>>>        freq_appended = ft_freqanalysis(cfg,dat_appended);
>>> 
>>>        cfg=[];
>>>        cfg.method='dics';
>>>        cfg.dics.lambda='5%';
>>>        cfg.dics.keepcsd = 'yes';
>>>        cfg.dics.keepfilter = 'yes';
>>>        cfg.dics.reafilter = 'yes';
>>>        cfg.frequency = freqs(f);
>>>        cfg.channel = 'MEG';
>>>        cfg.headmodel=hdm;
>>>        cfg.sourcemodel=grid;
>>>        cfg.reducerank=2;
>>>        cfg.refchan = refchannel;
>>>        source_appended_forfilter = ft_sourceanalysis(cfg, 
>>> freq_appended);
>>> 
>>> 
>>>        cfg=[];
>>>        cfg.method='dics';
>>>        cfg.dics.lambda='5%';
>>>        cfg.dics.keepcsd = 'yes';
>>>        cfg.headmodel=hdm;
>>>        cfg.sourcemodel=grid;
>>>        cfg.frequency = freqs(f);
>>>        cfg.channel = 'MEG';
>>>        cfg.reducerank=2;
>>>        cfg.refchan = refchannel;
>>>        if common_filter_dics == 1
>>>            cfg.sourcemodel.filter = 
>>> source_appended_forfilter.avg.filter;
>>>            cfg.sourcemodel.label = 
>>> source_appended_forfilter.avg.label;
>>>        end
>>>        source_tremor_dics{f}= ft_sourceanalysis(cfg, freq_tremor);
>>>        source_tremor_dics{f}.pos = template_grid.pos;
>>>        source_tremor_dics{f}.dim = template_grid.dim;
>>>        source_notremor_dics{f}= ft_sourceanalysis(cfg, 
>>> freq_notremor);
>>>        source_notremor_dics{f}.pos = template_grid.pos;
>>>        source_notremor_dics{f}.dim = template_grid.dim;
>>> 
>>>    end
>>> 
>>>    %% plot all results
>>> 
>>>    freq_to_plot = 4;
>>> 
>>>    cfg = [];
>>>    cfg.parameter = 'coh';
>>>    cfg.interpmethod        = 'cubic';
>>>    it_tremor_dics = 
>>> ft_sourceinterpolate(cfg,source_tremor_dics{freq_to_plot},t1);
>>>    it_notremor_dics = 
>>> ft_sourceinterpolate(cfg,source_notremor_dics{freq_to_plot},t1);
>>> 
>>>    cfg =  [];
>>>    cfg.method = 'ortho';
>>>    cfg.funparameter = 'coh';
>>>    cfg.maskparameter = 'coh';
>>>    cfg.interactive = 'yes';
>>>    figure;
>>>    cfg.funcolorlim = [0 max(it_tremor_dics.coh)];
>>>    ft_sourceplot(cfg,it_tremor_dics);
>>>    cfg.funcolorlim = [0 max(it_notremor_dics.coh)];
>>>    ft_sourceplot(cfg,it_notremor_dics);
>>> _______________________________________________
>>> fieldtrip mailing list
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailman.science.ru.nl%2Fmailman%2Flistinfo%2Ffieldtrip&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6lm5S02fQCvioafyAUM6r1GI1MeILyBhA4EgKmert30%3D&reserved=0
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoi.org%2F10.1371%2Fjournal.pcbi.1002202&data=05%7C02%7Cjanmathijs.schoffelen%40donders.ru.nl%7C6118e6fdd6f34d13d4f408dc000261fe%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638385257435950519%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IT%2BTdD7oONzOrjCySts00%2FwVENqMUf13WF7zBwGzGO4%3D&reserved=0
>> 
>> 


More information about the fieldtrip mailing list