[FieldTrip] Error in source localisation statistics

Xavier Vrijdag x.vrijdag at auckland.ac.nz
Mon Feb 18 07:23:33 CET 2019


Hello,

I have a dataset from an experiment where 12 participants were exposed to 3 levels of nitrous oxide, while I measured their EEG. I also have a baseline recording. I took for each exposure (and baseline) a 1 minute sample for further analysis. I want to do source localization to better understand  which parts of the brain are involved. I don’t have MRI scans of my participants, so I used the standard MRI and BEM. I would like to thanks the persons who made the various manuals and analysis examples on the website, as they helped me tremendously to do this analysis.

After cleaning and preprocessing, I combined the datasets into one for further analysis. I also chose to make 5 sec “trials” for further analysis. For this source analysis I loaded the data of 1 exposure and the baseline data, to compare them.


        %Calculate the channel covariance matric

        cfg = [];

        cfg.covariance = 'yes';

        cfg.covariancewindow = 'all';

        cfg.keeptrials  = 'yes';

        timelock = ft_timelockanalysis(cfg, data_filt);



        %Global filter

        cfg = [];

        cfg.headmodel = vol;

        cfg.elec = elec_aligned;

        cfg.grid = grid;

        cfg.method = 'lcmv';

        cfg.lcmv.projectnoise='yes'; %needed for neural activity index

        cfg.lcmv.fixedori = 'yes';  %Project onto largest variance orientation

        cfg.lcmv.keepfilter = 'yes'; %Keep the beamformer weights

        cfg.lcmv.lambda = '5%'; %Regularise a little

        cfg.rawtrial    = 'yes';      % project each single trial through the filter.

        cfg.keeptrials  = 'yes';

        source = ft_sourceanalysis(cfg, timelock);



        cfg = [];

        cfg.dim         = source.dim;

        cfg.method      = 'montecarlo';

        cfg.statistic   = 'ft_statfun_indepsamplesT';

        cfg.parameter   = 'pow';

        cfg.correctm    = 'cluster';

        cfg.numrandomization = 1000;

        cfg.alpha       = 0.05; % note that this only implies single-sided testing

        cfg.tail        = 0;

        cfg.design(1,:) = [1:nTrials 1:nTrials];

        cfg.design(2,:) = [ones(1,nTrials) ones(1,nTrials).*2];

        cfg.uvar        = 1; % row of design matrix that contains unit variable (in this case: trials)

        cfg.ivar        = 2; % row of design matrix that contains independent variable (the conditions)

        stat = ft_sourcestatistics(cfg, source);

After the source analysis the source statistics script calls the checkdata script and I get the following error:

Index exceeds array bounds.

Error in ft_datatype_source (line 183)
            val{indx(k)}(1,:,:,:) = dat{indx(k)};

Error in ft_checkdata (line 278)
  data = ft_datatype_source(data);

Error in ft_sourcestatistics (line 94)
  varargin{i} = ft_checkdata(varargin{i}, 'datatype', 'source', 'feedback', 'no');

Error in sourcelocalisation_N2O (line 114)
        stat = ft_sourcestatistics(cfg, source);

The source struct has the following content:
      time: [1×15360 double]
       dim: [24 31 25]
    inside: [18600×1 logical]
       pos: [18600×3 double]
    method: 'rawtrial'
     trial: [1×24 struct]
        df: 24
       cfg: [1×1 struct]

With source.trial:
  1×24 struct array with fields:
    ori
    pow
    mom
    noise
    filter
    label
    filterdimord

I would like your help to understand the error and how to fix it.

Regards,

Xavier Vrijdag

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20190218/403e3c1d/attachment-0001.html>
-------------- next part --------------
_______________________________________________
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