[FieldTrip] Antw: Re: Wrong clustering of electrodes in newer FT versions?

Tobias Staudigl tobias.staudigl at uni-konstanz.de
Wed Nov 23 19:08:47 CET 2011


Hi Gregor and Jörn,

I find a simliar problem in my data (bti148).
2 sets of channels that share no connections across the sets are 
included in one cluster.

I am not sure, whether spm_bwlabel is the actual problem. However, I do 
not really understand why calling that function would be necessary.
FT calls the function spm_bwlabel during findcluster.m, line 95. 
(findcluster.m is called by clusterstat.m).
As far as I understand, spm_bwlabel is similar to bwlabel.m which 
searches for connected bins in a matrix.
The input to spm_label is the vector 'onoff' (in may case :148x1 
logical), which already contains information about neighboring channels.
Searching for connected bins in this vector does seem odd to me.

However, I supsect something else to be the reason for the wrong 
clustering, at least in my data.
In line 166, ft_freqstatistics.m changes the order of the channel labels:

chan = intersect(chan, varargin{i}.label);

Original order: {'A68'; 'A58'; 'A148';...}
Re-arranged in 'chan': {'A1';'A10';'A100'; 'A101'; 'A102';...}

in line 193, ft_freqstatistics calls:
cfg.channel = ft_channelselection(cfg.channel, chan);

now cfg.channel contains the re-aranged order.
On the basis of cfg.channel, the 'channeighbstructmat' is computed by 
makechanneighbstructmat(cfg) in clusterstat.m.
The statistics on the data is computed without re-arranging the channels 
in statfun_depsamplesT.m ('statobs').
In findcluster.m, line 84 (called during clusterstat.m, l. 197), the 
matrices 'onoff' and 'selectmat' are multiplied.
To my understanding, 'onoff' is based on the statistics that is computed 
with the originial channel order.
'selectmat' is based on the re-arranged order.
If true, the multiplication of these matrices is wrong.

Hope this helps, although I might have missed something obvious and 
might be totally wrong then.

best,
tobias


