[FieldTrip] Functional connectivity analysis with powcorr_ortho

Ta Dinh, Son son.ta.dinh at tum.de
Mon Jul 31 09:39:51 CEST 2017

Hi Brian,

In general I woulrd recommend that you comment or reply to posts in the FieldTrip list on the list instead of sending mails directly to people so that issues that are solved are visible to everybody.

As to the issue at hand, I haven't heard from anybody and regretfully forgot to ask Mr. Schoffelen at the last conference I met him.
My solution to this was to implement the algorithm by myself according to the description given in the paper by Hipp et al. I could offer to send you the code, it should be easy to integrate with a reasonable amount of Matlab skills. Naturally I will not be able to offer any guarantees that the code is correct, but the results look reasonable enough to me.

Go to
for a plot of the grand average seed-based connectivity from the left somatosensory cortex (MNI = [- 40, - 30, 50]) to all other voxels within the Beta band for a group of 22 healthy subjects. The paradigm is 5 minutes eyes-closed resting-state.


Von: Brian Scally [RPG] [mailto:psbs at leeds.ac.uk]
Gesendet: Donnerstag, 27. Juli 2017 15:54
An: Ta Dinh, Son <son.ta.dinh at tum.de<mailto:son.ta.dinh at tum.de>>
Betreff: Fieldtrip powcorr_ortho issue

Dear Son Ta Dinh,

Hope you are well. I came across a post you made on the Fieldtrip mailing list about the powcorr_ortho function for ft_connectivity analysis. I am essentially getting the same results - random connectivity patterns. I wondered if you had heard from anyone about this issue or managed to resolve it?

All the best,

Brian Scally
PhD Student,
School of Psychology,
University of Leeds
b.scally at leeds.ac.uk<mailto:b.scally at leeds.ac.uk>

Von: fieldtrip-bounces at science.ru.nl<mailto:fieldtrip-bounces at science.ru.nl> [mailto:fieldtrip-bounces at science.ru.nl] Im Auftrag von Ta Dinh, Son
Gesendet: Donnerstag, 13. April 2017 14:58
An: fieldtrip at science.ru.nl<mailto:fieldtrip at science.ru.nl>
Betreff: [FieldTrip] Functional connectivity analysis with powcorr_ortho

Dear FieldTrip list,

I am trying to do a functional connectivity analysis using the power envelope correlation introduced by Hipp et al. (Nat Neuroscience 2012) as implemented in the ft_connectivity_powcorr_ortho function. My data consists of 5 minutes of eyes-closed resting-state data and my schematic pipeline is as follows:

  1.  I use LCMV beamforming to source reconstruct my bandpassed and preprocessed data
  2.  Using the resulting spatial filter I get a projected time series for every voxel (virtual channel)
  3.  I do a frequency analysis on these time series
  4.  The results of this frequency analysis (the Fourier coefficients) are used for the connectivity analysis using powcorr_ortho

To check the results of this analysis, I plotted the results of a seed-based connectivity analysis with a voxel in the left visual cortex (-20, -80, 20) as seed. In the alpha band, I expect to see a strong local connectivity pattern in the occipital region extending partially into the contralateral hemisphere, similar to what Siems et al. NeuroImage 2016 find. However, I get a basically random connectivity pattern. When using this pipeline with the debiased weighted phase lag index, I get exactly what I am expecting.

I looked into the source code of the ft_connectivity_powcorr_ortho function and saw a few disconcerting comments (Fix-Me's and the like) and now I am wondering whether my pipeline is simply not suited to the connectivity analysis with powcorr_ortho as implemented in FieldTrip or if the function is simply not fully implemented yet. Has anyone used it successfully before?

I use the following FieldTrip (pseudo-) code:
%% LCMV source reconstruction
cfg = [];
cfg.method = 'lcmv';
cfg.keeptrials = 'yes';
cfg.elec = elec;
cfg.grid = lf; % regular grid of 1 cm resolution
cfg.headmodel = vol % standard_bem.mat
cfg.lcmv.keepfilter = 'yes';
cfg.lcmv.lambda = '5%';
cfg.lcmv.projectnoise = 'yes';
source = ft_sourceanalysis(cfg, tlock_data);
%% pseudo-code for the computation of the virtual channel time series
virtChan_data = tlock_data;
virtChan_data.label = [source.pos(:, 1), source.pos(:,2), source.pos(:,3)];
virtChan_data.trial = source.avg.filter * tlock_data.trial;
%% frequency analysis of the virtual channels
cfg = [];
cfg.method = 'mtmfft';
cfg.output = 'fourier';
cfg.keeptrials = 'yes';
cfg.foi = 10; % alpha band
cfg.taper = 'hanning' % I originally used 3 tapers but source code in ft_connectivity_powcorr_ortho implies that multitaper is not compatible
virtFreq = ft_freqanalysis(cfg, virtChan_data);
%% connectivity analysis
cfg = [];
cfg.method = 'powcorr_ortho';
conn = ft_connectivityanalysis(cfg,virtFreq);

Any suggestions and/or comments would be immensely helpful! Thanks in advance.


Son Ta Dinh, M.Sc.
PhD student in Human Pain Research
Klinikum rechts der Isar
Technische Universit√§t M√ľnchen
Munich, Germany
Phone: +49 89 4140 7664<tel:%2B49%2089%204140%207664>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20170731/5b38a06d/attachment-0001.html>

More information about the fieldtrip mailing list