[FieldTrip] Effect of cfg.minnbchan
Jörn M. Horschig
jorn at artinis.com
Wed Aug 5 15:04:53 CEST 2015
the channelconnectivity function is in a private directory, therefore not directly executable. If you are keen on pursuing this, you can copy it out or cd into that directory. However, check Eric’s response, from which it seems that you might on to something that is not intended to be happening ;) did you ever run into these problems with a “normal” test, say a depsampleT test as described in the FT tutorial?
Jörn M. Horschig, PhD, Software Engineer
<http://www.artinis.com/> Artinis Medical Systems | +31 481 350 980
From: fieldtrip-bounces at science.ru.nl [mailto:fieldtrip-bounces at science.ru.nl] On Behalf Of Marlies Vissers
Sent: Tuesday, August 4, 2015 4:39 PM
To: FieldTrip discussion list <fieldtrip at science.ru.nl>
Subject: Re: [FieldTrip] Effect of cfg.minnbchan
Thanks for your reply and suggestion! My neighbourhood-definitions look fine according to ft_neighbourplot.
However, I am not sure whether the connectivity matrix in my output (stat.cfg.connectivity) is correct. For example, I inspected which channels are defined as neighbours of C5 in the connectivity matrix. Here, I assumed the channel order in this matrix resembles the channel order defined by the function ‘ft_read_sens’, as stored in the field elec.label.
Using this particular organization of electrodes, the pattern of spatially neighbouring channels matches the strange spatial distribution of one of my resulting clusters.
E.g., C5 seems to neighbour FC4 and Cz (among others). This pattern matches my strange result, where a cluster consisting of FC4, Cz, and C5, survived cluster correction with minnbchan set to 2.
I am currently trying to establish whether my cfg.connectivity matrix is indeed the problem, and where this problem arises. One thing I suspect might be the cause is that the call to ‘channelconnectivity’ by ‘ft_statistics_montecarlo’ to construct the spatial neighbour structure, goes wrong. When I try to apply ‘channelconnectivity’ on my cfg structure directly (but not when running ft_freqstatistics), I get the following error ‘Undefined function 'channelconnectivity' for input arguments of type 'struct'’.
If channelconnectivity was not properly run, it could be that the electrode ordering as defined by ft_read_sens is not adjusted to the order used by cfg.neighbours before construction of the connectivity matrix. However, when I just run ft_freqstatistics, I do not get an error that suggests any problems with ‘channelconnectivity’, so I am not entirely sure whether this error also occurs when running the analysis as a whole.
Could you (or anyone else) give me any advice on how to make sure that the definition of neighbours in the connectivity matrix is constructed using the properly reordered vector with channel indices (the variable sel2 in channelconnectivity if I’m correct)?
Thanks in advance!
On 3 August 2015 at 09:37, Jörn M. Horschig <jorn at artinis.com <mailto:jorn at artinis.com> > wrote:
if I am not mistaken, the minnbchan option checks indeed if every channels in a cluster has at least the specified amount of channels in it and removes it otherwise. The code is documented as follows:
% For every (time,frequency)-element, it is calculated how many significant
% neighbours .this channel has If a significant channel has less than minnbchan
% significant neighbours, then this channel is removed from onoff.
If something went wrong is hard to tell – it also depends on how the neighbor structure looks like. If you do not have C3 or C1, then C5 can indeed be defined as a neighbor of Cz, and if you do not have FC2, then Cz could be called a neighbor of FC4. You can check how neighbors are defined by using ft_neighbourplot. That’s the first check I’d do.
Jörn M. Horschig, PhD, Software Engineer
<http://www.artinis.com/> Artinis Medical Systems | +31 481 350 980 <tel:%2B31%20481%20350%20980>
From: fieldtrip-bounces at science.ru.nl <mailto:fieldtrip-bounces at science.ru.nl> [mailto:fieldtrip-bounces at science.ru.nl <mailto:fieldtrip-bounces at science.ru.nl> ] On Behalf Of Marlies Vissers
Sent: Friday, July 31, 2015 3:27 PM
To: fieldtrip, donders <fieldtrip at donders.ru.nl <mailto:fieldtrip at donders.ru.nl> >
Subject: [FieldTrip] Effect of cfg.minnbchan
I have a question about the effect of the tuning parameter cfg.minnbchan when performing cluster based permutation testing, since the spatial characteristics of my clusters differ from what I expected to find given the settings I used.
I am running cross-subject correlations (n=31) between a behavioral variable and a subj*channel*time*frequency matrix with power data (preprocessed using EEGlab and decomposed outside of Fieldtrip), using ft_freqstatistics with the function 'ft_statfun_intersubcorr'. Since I'd like to avoid finding clusters with difficult-to-interpret shapes, I set cfg.minnbchan to 2.
My concern however, is that the resulting clusters do not always exist of neighbouring electrodes. For example, one of the resulting clusters is located at channels C5, Cz & FC4 (EEG, 64 electrodes), which are connected through the other dimensions (time & frequency). In one of Eric Maris' previous replies to an older post about cfg.minnbchan, I read that the parameter cfg.minnbchan only concerns spatial (not time/freq) neighbours. Does this mean that any cluster without spatially neighbouring electrodes should have been rejected when minnbchan is set to 2?
I would be very grateful if someone could let me know whether setting cfg.minnbchan to 2 can -in principle- still yield clusters with spatially-non-adjacent electrodes, or whether this result is likely due to an error in my code. If the latter, I'd very much appreciate advice on checks I could perform to detect the potential error.
The code I used to run this analysis is pasted below.
Thanks in advance!
University of Amsterdam | Department Brain and Cognition | Cognition and Plasticity Laboratory
Weesperplein 4 | 1018 XA Amsterdam | 020 - 525 67 24 | <mailto:M.E.Vissers at uva.nl> M.E.Vissers at uva.nl
% Import the electrode labels from an EEGlab set
elec = ft_read_sens('template_64.set','fileformat','eeglab_set');
% Create matrix with TF data
freqData.freq = frex; % Frequenies of TF matrix
freqData.time = tx(TF_idx(1):TF_idx(2))./1000; % Time samples in TF matrix
freqData.dimord = 'subj_chan_freq_time';
freqData.label = elec.label;
freqData.powspctrm = tempTF; % tempTF is matrix with subj*channels*freq*time
% Create matrix with behavioral data, make sure the sizes match
behav.freq = frex;
behav.time = tx(TF_idx(1):TF_idx(2))./1000;
behav.dimord = 'subj_chan_freq_time'; % Trick FT: there is just behavioral data in this matrix
behav.label = elec.label;
behav.powspctrm = repmat(accEffect,[1 size(freqData.powspctrm,2),size(freqData.powspctrm,3),size(freqData.powspctrm,4)]); % accEffect is 1*subj array
% Set configuration for perm test
% Create cfg and insert parameters
cfg = ;
cfg.latency = [0 1.250];
cfg.frequency = [2 30];
cfg.method = 'montecarlo';
cfg.statistic = 'ft_statfun_intersubcorr';
cfg.type = ft_getopt(cfg, 'type', 'Spearman');
cfg.correctm = 'cluster';
cfg.clusteralpha = 0.05;
cfg.clusterstatistic = 'maxsum';
cfg.minnbchan = 2;
cfg.tail = 0;
cfg.clustertail = 0;
cfg.alpha = 0.025;
cfg.numrandomization = 1000;
% prepare_neighbours determines what sensors may form clusters: load Biosemi 64 channel cap
cfg.template = [fieldtripdir thisSlash 'template' thisSlash 'neighbours' thisSlash 'biosemi64_neighb.mat'];
cfg.layout = [fieldtripdir thisSlash 'template' thisSlash 'layout' thisSlash 'biosemi64.lay'];
cfg_neighb.method = 'template';
cfg.neighbours = ft_prepare_neighbours(cfg_neighb,freqData);
% Create design mat
subj = 31;
design = zeros(2,2*subj);
for i = 1:subj
design(2,i) = i;
for i = 1:subj
design(2,subj+i) = i;
design(1,1:subj) = 1;
design(1,subj+1:2*subj) = 2;
cfg.design = design;
cfg.ivar = 1;
cfg.uvar = 2;
% Run stats
[stat] = ft_freqstatistics(cfg,freqData,behav);
fieldtrip mailing list
fieldtrip at donders.ru.nl <mailto:fieldtrip at donders.ru.nl>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the fieldtrip