[FieldTrip] phase estimate of band-specific activity on a virtual electrode using DICS or PCC

Sebastian Michelmann SXM1085 at student.bham.ac.uk
Mon Jul 20 17:56:27 CEST 2015

Dear Fieldtrip community,

I have a question about reconstructing virtual electrodes using DICS or PCC.  I know there was a similar discussion about it (http://mailman.science.ru.nl/pipermail/fieldtrip/2009-February/002017.html) , however I didn't find all the answers in it.

My problem: I have 2  phase-effects on the electrode level which I try to localize. The effects in source space look oddly weak and in one condition on the wrong side (I triple checked all the orientations and dimensions) compared to its size on the electrode level (see attachments). Other effects show up quite nicely, so I hope there is not a general problem with my BEMs, electrode positions or the grid.

The effect (on electrode level) is phase connectivity (similarity) between two conditions at the same electrodes  (trials cond1 -> trials cond2). More specific it is encoding retrieval similarity, where encoding is a 3 second time window and retrieval is 4 seconds long. I extract my phase values using wavelet convolution and do the connectivity manually on the fourier-output.

This is how I did the source reconstruction so far:

1)      I reconstructed the activity in source space on a virtual grid, following the tutorial (http://www.fieldtriptoolbox.org/tutorial/shared/virtual_sensors) , using a common filter over all data (-0.5-3.5s encoding; -0.5-4.5s retrieval):

                % compute the beamformer filter
                 cfg                   = [];  cfg.covariance        = 'yes';  cfg.vartrllength      = 2; cfg.covariancewindow  = 'all';
                 timelock              = ft_timelockanalysis(cfg, data_all);
                cfg             = []; cfg.method      = 'lcmv';  cfg.elec = elec; cfg.vol = vol;  cfg.grid = grid; cfg.lcmv.keepfilter  = 'yes'; cfg.lcmv.fixedori     = 'yes'; % (could that be a problem?);
                source          = ft_sourceanalysis(cfg, timelock);
                source_filter = source.avg.filter(source.inside);

% use the filter to reconstruct virtual timecourse
filtermat = []; for f_ = 1 : numel(source_filter); filtermat = cat(1, filtermat, source_filter{f_,1}); end
      for tr_ = 1 : size(data.trial,2); sourcedata.trial{tr_} = filtermat*data.trial{tr_}; end

3)      Then I do the exact same analysis on the virtual data as on the electrode data. (wavelet convolution to get an estimate of the phase values in source space (cfg.output = 'fourier', cfg.wifth = 6, cfg.foi = 8, ), then the connectivity analysis.

Since the effect does not correctly show on the virtual electrode level, I think that my phase estimate in source space might be somewhat off (also I get negative T values in source space, that are not there on the electrode level)
My question is now, can I directly beam the complex fourierspectrum onto virtual electrodes using the complex filters (or maybe better the real filters, so the complex timecourse would preserve its phase properties, right?)

I was thinking of something like:

cfg = [];cfg.method = 'wavelet';  cfg.output = 'fourier';  cfg.width = 6;  cfg.keeptrials = 'yes'; cfg.toi = [-0.5:1/512:4.5]; cfg.foi = 8;
freq = ft_freqanalysis(cfg, data_all);

an additional question: can I use variable trial length (something like cfg.vartrllength = 2 with  ft_freqanalysis as well?

      latencies = freq.time(~isnan(squeeze(freq.fourierspctrm(1,1,1,:))));
cfg             = []; cfg.method      = 'pcc';%or dics?
cfg.elec = elec; cfg.vol = vol; cfg.grid = grid;
      cfg.pcc.realfilter = 'no'; % or yes?
      cfg.pcc.keepfilter  = 'yes';
      cfg.pcc.fixedori     = 'yes';
      cfg.latency = [latencies(1) latencies(end)];
      cfg.frequency = [6 10];
      source          = ft_sourceanalysis(cfg, freq);
      source_filter = source.avg.filter(source.inside);

Then I would have to multiply the filters with my fourierspectrum, right?

filtermat = []; for f_ = 1 : numel(source_filter); filtermat = cat(1, filtermat, source_filter{f_,1}); end

                sz= size(freq.fourierspctrm);
                fspctrm2 = zeros(sz(1), size(grid.inside,2), sz(3), sz(4));
for tr_ = 1 : sz(1)
      fspctrm2(tr_,:,:,:) = filtermat * squeeze(freq.fourierspctrm(tr_,:,:,:));

If you have another idea, what could have gone wrong in this reconstruction I would be greatful for suggestions!

Another potential problem is maybe, that the activity is much stronger during encoding (participants are actually getting sensory input). Is that a bad case for common filters?

I used the fieldtrip version: 20140921 with MatlabR2013a

All the best and thanks a lot in advance,


Sebastian Michelmann
PhD student in Psychology<http://www.memorybham.com/lab-simon-hanslmayr#michelmanns>
Cognition and Oscillations Lab<http://www.memorybham.com/lab-simon-hanslmayr#michelmanns>

School of Psychology<http://www.memorybham.com/lab-simon-hanslmayr#michelmanns>
University of Birmingham<http://www.memorybham.com/lab-simon-hanslmayr#michelmanns>
B15 2TT

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150720/8218b87a/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: session1elec.emf
Type: application/octet-stream
Size: 1835188 bytes
Desc: session1elec.emf
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150720/8218b87a/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: session1source.jpg
Type: image/jpeg
Size: 127206 bytes
Desc: session1source.jpg
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150720/8218b87a/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: session2elec.emf
Type: application/octet-stream
Size: 1840332 bytes
Desc: session2elec.emf
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150720/8218b87a/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: session2source.JPG
Type: image/jpeg
Size: 132611 bytes
Desc: session2source.JPG
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150720/8218b87a/attachment-0001.jpe>

More information about the fieldtrip mailing list