Am 14.11.2011 17:46, schrieb Gregor Volberg:
> Hi Jörn,
> yes, sure I can provide you with some more information. I hope to do 
> so due Wednesday.
> Thanks a lot again for your kind support!
> Gregor
> -- 
> Dr. rer. nat. Gregor Volberg 
> <gregor.volberg at psychologie.uni-regensburg.de 
> <mailto:gregor.volberg at psychologie.uni-regensburg.de>> ( 
> mailto:gregor.volberg at psychologie.uni-regensburg.de )
> University of Regensburg
> Institute for Experimental Psychology
> 93040 Regensburg, Germany
> Tel: +49 941 943 3862
> Fax: +49 941 943 3233
> http://www.psychologie.uni-regensburg.de/Greenlee/team/volberg/volberg.html
>
>
> >>> "Jörn M. Horschig"<jm.horschig at donders.ru.nl> 14.11.2011 09:51 >>>
> Hi Gregor,
>
> that sounds indeed odd - although I am glad that I did not mess up 
> something in prepare_neighbours ;)
> However, when I look at the code, it seems that channeighbstructmat 
> will only be used when ~issource, and the call to the spm function 
> will only be when issource, so I cannot see a direct relation between 
> these two. Could you provide some more information, e.g. in what line 
> and function you observed the call to the spm function? If you like 
> you could also create a bugreport on http://bugzilla.fcdonders.nl/ for 
> this. In any case, one of us will then tackle your problem as soon as 
> possible and try to solve it. I hope that we can reproduce your bug 
> here, else we might ask for a snippet of your data/workspace.
>
> Thanks in any case for having a precise look at what is going on!
>
> Best,
> Jörn
>
> On 11/11/2011 6:08 PM, Gregor Volberg wrote:
>>
>> Hi Jörn,
>>
>>
>> thanks a lot for your response. I meanwhile checked some possible 
>> reasons for the different clusterings and I am coming closer.
>>
>> I could reproduce the described error with two different datasets (62 
>> channel and 29 channel EEG), on two different computers and with two 
>> different versions of fieldtrip (2011 versions).  First of all, I 
>> checked the neighbourhood structures. They are identical in my two 
>> analyses - same number of electrodes, same order, same neighbours. I 
>> checked that before and after entering neighbours into the analyses 
>> (by comparing the stat.cfg.neighbours) - they are the same.
>>
>> I then searched through the code and found the channeighbstructmat 
>> that is constructed during the call of "clusterstat.m". I saved these 
>> matrices during the call of ft_freqstatistics and found that, with 
>> the same neighbourhood structures, the channeighbstructmat looked 
>>  completely different in the old and new version. I then changed the 
>> code of the new FT "clusterstat.m" so that it reads in the 
>> channeighbstructmat obtained with the old FT version - then 
>> everything works perfect.
>>
>>
>> Thus, the problem is most likely an incorrect channeighbstructmat. I 
>> figured out that in my case, FT calls an SPM8 function spm_bwlabeln 
>> during construction of the channeighbstructmat, which older version 
>> do not do. However, if I understood the code correctly, the SPM 
>> function should only be called for source data?! Could it be that, 
>> because my data is a 4D grand-average structure ( dimord: 
>> 'subj_chan_freq_time'), FT assumes source data?
>>
>>
>> Thanks again for your help,
>>
>> Gregor
>>
>>
>>
>>
>>
>> -- 
>> Dr. rer. nat. Gregor Volberg 
>> <gregor.volberg at psychologie.uni-regensburg.de> ( 
>> mailto:gregor.volberg at psychologie.uni-regensburg.de )
>> University of Regensburg
>> Institute for Experimental Psychology
>> 93040 Regensburg, Germany
>> Tel: +49 941 943 3862
>> Fax: +49 941 943 3233
>> http://www.psychologie.uni-regensburg.de/Greenlee/team/volberg/volberg.html 
>> <http://www.psychologie.uni-regensburg.de/Greenlee/team/volberg/volberg.html%0D>
>>
>>
>> >>> "Jörn M. Horschig"<jm.horschig at donders.ru.nl> 11/9/2011 4:00 PM >>>
>> Hi Gregor,
>>
>> did you check your neighbourselection? Maybe something is going wrong 
>> there, given that a lot in this code has changed since 2010. Could 
>> you check that using ft_neighbourplot? This would be the most logical 
>> explanation why the results differ. It does not really make sense 
>> that these three sensors form one cluster, because they should not be 
>> neighbours of each other. So i would suppose that something is going 
>> wrong there.
>>
>> Best,
>> Jörn
>>
>>
>> On 11/3/2011 4:57 PM, Michael Wibral wrote:
>>
>>> Hi Gregor,
>>>
>>> in principle the first level statistics that determine cluster 
>>> membership (and thereby cluster shapes etc.)  can also vary from one 
>>> set of permutations to the next, esp. on the borders of a cluster 
>>> (this is why it is typically said that the localization of a cluster 
>>> is not as trustworthy as its existence). Other resaons for 
>>> differences are differing number of permutations - did you set 
>>> everything the same?
>>>
>>> This said there might well be another problem - I hope the cluster 
>>> people can have a look into it.
>>>
>>> Best ,
>>> Michael
>>>
>>>
>>>     ------------------------------------------------------------------------
>>>     *Von:* "Gregor Volberg"
>>>     <Gregor.Volberg at psychologie.uni-regensburg.de>
>>>     *Gesendet:* Nov 2, 2011 6:34:43 PM
>>>     *An:* fieldtrip at donders.ru.nl
>>>     *Betreff:* [FieldTrip] Wrong clustering of electrodes in newer
>>>     FT versions?
>>>
>>>     Dear fieldtrip community,
>>>
>>>
>>>     I just encountered an unexpected behavior of FT that I would
>>>     like to share with the list. It is that the cluster permutation
>>>     test formed incorrect clusters from a given set of significant
>>>     electrodes in newer FT versions (ft-20111012; I also tried with
>>>     ft-20111028).
>>>
>>>
>>>     For example, when using an old ft version (ft-20100810)  and
>>>     freqstatistics I get a negative cluster with 17 contiguous
>>>     electrodes. With the newer ft version, using the same data and
>>>     the same cfg, three significant  electrodes that are spatially
>>>     contiguous to the other significant electrodes are not included
>>>     in the cluster. Also, three electrodes that are spatially
>>>     seperated and are actually part of the first cluster are grouped
>>>     into a separate cluster.  I attached a picture with the
>>>     respective clusterplots where differences are marked with red
>>>     arrows.
>>>
>>>     I am aware that the permutation p-value for a given cluster can
>>>     be different in two separate analyses, but the grouping of
>>>     significant electrodes into clusters should always be the same,
>>>     am i right? I double-checked the cfg.neighbours, after
>>>     conversion to new 'struct' style, and they were identical in the
>>>     "old ft" and "new ft"  analysis. Also, the stat.stat field and
>>>     the stat.cfg.clustercritval were the same for both analyses.
>>>     Thus, the same neighbourhood relations and the same significant
>>>     electrodes should be used for grouping. Yet I get different
>>>     results...
>>>
>>>
>>>     I am almost sure that this is trivial, but I could not yet
>>>     replicate my old results with new FT and this makes me nervous.
>>>     Has someone made a similar experience? Or do newer versions of
>>>     ft use some further information besides cfg.neighbours for
>>>     clustering, somewhere in the *cfg.previuous perhaps, that I am
>>>     not aware of? Any comments are highly welcome.
>>>
>>>
>>>     Best regards,
>>>
>>>     Gregor
>>>
>>>
>>>     cfg = [];
>>>
>>>     cfg.neighbours    = neighbours;
>>>
>>>     cfg.minnbchan=1;
>>>
>>>     cfg.avgoverfreq   = 'yes';
>>>
>>>     cfg.avgovertime   = 'yes';
>>>
>>>     cfg.method        = 'montecarlo';
>>>
>>>     cfg.correctm       = 'cluster';
>>>
>>>     cfg.statistic     = 'depsamplesT';
>>>
>>>     cfg.tail          = 0;
>>>
>>>     cfg.alpha         = 0.05;
>>>
>>>     cfg.clusteralpha = 0.05;
>>>
>>>     cfg.numrandomization = 1000;
>>>
>>>     cfg.design = [[1:14 1:14]; [zeros(1,14)+1 zeros(1,14)+2]];
>>>
>>>     cfg.uvar          = 1;
>>>
>>>     cfg.ivar          = 2;
>>>
>>>     cfg.latency       = [2.24 2.53];
>>>
>>>     cfg.frequency     = [17 21];%
>>>
>>>     stat = ft_freqstatistics(cfg, DC, TC);
>>>
>>>
>>>     --
>>>     Dr. rer. nat. Gregor Volberg
>>>     <gregor.volberg at psychologie.uni-regensburg.de> (
>>>     mailto:gregor.volberg at psychologie.uni-regensburg.de )
>>>     University of Regensburg
>>>     Institute for Experimental Psychology
>>>     93040 Regensburg, Germany
>>>     Tel: +49 941 943 3862
>>>     Fax: +49 941 943 3233
>>>     http://www.psychologie.uni-regensburg.de/Greenlee/team/volberg/volberg.html
>>>     <http://www.psychologie.uni-regensburg.de/Greenlee/team/volberg/volberg.html%0A>
>>>
>>>
>>>
>>> _______________________________________________
>>>
>>>
>>>      
>>>
>>> fieldtrip mailing list
>>>
>>>
>>>    
>>>
>>> fieldtrip at donders.ru.nl
>>>
>>>
>>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>>
>>>
>>
>>
>> -- 
>>
>>
>> Jörn M. Horschig
>>
>>
>> PhD Student
>>
>>
>> Donders Institute for Brain, Cognition and Behaviour
>>
>>
>> Centre for Cognitive Neuroimaging
>>
>>
>> Radboud University Nijmegen
>>
>>
>> Neuronal Oscillations Group
>>
>>
>>
>>
>> P.O. Box 9101
>>
>>
>> NL-6500 HB Nijmegen
>>
>>
>> The Netherlands
>>
>>
>>
>>
>> Contact:
>>
>>
>> E-Mail: jm.horschig at donders.ru.nl
>>
>>
>> Tel:    +31-(0)24-36-68493
>>
>>
>> Web: http://www.ru.nl/donders
>>
>>
>>
>>
>> Visiting address:
>>
>>
>> Trigon, room 2.30
>>
>>
>> Kapittelweg 29
>>
>>
>> NL-6525 EN Nijmegen
>>
>>
>> The Netherlands
>>
>>
>>
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
> -- 
> Jörn M. Horschig
> PhD Student
> Donders Institute for Brain, Cognition and Behaviour
> Centre for Cognitive Neuroimaging
> Radboud University Nijmegen
> Neuronal Oscillations Group
>
> P.O. Box 9101
> NL-6500 HB Nijmegen
> The Netherlands
>
> Contact:
> E-Mail:jm.horschig at donders.ru.nl
> Tel:    +31-(0)24-36-68493
> Web:http://www.ru.nl/donders
>
> Visiting address:
> Trigon, room 2.30
> Kapittelweg 29
> NL-6525 EN Nijmegen
> The Netherlands
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip


-- 
Tobias Staudigl
Fachbereich Psychologie - ZPR
Postfach ZPR
78457 Konstanz
ZPR, Haus 12
Tel.: +49 (0)7531 / 88 - 5703

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20111123/9471cae9/attachment.html>


More information about the fieldtrip mailing list