[FieldTrip] clustering, spatial neighbors and minnbchan

Clara A. Scholl cas243 at georgetown.edu
Tue Mar 13 02:29:39 CET 2012

Dear Jörn,

Thank you for directing me to ft_prepare_neighbours instead of
ft_neighbourselection, the triangulation method is excellent and I'll
be sure to stick to the most recent version of fieldtrip from now on.

I really like the spirit of the minnbchan parameter for tightening
cluster extent, but as long as different channels have different
numbers of neighbors (which seems both inevitable and sensible), I
find it problematic that for example, for minnbchan=2, a channel with
5 neighbors will be rejected at a given timepoint if fewer than 40% of
its neighbors belong to a cluster, while a channel with 10 neighbors
will be rejected only when fewer than 20% of its neighbors belong to
the cluster (if I understand what's going on correctly -- and I use 5
and 10 as examples because this is the range of neighbors I get using
triangulation for an EGI 128 channel EEG sensor layout).  I have two
questions about a possible modification to this parameter that I've

1) Instead of setting minnbchan to a fixed number of channels, would
it make sense to use a percentage of neighbors so that, for the
example above, instead of using minnbchan=2, use
minnbchan=0.4*numneighbours (at each channel), so that a channel with
5 neighbors would need 2 neighboring channels in the cluster to
remain, while a channel with 10 neighbors would need 4 neighboring
channels in the cluster to remain?  Would this introduce problems I'm
not considering?

2) I implemented it by modifying beginning at line 83 of
findcluster.m, so that instead of looking for

I'm now adding an additional line for the number of neighbors at each
channel (in addition to nsigneighb, the number of significant
neighbors), followed by remove:

(nfreq*ntime)]),[spatdimlength nfreq ntime]);

Where now the minnbchan input must be between 0 and 1 so that the
channels removed at each timepoint are some fraction of each channels
number of neighbors.  It seems to work but I want to run it by users
who are more familiar with the parameters & code than I am, because
it's very possible that (1) the concept is esoteric and problematic
and (2) my implementation is faulty.

Thanks enormously for any & all feedback,

On Mon, Mar 12, 2012 at 4:48 AM, "Jörn M. Horschig"
<jm.horschig at donders.ru.nl> wrote:
> Dear Clara,
> First of all, defining neighbours based on a sensor layout may not be the
> best approach. If you have 3D positions of your sensors available, I would
> suggest that you use these for neighbour selection (note that for EEG
> sensors, this is much less an issue than for MEG sensors, but you didn't
> mention what system you are using)
> Second, for minnbchan, I think you are right. Of course sensors at the outer
> rim have, by definition, less neighbouring sensors than other sensors. As
> far as I know, minnbchan is defined as the number of neighbouring
> significant sensors. So, if you specify it to be e.g. 10, than of course all
> sensors with less than 10 neighbours can never be part of a cluster. Those
> with more than 10 need to have also at least 10 neighbouring sensors that
> are significant as well. Of course, sensors in the center have more
> neighbouring sensors, thus higher minnbchan will have a less tremendous
> effect there. So as far as I can see, there are four ways out for you:
> 1) If you didn't do so already, you can choose a finer time-scale, hoping
> that this will separate the different neural effects (if they are different)
> 2) Do the same on source level - maybe this will reduce spatial leakage.
> 3) Define a wider range of neighbours for sensors at the outer rim, thereby
> forcing a minimum number of neighbouring sensors. Instead (or additionally),
> you could try to use cfg.method = 'triangulation' or 'template' for
> neighbour selection. For more information, see here:
> http://fieldtrip.fcdonders.nl/faq/how_does_ft_prepare_neighbours_work
> I would suggest that you use cfg.feedback = 'yes' and choose the
> method/parameters that seem most optimal to you (there is not *the* best
> way, unfortunately)
> 4) Live with it, as there are technical limitations with our recording
> equipment, and of course physiological limitations. As Eric pointed out in
> the old mails you referred to:
> "
> In fact, it is looking for isolated blobs that one would like to interpret
> as separate physiological entities.
> This contrast with the nature of the EEG/MEG data, which has poor spatial
> resolution (due to volume conduction and common pick-up),
> often poor spectral resolution (due to the short time windows of our
> time-resolved spectral analysis), and often poor time resolution
> (due to latency jitter over trials).
> "
> Hope this helps.
> Best,
> Jörn
> On 3/11/2012 10:52 PM, Clara A. Scholl wrote:
>> Hi,
>> I have a question about how to identify appropriate parameters for
>> neighbor distance in ft_neighbourselection and how to set minnbchan
>> for space-time cluster analysis.
>> I identified a neighbor distance based on our sensor layout, so that
>> spatially adjacent channels were defined as neighbors, and spatially
>> non-adjacent channels were not defined as neighbors.  I then ran
>> space-time cluster analysis and identified a cluster with a large
>> spatial and temporal extent which appears to be the continuation of
>> several effects lumped together.  I subsequently increased minnbchan,
>> so that this cluster gets separated into separate clusters following
>> the logic in this discussion thread:
>> http://mailman.science.ru.nl/pipermail/fieldtrip/2011-February/003501.html
>> However now a new problem appears: it seems that channels near the
>> periphery of the sensor layout, which have few adjacent spatial
>> neighbors, are not included in the clusters when minnbchan has a value
>> greater than the number of neighbors the channels have according to
>> the neighbor distance used in ft_neighbourselection.  Is this correct?
>>  Put differently, increasing minnbchan appears to bias clusters toward
>> including only channels at the center of the sensor layout, with many
>> adjacent other channels (and channels at the periphery of the layout,
>> which have fewer spatial neighbors, are excluded from the identified
>> clusters).
>> Obviously I want a principled, data-independent selection of cluster
>> identification parameters so I want to ask what the "correct" way to
>> identify these parameters (neighbor distance, and minnbchan) is.
>> Should minnbchan be used differently for channel-time cluster analysis
>> (what I'm doing) compared to channel-time-frequency cluster analysis?
>> Thanks,
>> Clara
>> _______________________________________________
>> 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

More information about the fieldtrip mailing list