[FieldTrip] LCMV beamformer source reconstruction

Johanna Zumer johanna.zumer at gmail.com
Tue Oct 30 10:37:02 CET 2012


Dear Alistair,

In addition to the informative response from Jörn, I just wanted to add:

One tiny thing I note is that you type cfg.lmvc.lambda which should be
cfg.lcmv.lambda.

Why is your filter of size 3x65?   Shouldn't it be 3x125 (3 source
orientations x 125 EEG channels)?

Cheers,
Johanna

2012/10/30 "Jörn M. Horschig" <jm.horschig at donders.ru.nl>

>  Dear Alistair,
>
> I am not quite sure whether I understand your request correctly, but you
> are looking for help to get the maximum activity per trial in your source
> reconstructed data? I guess your confusion arises because of the different
> subfields, so here a short explanation:
>
> Every dipole has strengths in 3 directions (think of it as magnetic field
> strength in the x,y and z direction), this is stored in .mom
> In order to get it down to one number instead of three, there are
> different possibilities, but what's roughly happening by default is that an
> SVD is computed then the principal direction is taken, i.e. the strongest
> of these three vectors. This is what you find back in .pow.  The filter
> matrix is the filter per grid position to get from your sensor data to the
> source data. Noise is an approximation of the noise level per trial.
>
> So, if you want to get the maximum activity, I would suggest to take [~,
> idx] = max(sourceDiff.avg.pow{i}), where idx then is the the grid position
> of maximal power. If you are interested in the maximum over e.g. the
> posterior part of the brain, you should limit your search. You can best do
> that by using sourceDiff.pos and an atlas.
>
> If that does not answer your question, feel free to clarify your request ;)
>
> Best,
> Jörn
>
>
> On 10/25/2012 10:40 PM, Alistair Vardy - 3ME wrote:
>
>  Hi all,****
>
> ** **
>
> I trying to reconstruct the activity in a source using the LCMV beamformer
> with EEG data. My code follows several examples that stop at the source
> localization. Unfortunately, I am unable to reconstruct the source. ****
>
> ** **
>
> The data is a series of 198 button presses, self-paced. The two time
> locked data sets are pre- and post-event windows. The data is filtered in
> the beta band (13-30 Hz). There are 128 EEG channels, three of which are
> excluded due to excessive noise. The data was re-referenced to the common
> average. The source that provides the normalized difference in power
> between the two time windows has a field avg with subfields, filter, noise,
> pow, and mom:****
>
> ** **
>
> sourceDiff = ****
>
> ** **
>
>         dim: [17 13 14]****
>
>        time: [1x819 double]****
>
>         pos: [3094x3 double]****
>
>      inside: [1x1567 double]****
>
>     outside: [1x1527 double]****
>
>      method: 'average'****
>
>         avg: [1x1 struct]****
>
>         cfg: [1x1 struct]****
>
> ** **
>
> sourceDiff.avg****
>
> ** **
>
> ans = ****
>
> ** **
>
>        pow: [1x3094 double]****
>
>        mom: {1x3094 cell}****
>
>      noise: [1x3094 double]****
>
>     filter: {1x3094 cell}****
>
> ** **
>
> The moment entries are sized  3 x 819, the filter 3 x 65.****
>
> ** **
>
> I hope someone can help me with the code required to reconstruct the
> source at the voxel with the largest power during the entire duration of
> each trial. The code used to determine the source is below. MRI, head model
> and leadfield were computed as well but are not included in the code below.
> ****
>
> ** **
>
> Kind regards,****
>
> ** **
>
> Alistair****
>
> ** **
>
> channel         = {'EEG', '-AFF1', '-AFZ', '-AF1'};****
>
> ** **
>
> ** **
>
> cfg1                 = [];****
>
> cfg1.keeptrials      = 'yes';****
>
> cfg1.covariance      = 'yes';****
>
> cfg1.channel         = channel;****
>
> dataPre             = ft_redefinetrial(cfg1, data1FIC);****
>
> timelock1           = ft_timelockanalysis(cfg1, dataPre);****
>
>    ****
>
> cfg2                 = [];     ****
>
> cfg2.keeptrials      = 'yes';****
>
> cfg2.covariance      = 'yes';****
>
> cfg2.channel         = channel;****
>
> dataPost            = ft_redefinetrial(cfg2, data2FIC);****
>
> timelock2           = ft_timelockanalysis(cfg2, dataPost);****
>
> ****
>
> ** **
>
> %% Source analysis****
>
> cfg = [];****
>
> cfg.grid = grid;****
>
> cfg.hdmfile = volname;****
>
> cfg.elec = sens;****
>
> cfg.vol = vol;****
>
> cfg.method = 'lcmv';****
>
> cfg.channel = channel;****
>
> cfg.lcmv.keeptrials = 'yes';****
>
> % cfg.lcmv.projectnoise = 'yes';****
>
> ****
>
> cfg.lmvc.lambda     = '5%';****
>
> cfg.lcmv.keepfilter = 'yes';****
>
> [source1] = ft_sourceanalysis(cfg, timelock1);****
>
> [source2] = ft_sourceanalysis(cfg, timelock2);****
>
> ** **
>
> sourceDiff = source2;****
>
> sourceDiff.avg.pow = (source2.avg.pow - source1.avg.pow) ./
> source1.avg.pow;****
>
> ** **
>
> ** **
>
> ** **
>
>
> _______________________________________________
> fieldtrip mailing listfieldtrip at donders.ru.nlhttp://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
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20121030/06176b48/attachment-0001.html>


More information about the fieldtrip mailing list