TFR Analysis - Plotting Problem

Virginie van Wassenhove vvw at CALTECH.EDU
Thu Jun 28 00:49:26 CEST 2007


Here's an attempt because I just had a similar issue when plotting
the difference between 2 conditions (for 1 individual).

If I set cfg.keeptrials = 'yes' (which is needed for the cluster
analysis) for the freqanalysis and use the pwspctrm difference for
these 2 conditions, multiplotTFR won't work and returns a similar
error. I suppose because there is 1 more dimension aka 'trials'.
If I use an average difference (cfg.keeptrials = 'no') for these same
conditions and for illustrative purposes, then multiplotTFR works and
display both the average difference and the obtained clusters...

Not sure whether this is relevant to your across-individuals design
but maybe it's worth trying it out.

-Virginie

At 03:24 PM 6/27/2007, you wrote:
>Dear Fieldtrip-Team,
>
>I'm trying to use fieldtrip-toolbox since a few days. After working
>through the tutorials and fixing the problem of  matlab crash while
>importing eep-probe files i tried to do tfr-analysis. Everything seems
>fine but if the script reaches the part of plotting i get the following
>fault:
>
>
>--------------------------------------------------------
>??? Index exceeds matrix dimensions.
>
>Error in ==> topoplotER at 289
>   dat = dat(:, ymin:ymax, xmin:xmax);
>--------------------------------------------------------
>
>
>
>What could be the reason of this problem? Maybe used the sub functions not
>in the right way...?
>
>In hope someone could spend a bit time in helping me, i will add the hole
>analysis-script:
>
>
>--------------------------------------------------------
>debug=1
>
>Path='/scr/fabian1/lars/SPROD/data/EEP/sprod';
>
>%Subjects={'01','02','03','04','06','07','10','11','12','14','15', ...
>%    '16','17','18','19','20','21','22','23','24'};
>
>Channels={'F3','FZ','F4','FC3','FCZ','FC4','C3','CZ',  ...
>         'C4','CP3','CPZ','CP4','P3','PZ','P4',};
>
>%Contrasts={ {'33','31'} {'63','33'}}
>
>Subjects={'01','02'}
>
>Contrasts={ {'33','31'} }
>
>%Channels={'all'}
>
>
>%% 1. Import files (select trials, reject & preprocess)
>
>for k=1:length(Contrasts), Conditions=Contrasts{k};
>   for j=1:length(Conditions), Condition=Conditions{j};
>     for i=1:length(Subjects), Subject=Subjects{i};
>         cfg = [];
>         cfg.dataset                 = strcat(Path, Subject, '.cnt');
>         cfg.trialdef.eventtype      = 'trigger';
>         cfg.trialdef.prestim        = 1;
>         cfg.trialdef.poststim       = 2;
>         cfg.trialdef.eventvalue     = Condition;
>         cfg                         = definetrial(cfg);
>
>         cfg.rejectfile=strcat(Path, Subject, '.rej')
>         %[cfg] = rejectartifact(cfg);  nor included in preprocessing
>
>         cfg.channel    = Channels;
>         %cfg.detrend    = 'yes';
>         PreProcData{i,j,k}  = preprocessing(cfg);
>         %save PreProcData PreProcData{i,j,k} -append;
>     end
>   end
>end
>
>
>%% 2. TimeFrequenzyResolution per Subject an Condition
>
>for k=1:length(Contrasts), Conditions=Contrasts{k};
>   for j=1:length(Conditions), Condition=Conditions{j};
>     for i=1:length(Subjects), Subject=Subjects{i};
>         cfg              = [];
>         cfg.output       = 'pow';
>         %cfg.channel      = 'all';
>         cfg.method       = 'mtmconvol';
>         cfg.taper        = 'hanning';
>         cfg.foi          = 1:1:20;
>         cfg.t_ftimwin    = ones(length(cfg.foi),1).*0.5;
>         %cfg.t_ftimwin    = 5./cfg.foi;  % 7 cycles per time window
>         cfg.toi          = -1:0.05:2;
>         cfg.keeptrials   = 'no';
>         cfg.keeptapers   = 'no';
>
>         TFRAvgData{i,j,k}  = freqanalysis(cfg, PreProcData{i,j,k})
>         %save TFRAvgData TFRAvgData{i,j,k} -append;
>         if debug==1
>         cfg = [];
>         cfg.layout         = 'EEG1010.lay';
>         cfg.zparam='powspctrm';
>         cfg.xparam='time';
>         cfg.yparam='freq';
>         %cfg.xlim = -0.2 : 0.1 : 1.0;      % Define 12 time intervals
>         %cfg.zlim = [-1.3e-13 1.3e-13];    % Set the 'color' limits.
>         figure; multiplotTFR(cfg,TFRAvgData{i,j,k})
>         end
>     end
>   end
>end
>
>
>clear PreProcData;
>
>
>%% 3. GrandAvarage of Conditions over Subjects
>
>for k=1:length(Contrasts), Conditions=Contrasts{k};
>     for j=1:length(Conditions), Condition=Conditions{j};
>         cfg = [];
>         cfg.keepindividual='yes';
>         TFRGAvgData{k,j}  = freqgrandaverage(cfg, TFRAvgData{:,j,k})
>         %save TFRGAvgData TFRGAvgData{i,j} -append;
>     end
>end
>
>
>clear TFRAvgData;
>
>
>
>%% 4. Cluster Based Permutation Statitic between Conditions
>
>for k=1:length(Contrasts), Conditions=Contrasts{k};
>cfg = [];
>cfg.parameter='powspctrm'
>cfg.latency=[0.2 1.4];
>cfg.method = 'montecarlo';
>cfg.statistic = 'depsamplesT';
>cfg.clusteralpha = 0.05;
>cfg.clusterstatistic = 'maxsum';
>cfg.minnbchan = 2;
>cfg.tail = 0;
>cfg.clustertail = 0;
>cfg.alpha = 0.05;
>cfg.numrandomization = 100;
>cfg.layout         = 'EEG1010.lay';
>
>subj = length(Subjects);
>design=zeros(2,2*subj);
>for s = 1:subj
>   design(1,s) = s;
>end
>for s = 1:subj
>   design(1,subj+s) = s;
>end
>design(2,1:subj)        = 1;
>design(2,subj+1:2*subj) = 2;
>
>cfg.design   = design;
>cfg.uvar  = 1;
>cfg.ivar  = 2;
>
>[stat] = freqstatistics(cfg, TFRGAvgData{k,1}, TFRGAvgData{k,2})
>
>
>
>%% 5. Plotting the Statistics
>
>GA_TFR_AvsB = TFRGAvgData{k,1};
>GA_TFR_AvsB.powspctrm =  GA_TFR_AvsB.powspctrm - TFRGAvgData{k,2}.powspctrm;
>
>
>figure;
>j = [-0.4:0.05:1.35];
>foi = 10;  % frequency of interest
>index_foi = find(stat.freq==foi);% index of frequency of interest in stat
>for k = 1:11;
>      m=k+16;
>      subplot(4,5,k);
>      cfg = [];
>      %cfg.baseline   = [-0.5 -0.1];
>      cfg.xlim=[j(k) j(k)];
>      cfg.ylim = [foi foi];
>      cfg.highlight = find (stat.negclusterslabelmat(:,index_foi,m)==1);
>      %cfg.zlim = [-2.5e-28 2.5e-28];
>      cfg.comment = 'xlim';
>      cfg.commentpos = 'title';
>      cfg.xparam='time';
>      cfg.yparam='freq';
>      cfg.zparam='powspctrm';
>      cfg.layout='EEG1010.lay';
>
>      topoplotTFR(cfg, GA_TFR_AvsB);
>end
>
>end
>------------------------------------------------------------------
>
>Big Thanks for taking time and reading until this point!
>Best Regards, Lars Kosubek
>
>----------------------------------
>The aim of this list is to facilitate the discussion between users
>of the FieldTrip  toolbox, to share experiences and to discuss new
>ideas for MEG and EEG analysis. See also
>http://listserv.surfnet.nl/archives/fieldtrip.html and
>http://www.ru.nl/fcdonders/fieldtrip.

Virginie van Wassenhove, PhD

:::::::::::: contact info  :::::::::::::
Caltech - Division of Biology
1200 E. California Blvd M/C 139-74
Pasadena CA 91125 USA
:::::::::::::::::::::::::::::::::::::::::::::::::
vvw at caltech.edu
Virginie.van.Wassenhove at gmail.com
W: 626.395.8959
http://www.its.caltech.edu/~vvw

:::::::::::::::::: extras ::::::::::::::::::::
http://www.kiva.org
http://www.thehungersite.com/
http://www.agloco.com/r/BBBS1539
:::::::::::::::::::::::::::::::::::::::::::::::::

----------------------------------
The aim of this list is to facilitate the discussion between users of the FieldTrip  toolbox, to share experiences and to discuss new ideas for MEG and EEG analysis. See also http://listserv.surfnet.nl/archives/fieldtrip.html and http://www.ru.nl/fcdonders/fieldtrip.



More information about the fieldtrip mailing list