[FieldTrip] Help understanding the lcmv beamformer output

Poljac, E. (Ervin) ervin.poljac at donders.ru.nl
Tue Jan 12 16:32:52 CET 2016


Hi Marjolein,

Even een snelle vraag, wat is de risingedge(mask)?

Groetjes,
Ervin


--
Ervin Poljac, PhD
Donders Institute for Brain, Cognition and Behaviour
Centre for Cognition (DCC)
Radboud University Nijmegen
Room B.00.78A Montessorilaan 3 6500 HE Nijmegen
T. 024 36 15457
________________________________
From: fieldtrip-bounces at science.ru.nl [fieldtrip-bounces at science.ru.nl] on behalf of Lorenzo Magazzini [lorenzomagazzini at gmail.com]
Sent: Tuesday, January 12, 2016 3:46 PM
To: fieldtrip at science.ru.nl
Subject: [FieldTrip] Help understanding the lcmv beamformer output

Hi,

I hope someone can help me to understand the use of the lcmv beamformer, because either I am using it incorrectly, or I misunderstood the meaning of its output.

I am trying to get source-level power estimates of 'baseline' and 'active' time-windows. I first compute a common filter, and then apply it separately to the two conditions. I thought the power estimates would be stored, voxel-wise, in the '.avg.pow' field of the ft_sourceanalysis output. However, the values I get in the '.pow' field for the analysis of 'baseline' and 'active' windows are identical. Furthermore, the '.pow' values are identical to the '.noise' values when using cfg.projectnoise = 'yes';.

I have checked if the sensor-level data that passed on to ft_sourceanalysis is different between baseline and active - it is.

Also, if I do the following...
1. reconstruct virtual sensors by applying the common filter separately to baseline and active,
2. average the single-trial (virtual sensor) power estimates,
3. replace the '.pow' value for each voxel,
...then the contrast between baseline and active is correct.

Can anyone please help me figure out what I'm doing wrong here? Below I copied part of the code.

Many thanks in advance!

Lorenzo


%compute the leadfield
cfg                 = [];
cfg.channel         = {'MEG'};
cfg.grid            = sourcemodel;
cfg.vol             = hdm;
cfg.grad            = grad;
cfg.normalize       = 'yes';
leadfield = ft_prepare_leadfield(cfg);

%compute covariance matrix
cfg = [];
cfg.channel = {'MEG'};
cfg.removemean = 'no';
cfg.covariance = 'yes';
cfg.covariancewindow = [-1.5 1.5];
tlck = ft_timelockanalysis(cfg, data);

%get the common spatial filter
cfg = [];
cfg.method          = 'lcmv';
cfg.grid            = leadfield;
cfg.vol             = hdm;
cfg.grad            = grad;
cfg.lcmv.fixedori   = 'yes';
cfg.lcmv.keepfilter = 'yes';
cfg.lcmv.projectnoise = 'yes';
cfg.lcmv.lambda     = '5%';
src = ft_sourceanalysis(cfg, tlck);

%store the filter
wts = src.avg.filter;

%separate baseline and active windows of bandpass-filtered data
cfg = [];
cfg.toilim = [-1.5 -0.3];
data_bsln = ft_redefinetrial(cfg, data);
cfg = [];
cfg.toilim = [0.3 1.5];
data_actv = ft_redefinetrial(cfg, data);

%timelock analysis of baseline and active
cfg             = [];
cfg.channel     = {'MEG'};
cfg.keeptrials  = 'yes';
tlck_bsln = ft_timelockanalysis(cfg, data_bsln);
tlck_actv = ft_timelockanalysis(cfg, data_actv);

%get source-power estimates of bsln and actv separately using the pre-computed common filter (wts)
cfg                 = [];
cfg.method          = 'lcmv';
cfg.vol             = hdm;
cfg.grid            = leadfield;
cfg.grid.filter     = wts;
% cfg.keepfilter      = 'no';
cfg.lcmv.fixedori   = 'yes';
cfg.projectnoise    = 'yes';
cfg.lambda          = '5%';
cfg.keeptrials      = 'yes';
src_bsln = ft_sourceanalysis(cfg, tlck_bsln);
src_actv = ft_sourceanalysis(cfg, tlck_actv);


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20160112/aec635bf/attachment.html>


More information about the fieldtrip mailing list