[FieldTrip] source statistics - spm_bwlabel error

Malgorzata Wislowska malgorzata.wislowska at gmail.com
Mon May 29 18:30:40 CEST 2017


Dear Jan-Mathijs,


thank you for your message.

when I add the 'tri' field to the input data, FT recognizes that data is a
mesh (*the input is mesh data with 8196 vertices and 16384 triangles*),
but it keep throwing the same *spm_bwlabel* error message.

This is the current input data (that's what you meant, right?):

varargin{1}:
       cfg: [1x1 struct]
    inside: [8196x1 logical]
       pos: [8196x3 double]
      time: 0.1000
       pow: [8196x1 double]
       tri: [16384x3 uint16]
    dimord: 'chan_time'


If I don't average over time, and the size of varargin{1}.pow equals e.g.,
[8196 73], then datsiz == 8196.
That's because dimsiz == [8196 73], but datdim == 1 (ft_sourcestatistics,
lines 131-132).

That leads to the following error:
Error using ft_sourcestatistics (line 205)
the length of the design matrix (2) does not match the number of
observations in the data (3358)


Best regards,
Malgorzata




> Subject: Re: [FieldTrip] source statistics - spm_bwlabel error
> Hi Malgorzata,
>
> Could you try to add the original ‘tri’ field to each of your varargins,
> and check whether the problem persists?
>
> Thanks,
> Jan-Mathijs
>
>
>
> On 26 May 2017, at 11:52, Malgorzata Wislowska <
> malgorzata.wislowska at gmail.com> wrote:
>
> Dear Julian,
>
>
> thank you very much for your prompt response.
>
> Yes, my numdims == 2 because my cfg.dim == [8196 1]
> which comes from ft_sourcestatistics.m (code lines 131-132)
>
> datdim = find(~strcmp(dimtok, 'subj') & ~strcmp(dimtok, 'rpt') &
> ~strcmp(dimtok, 'rpttap'));
> datsiz = dimsiz(datdim);
>
> calculated on the following input data:
>
> varargin{1}:
>        cfg: [1x1 struct]
>     inside: [8196x1 logical]
>        pos: [8196x3 double]
>       time: 0.1750
>        pow: [8196x1 double]
>     dimord: 'chan_time'
>
> The above source level structure comes from ft_sourceanalysis calculated
> with cfg.method = 'mne'.
>
> Averaging over time unfortunately doesn't help - the same error continues
> to occur:
> But data that is not averaged over time has numdims == 2 too, because
> length(cfg.dim) == 2, even though that cfg.dim itself is different (for not
> averaged data it's e.g cfg.dim == [8196 61], whereas for averaged data it's
> cfg.dim == [8196 1]),
>
> It helps (well, the function runs through without errors and produces some
> output) if the line:
>
> if numdims == 2 || numdims == 3 % if 2D or 3D data
>
> gets replaced with:
>
> if numdims == 3
>
> In clusterstat.m, code line: 318 (and also 269, 215, 184)
>
> Do you (or anybody else) have maybe any better idea how to fix it?
>
>
> Thanks and best regards,
> Malgorzata,
> University Salzburg
>
>
>
>
>> Subject: Re: [FieldTrip] source statistics - spm_bwlabel error
>>
>
>
> Dear Malgorzata,
>>
>> from a quick glance, it appears that in the call to spm_bwlabel "numdims"
>> should be 3 to give you 2*numdims = 6.
>> So, could you check what numdims is in your case?
>> I suspect that you have 4-dimensional data (time by 3 spatial
>> dimensions), so it might help to check where the dimensions are coming from
>> and what happens if you average over time.
>>
>> Good luck,
>>
>> Julian
>>
>> Am 24.05.2017 um 16:34 schrieb Malgorzata Wislowska:
>>
>> Dear FT-community,
>>
>>
>> when calculating cluster permutation statistics on the source level, I
>> receive the following error:
>>
>> Error using spm_bwlabel
>> spm_bwlabel: CONN must be 6, 18 or 26
>>
>> Error in clusterstat (line 319)
>>         [negclusrnd, negrndnum] = spm_bwlabel(tmp, 2*numdims); % use
>> spm_bwlabel for 2D/3D to avoid usage of image toolbox
>>
>> Error in ft_statistics_montecarlo (line 347)
>>   [stat, cfg] = clusterstat(cfg, statrand, statobs);
>>
>> Error in ft_sourcestatistics (line 218)
>>   [stat, cfg] = statmethod(cfg, dat, design);
>>
>>
>> I used MNE method for the inverse problem. I have 8196 grid points 1555
>> time points.
>> But the error occurs also when I average across the time.
>>
>> Here is my configuration structure for the source analysis:
>>
>>
>> design          = zeros(2, nb_of_sbj*2);
>> design(1,:)   = [1:nb_of_sbj 1:nb_of_sbj];
>> design(2,:)     = [ones(1,nb_of_sbj) ones(1,nb_of_sbj)*2];
>>
>> cfg                     = [];
>> cfg.method              = 'montecarlo';
>> cfg.statistic           = 'ft_statfun_depsamplesT';
>> cfg.parameter           = 'pow';
>> cfg.correctm            = 'cluster';
>> cfg.clusterstatistic    = 'maxsum';
>> cfg.design              = design;
>> cfg.ivar                = 2;
>> cfg.uvar                = 1;
>> cfg.numrandomization    = 5000;
>> cfg.tail                = 0;
>> cfg.alpha               = 0.025;
>>
>> [stat]                  = ft_sourcestatistics(cfg,avg_co
>> n_sel{:},avg_incon_sel{:});
>>
>>
>> As far as I can see somebody had asked the same question last year, but
>> the post doesn't seem to have been addressed:
>> https://mailman.science.ru.nl/pipermail/fieldtrip/2016-August/010762.html
>>
>>
>> Thank you for your help in advance.
>>
>> Best regards,
>> Malgorzata Wislowska,
>> University of Salzburg
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20170529/e1ed60a3/attachment-0002.html>


More information about the fieldtrip mailing list