[FieldTrip] Beamforming: Scalp vs. Source mismatch
"Jörn M. Horschig"
jm.horschig at donders.ru.nl
Tue Sep 10 17:26:26 CEST 2013
Dear Ulrich,
as no one dared to respond, yet, I can add my 2 cents. I am afraid they
won't help much though ;) Also, I am not in expert in EEG source
reconstruction, so I have no good intuition how EEG activity should
translate to the source space.
First of all, it might be good to verify the coordinate system you are
in, i.e. is left in your source plot really left. Next, you could try to
check whether the coordinate systems are set correctly - if the
coordinate systems are screwed up, this can result in nasty 90 degrees
of more complex rotations of your data. This all, however, would not
explain why the topographies match for some subjects better than for
others. But maybe you can share part of the pipeline for creating the
forward model and give us a glimpse of the resulting structures?
Although it looks like the forward model does line up well, since
there's nothing else to fuss about, it's the only hunge I got right now.
Alternatively, maybe parameters for the topo plotting are still
different from the source plotting, so it might also help to show us the
calls and cfg-settings for the plotting routine
In addition, I can see that you do not set cfg.keeptrials='yes' when
computing the FFT of your data. I don't immediately see why that would
solve the discrepancy between sensor- and source-level, but it might
help to get a better estimate anyway (so that variance over trials can
be taken into account). Maybe you just didn't do anything wrong, and
this is just the step missing to get a more trustworthy result?
I hope any of this helps, and otherwise that someone else is of more help ;)
Best,
Jörn
On 9/6/2013 4:42 PM, Pomper, Ulrich wrote:
> Dear fieldtrip community,
> In my data I found a disconcerting mismatch between EEG scalp topographies and corresponding beamforming solutions, both on the subject and group average level.
> I understand that there might not be a perfect match between source and scalp, but I would expect at least a little resemblance.
>
> As an example, the link below features topos and source plots from an event-related beta-band decrease after a short tactile stimulation to the left index finger.
> Further below you can find the code I used for the beamforming. (Note that the topos were created from the ft_freqanalysis command within the beamforming script, so baseline and poststimulus data are exactly the same for both source and scalp-level data).
>
> Eight out of 13 subjects show practically no match between source and scalp. On the group average level, the source solution shows a left-anterior decrease which seems not present in the scalp data. Also, the right heispheric decrease at the scalp shifts from central to more posterior sites, which doesn't fit with it beeing of somatosensory origin anymore.
>
> I’d appreciate any comments on my data, as well as suggestions on how to proceed to get a more trustworthy source solution to my beta-band decrease.
> Cheers,
> Ulrich
>
>
> Exemplary plots: https://www.dropbox.com/s/git4w8u3a901l3w/source_vs_scalp.pdf
>
> % Beamforming code %
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> foi = 20;
> tapsmofreq = 5;
> toi_pre = [-.4 -.2];
> toi_post = [.15 .35];
> lambda = '5%';
>
> %% cut data and append for common filters
> cfg = [];
> cfg.toilim = toi_pre;
> dataPre = ft_redefinetrial(cfg, data);
>
> cfg.toilim = toi_post;
> dataPost = ft_redefinetrial(cfg, data);
>
> dataAll = ft_appenddata([], dataPre, dataPost);
>
> %% Calculate common CSD
>
> cfg = [];
> cfg.method = 'mtmfft';
> cfg.output = 'powandcsd';
> cfg.tapsmofrq = tapsmofreq;
> cfg.foilim = [foi foi];
> freqAll = ft_freqanalysis(cfg, dataAll);
>
> %% Calculate CSD for seperate conditions
>
> cfg = [];
> cfg.method = 'mtmfft';
> cfg.output = 'powandcsd';
> cfg.tapsmofrq = tapsmofreq;
> cfg.foilim = [foi foi];
> freqPre = ft_freqanalysis(cfg, dataPre);
>
> cfg = [];
> cfg.method = 'mtmfft';
> cfg.output = 'powandcsd';
> cfg.tapsmofrq = tapsmofreq;
> cfg.foilim = [foi foi];
> freqPost = ft_freqanalysis(cfg, dataPost);
>
> %% Source Analysis
>
> cfg = [];
> cfg.method = 'dics';
> cfg.frequency = foi;
> cfg.grid = lf_126;
> cfg.vol = vol;
> cfg.dics.projectnoise = 'no';
> cfg.dics.lambda = lambda;
> cfg.dics.keepfilter = 'yes';
> cfg.dics.realfilter = 'yes';
>
> sourceAll = ft_sourceanalysis(cfg, freqAll);
>
> %% apply common filter to seperate conditions
>
> cfg.grid.filter = sourceAll.avg.filter;
>
> sourcePre = ft_sourceanalysis(cfg, freqPre);
> sourcePost = ft_sourceanalysis(cfg, freqPost);
>
> %% Relchange from baseline
>
> sourceDiff = sourcePost;
> sourceDiff.avg.pow = (sourcePost.avg.pow - sourcePre.avg.pow) ./ sourcePre.avg.pow;
>
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
--
Jörn M. Horschig
PhD Student
Donders Institute for Brain, Cognition and Behaviour
Centre for Cognitive Neuroimaging
Radboud University Nijmegen
Neuronal Oscillations Group
FieldTrip Development Team
P.O. Box 9101
NL-6500 HB Nijmegen
The Netherlands
Contact:
E-Mail: jm.horschig at donders.ru.nl
Tel: +31-(0)24-36-68493
Web: http://www.ru.nl/donders
Visiting address:
Trigon, room 2.30
Kapittelweg 29
NL-6525 EN Nijmegen
The Netherlands
More information about the fieldtrip
mailing list