[FieldTrip] Help with between-trials single subject permutation (ft_freqstatistics output is stat.sta NaN NaN NaN ....)

Tara van Viegen taravanviegen at gmail.com
Mon Feb 4 12:19:08 CET 2019


Hi both,

I don't think that causes the problem, because from my understanding the
powspctrm fields are the same size for both TFR structures.

Ana, are there NaNs in your powspctrm? (Just trying to figure out if there
might already be an issue *before *the call to ft_freqstatistics).

Best,
Tara

On Mon, Feb 4, 2019 at 10:35 AM Arana, S.L. (Sophie) <S.Arana at donders.ru.nl>
wrote:

> Hi Ana,
>
>
> I see one small mistake in your code, that might be causing your error
> message. It is in the way you define your design matrix. It should be
>
> design = zeros(1,size(freqCTR_planar_cmb.powspctrm,1) +
> size(freqEXP_planar_cmb.powspctrm,1));
> design(1,1:size(freqCTR_planar_cmb.powspctrm,1)) = 1;​
>
>
> design(1,(size(freqCTR_planar_cmb.powspctrm,1)+1):(size(
> *freqCTR_planar_cmb.powspctrm*,1)+...
> size(freqEXP_planar_cmb.powspctrm,1))) = 2;
>
>
> Hope this will fix your issue.
>
>
> Best,
>
> Sophie
> ___________________
> M.Sc. Sophie L. Arana
>
> Doctoral researcher
> Neurobiology of Language - MPI for Psycholinguistics
>
> Max Planck Institute for Psycholinguistics
> PO Box 310, 6500 AH Nijmegen
> Netherlands
>
> T +31 24-3610887
> E sophie.arana at mpi.nl
> <https://email.gwdg.de/owa/redir.aspx?C=vAwsHEoGIsQ-2a4fJkW7ELQAQ-WiQ9bLBwPShd-w11hUpFFgiRDVCA..&URL=mailto%3asophie.arana%40mpi.nl>
>
>
> ------------------------------
> *From:* fieldtrip <fieldtrip-bounces at science.ru.nl> on behalf of Ana
> Pesquita <anapesquita at gmail.com>
> *Sent:* Friday, February 1, 2019 9:30 PM
> *To:* fieldtrip at science.ru.nl
> *Subject:* [FieldTrip] Help with between-trials single subject
> permutation (ft_freqstatistics output is stat.sta NaN NaN NaN ....)
>
> Hello,
>
> My name is Ana and I have recently started using Fieldtrip.
> I am trying to adapt the fieldtrip tutorial - 'Cluster-based permutation
> tests on time-frequency data' - to my particular case (
> http://www.fieldtriptoolbox.org/tutorial/cluster_permutation_freq/).
>
> I have data from one MEG subject recorded in an Elekta Neuromag system and
> would like to do a within trials analysis on that subject (experimental
> trials vs. control trials). However,   my ft_freqstatistics outputs a
> matrix stat.stat full of NaNs.
> I am hoping to get some help with identifying the error in my pipeline.
>
> These are my steps:
>
> *1. I start by loading the two data structures corresponding to the Exp
> and Ctr trials (selecting only the gradiometer channels).*
> *Data fields*:
> data_Exp =
> struct with fields:
> label: {202×1 cell}
> trialinfo: [90×1 double]
> sampleinfo: [90×2 double]
> trial: {1×90 cell}
> time: {1×90 cell}
> cfg: [1×1 struct]
> fsample: 1.0000e+03
>  grad: [1×1 struct]
>
> data_Ctr =
> struct with fields:
> label: {202×1 cell}
> trialinfo: [90×1 double]
> sampleinfo: [90×2 double]
> trial: {1×90 cell}
> time: {1×90 cell}
> cfg: [1×1 struct]
> fsample: 1.0000e+03
> grad: [1×1 struct]
>
> *3. Run the frequency analysis on both data structures. *
> *CFG*:
> cfg = [];
> cfg.output = 'pow';
> cfg.channel = {'MEGGRAD','-MEG1843', '-MEG2122'};
> cfg.taper = 'hanning';
> cfg.method = 'mtmconvol';
> cfg.foi          = 10;%2:2:30;%1:30
> numfoi = length(cfg.foi);
> cfg.t_ftimwin    =  ones(length(cfg.foi),1).* 0.5;%1;
> cfg.toi          = [-1 : 0.05: 3.6];
> cfg.keeptrials = 'yes';
> tfr_data_Exp = ft_freqanalysis(cfg, data_Exp);
>
> cfg = [];
> cfg.output = 'pow';
> cfg.channel = {'MEGGRAD','-MEG1843', '-MEG2122'};
> cfg.taper = 'hanning';
> cfg.method = 'mtmconvol';
> cfg.foi          = 10; %2:2:30;
> numfoi = length(cfg.foi);
> cfg.t_ftimwin    =  ones(length(cfg.foi),1).* 0.5;
> cfg.toi          = [-1 : 0.05: 3.6];
> cfg.keeptrials = 'yes';
> tfr_data_Ctr = ft_freqanalysis(cfg, data_Ctr);
>
> *Data fields:*
> e.g. (and similar to the structure of  tfr_data_Exp)
> tfr_data_Ctr =
>   struct with fields:
>        label: {202×1 cell}
>        dimord: 'rpt_chan_freq_time'
>        freq: 10.0000
>        time: [1×93 double]
>        powspctrm: [90×202×1×93 double]
>       cumtapcnt: [90×1 double]
>       grad: [1×1 struct]
>        trialinfo: [90×1 double]
>       cfg: [1×1 struct]
>
> *3. Combine planar gradiometers of the time-frequency data (e.g.
> tfr_data_Exp)*
> *CFG*:
> cfg = [];
> cfg.method = 'sum';
> freqEXP_planar_cmb = ft_combineplanar(cfg,tfr_data_Exp);
>
> cfg = [];
> cfg.method = 'sum';
> freqCTR_planar_cmb = ft_combineplanar(cfg,tfr_data_Ctr);
>
> *Data fields:*
> e.g. (and similar to the structure of freqEXP_planar_cm)
> freqCTR_planar_cmb =
> struct with fields:
> label: {102×1 cell}
> dimord: 'rpt_chan_freq_time'
> freq: 10.0000
> time: [1×93 double]
> powspctrm: [90×102×1×93 double]
> cumtapcnt: [90×1 double]
> grad: [1×1 struct]
> trialinfo: [90×1 double]
> cfg: [1×1 struct]
>
> *4.  Combine planar gradiometers also for the initial data structures
> (i.e. data_Exp )*
> *CFG*:
> cfg = [];
> cfg.method = 'sum';
> data_Exp_cmb = ft_combineplanar(cfg,data_Exp);
>
> *Data fields:*
> data_Exp_cmb =
> struct with fields:
> label: {102×1 cell}
> trialinfo: [90×1 double]
> sampleinfo: [90×2 double]
> trial: {1×90 cell}
> time: {1×90 cell}
> cfg: [1×1 struct]
> fsample: 1.0000e+03
> grad: [1×1 struct]
>
> *5. Prepare neighbours, design, and run ft_freqstatistics*
> *CFG*:
> cfg = [];
> cfg.channel          = {'MEGGRAD','-MEG1843', '-MEG2122'};
> cfg.latency          = 'all';
> cfg.frequency        = 10;
> cfg.method           = 'montecarlo';
> cfg.statistic        = 'ft_statfun_indepsamplesT';
> cfg.correctm         = 'cluster';
> cfg.clusteralpha     = 0.05;
> cfg.clusterstatistic = 'maxsum';
> cfg.minnbchan        = 2;
> cfg.tail             = 0;
> cfg.clustertail      = 0;
> cfg.alpha            = 0.025;
> cfg.numrandomization = 500;
> % prepare_neighbours determines what sensors may form clusters
> cfg_neighb.method    = 'distance';
> cfg_neighb.template  = 'neuromag306plan.mat';
> cfg.neighbours       = ft_prepare_neighbours(cfg_neighb, *data_Exp_cmb*);
>
> design = zeros(1,size(freqCTR_planar_cmb.powspctrm,1) +
> size(freqEXP_planar_cmb.powspctrm,1));
> design(1,1:size(freqCTR_planar_cmb.powspctrm,1)) = 1;
>
> design(1,(size(freqCTR_planar_cmb.powspctrm,1)+1):(size(freqCTR_planar_cmb,1)+...
> size(freqEXP_planar_cmb.powspctrm,1))) = 2;
>
> cfg.design           = design;
> cfg.ivar             = 1;
>
> [stat] = ft_freqstatistics(cfg, *freqCTR_planar_cmb, freqEXP_planar_cmb*);
>
> *Data fields:*
> stat.stat is a matrix full of NaN
>
> stat.prob is a matrix of just ones
>
> stat =
> struct with fields:
> stat: [102×1×93 double]
> prob: [102×1×93 double]
> cirange: [102×1×93 double]
> mask: [102×1×93 logical]
> ref: [102×1×93 double]
> dimord: 'chan_freq_time'
> freq: 10.0000
> grad: [1×1 struct]
> label: {102×1 cell}
> time: [1×93 double]
> cfg: [1×1 struct]
>
> *Warning:*
> When running the ft_frestatistics I get the repeated warning:
>
> (...)
> Warning: Not all replications are used for the computation of the
> statistic.
> Warning: Not all replications are used for the computation of the
> statistic.
> Warning: Not all replications are used for the computing statistic 498
> from 0
> Warning: Not all replications are used for the computation of the
> statistic.
> Warning: Not all replications are used for the computation of the
> statistic.
> Warning: Not all replications are used for the computing statistic 500
> from 0
> (...)
>
>
> Many many thanks!
>
> Ana
> _______________________________________________
> 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/20190204/a763f217/attachment.html>


More information about the fieldtrip mailing list