[FieldTrip] Permutation test with cluster based correction on a single sensor with time frequency data

Anne Guérin anne.guerin at gipsa-lab.grenoble-inp.fr
Thu Dec 19 12:18:02 CET 2024


Hi,

I would like to use the FT permutations test with cluster based 
correction on 2D data freq x time with a within subject design. Data are 
obtained after sources reconstruction and are for example related to a 
particular ROI (e.g. V5_R). The first dimension is a frequency dimension 
but not the oscillatory brain frequency. This dimension is linked to a 
temporal frequency of the input visual stimulus. the second dimension is 
time (sRate = 1kHz) and data are timelocked ERP for different values of 
this temporale frequency (by step of 1Hz). The data therefore has the 
same structure as if it had been obtained by time-frequency analysis on 
a particular electrode.

For example, here's the data for one participant:
ftAllFiles{1}

ans =

   struct with fields:

     dimord: 'freq_time'
        avg: [29×401 double]
       time: [-0.2000 -0.1990 -0.1980 -0.1970 -0.1960 -0.1950 -0.1940 
-0.1930 -0.1920 -0.1910 -0.1900 -0.1890 -0.1880 -0.1870 -0.1860 … ]
       freq: [6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 
27 28 29 30 31 32 33 34]
      label: {'V5_R'}
There are 29 participants for each conditions. ftAllFiles have 2x29 
cells, the first 29 correspond to the first condition and the last 29 to 
the second condition.

Here is the configuration :

 >> statcfg

statcfg =

   struct with fields:

            frequency: 'all'
            parameter: 'avg'
          avgoverfreq: 'no'
          avgoverchan: 'no'
              latency: 'all'
               method: 'montecarlo'
            statistic: 'ft_statfun_depsamplesT'
             correctm: 'cluster'
         clusteralpha: 0.0500
     clusterstatistic: 'maxsum'
            minnbchan: 0
                 tail: 1
          clustertail: 1
                alpha: 0.0500
     numrandomization: 100000
                 ivar: 1
                 uvar: 2
               design: [2×58 double]
              channel: 'all'
           neighbours: []
          avgovertime: 'no'

When I run   ftStat = ft_freqstatistics(statcfg, ftAllFiles{:}); , the 
program stops at the step 'findcluster':

posclusobs = findcluster(tmp, connmat, cfg.minnbchan);

In fact tmp is 2D boolean table (29 frequency samples x 401 time 
samples), connmat is 4x4 matrix with 0 and cfg.minnbchan=0.  So bug with 
findcluster. See below.

When I plot tmp (image(tmp)), the result doesn't look ridiculous.

How to have a good configuration of neighborhood for this single-sensor 
time-frequency permutation test ?

Thank you for your help.

Best regards.

Anne

ps :

 >>     ftStat = ft_freqstatistics(statcfg, ftAllFiles{:});
the call to "ft_selectdata" took 0 seconds
using "ft_statistics_montecarlo" for the statistical testing
using "ft_statfun_depsamplesT" for the single-sample statistics
constructing randomized design
total number of measurements     = 58
total number of variables        = 2
number of independent variables  = 1
number of unit variables         = 1
number of within-cell variables  = 0
number of control variables      = 0
using a permutation resampling approach
repeated measurement in variable 2 over 29 levels
number of repeated measurements in each level is 2 2 2 2 2 2 2 2 2 2 2 2 
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
the maximum number of unique permutations is 536870912
generated 100000 random permutations
computing a parametric threshold for clustering
computing statistic
estimated time per randomization is 0.00 seconds
computing statistic 100000 from 100000

Error using findcluster
invalid dimension of spatdimneighbstructmat

Error in clusterstat (line 214)
   posclusobs = findcluster(tmp, connmat, cfg.minnbchan);

Error in ft_statistics_montecarlo (line 364)
   [stat, cfg] = clusterstat(cfg, statrand, statobs);

Error in ft_freqstatistics (line 194)
   [stat, cfg] = statmethod(cfg, dat, design);



-- 
Anne Guérin-Dugué
PR Emérite Université Grenoble Alpes (UGA)
GIPSA-lab / PSD / Equipe ViBS
Bureau B146
Site Ampère
11 rue des Mathématiques
BP 46
F - 38042 GRENOBLE
tel : +33 (0)4 76 57 43 73
mel :anne.guerin at gipsa-lab.grenoble-inp.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20241219/615e8621/attachment.htm>


More information about the fieldtrip mailing list