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

Arana, S.L. (Sophie) S.Arana at donders.ru.nl
Mon Feb 4 10:46:05 CET 2019


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20190204/01220bb2/attachment.html>


More information about the fieldtrip mailing list