[FieldTrip] ft_sourcestatistics over ROIs

Nikolaos Vardalakis N.Vardalakis at student.tudelft.nl
Thu Dec 5 10:46:56 CET 2019

Hello community,

As the title says, I am trying to run a statistical analysis between two conditions at the source level. I am performing a single-subject, between-trials statistical analysis using the Montecarlo method and ft_sourcestatistics, on localized sources using the LCMV beamformer, which I would like to constraint over a specific ROI (the motor cortex).

However, the tutorials are very limited in the scope of running statistics at the source level. Plus, it seems that the incorporation of prior knowledge in the form of ROIs is still not implemented in the function (?). Is there any way to bypass this and test for significance over specific ROIs? I understand that cluster analysis can only be used to accept/reject the null-hypothesis, and the locations of the clusters cannot be used as spatial markers of the activity, something which is specified here: http://www.fieldtriptoolbox.org/faq/how_not_to_interpret_results_from_a_cluster-based_permutation_test/

At first, I thought I would create a mask over the ROIs I am interested in, and use that mask to "zero out" the power in all other source locations before running the statistical analysis. Is that the "correct" way to go about it? Should I normalize the power of the remaining sources in some way, since I am removing power from other areas across the brain?

Obviously if any of you have any other suggestions, I would gladly read them.

Thank you all for your time!

P.S. I am attaching my code for the statistical analysis down below. This code produces the exact same results both w/ and w/o the atlas/roi cfg options.

cfg                     = [];
cfg.dim                 = sources_all.dim;
cfg.method              = 'montecarlo';
cfg.statistic           = 'ft_statfun_indepsamplesT';       %function to use when calculating the parametric t-values

cfg.parameter           = 'pow';

cfg.alpha               = 0.05;         % (type-I error rate) - note that this only implies single-sided testing
cfg.tail                = 0;            % two-sided test
cfg.correcttail         = 'alpha';      % Bonferroni correction for the two tails, i.e., divide alpha by two
%     cfg.correcttail         = 'prob';       % multiplying the p-values (in stat.prob, stat.posclusters.prob and stat.negclusters.prob) with a factor of two

cfg.correctm            = 'cluster';    % the correction to use
cfg.numrandomization    = 1000;

cfg.design              = eeg_all_curr.trialinfo;
%     cfg.uvar                = 1; % row of design matrix that contains unit variable (in this case: trials)
cfg.ivar                = 1; % row of design matrix that contains independent variable (the conditions)

% prepare neighbours sctructure
cfg_neigh               = [];
cfg_neigh.elec          = elec;
cfg_neigh.method        = 'triangulation';
cfg_neigh.feedback      = 'no';  % visualizes the neighbors
neighb                  = ft_prepare_neighbours(cfg_neigh);

cfg.neighbours          = neighb;   % the spatial structire
cfg.minnbchan           = 2; % minimum number of channels required to form a cluster

% load the atlas
atl = ft_read_atlas([paths.templ '\atlas\brainnetome\BNA_MPM_thr25_1.25mm.nii']);

% specify ROIs
cfg.atlas               = atl;
cfg.roi                 = atl.tissuelabel(contains(atl.tissuelabel, 'precentral', 'IgnoreCase', true) & contains(atl.tissuelabel, 'Left', 'IgnoreCase', true));

stats                   = ft_sourcestatistics(cfg, sources_all);

save('stats.mat', 'stat');
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20191205/3977732d/attachment.html>

More information about the fieldtrip mailing list