[FieldTrip] Normalization of beamformer leadfields

Sarang S. Dalal sarang at cfin.au.dk
Wed Mar 1 13:08:55 CET 2017

Hi Nicole,

Lead field normalization is a different approach than Van Veen’s method, which is often called the Neural Activity Index (NAI) and closely related to the “unit noise gain” or “weight normalization” concept you might see in some literature.

I have implemented the NAI in beamformer_lcmv.m, which you can run with:
cfg.method = ‘lcmv’;
cfg.lcmv.weightnorm = ‘nai’;

However, the equivalent has not been implemented in the other beamformer variants yet (SAM, DICS). You can still get output equivalent to SAM using the LCMV method if you use cfg.keeptrials=‘yes’ and average the power of the resulting time series (in source.avg.mom). This would give you a measure of induced power changes (rather than evoked), like the SAM procedure would. Unfortunately this procedure is not yet documented, but it’s not too tricky. (Please use a brand new version of FieldTrip if you’d like to try this, as an old bug in the NAI orientation selection was inadvertently re-introduced in FieldTrip versions between September 2016 and last week).

I personally find that the NAI gives more sensible results if you are contrasting something like post-stimulus activity to a pre-stimulus baseline. If you are instead contrasting two conditions against each other rather than a baseline, then the different normalization approaches should give (almost) the same results anyway.

Anyway, regarding lead field normalization: it does indeed do a voxel-by-voxel normalization since it cycles through all the voxels in a for loop ('for ii=1:Ndipoles' on the second line). It is purely based on the properties of the lead field, and as you noticed, is unlike Van Veen’s method in that it does not use the noise estimate at all. BTW, I believe that the lead field "column normalization" approach has been more popular in the literature. This normalizes the x/y/z components of the lead field independently, rather than all together. You can try this with cfg.normalize = ‘column’ and see how the results compare.


On 01 Mar 2017, at 11:43, Klink-3, N.E.C. van <N.vanKlink-2 at umcutrecht.nl<mailto:N.vanKlink-2 at umcutrecht.nl>> wrote:

Dear all,

I want to do SAM beamformer source localization on single trial EEG data. I would like to normalize the leadfields to correct for depth, like mentioned in the lmcv beamformer tutorial: (http://www.fieldtriptoolbox.org/tutorial/beamformer_lcmv)

cfg                  = [];
cfg.elec             = hdr.elec;  % electrode distances
cfg.headmodel        = vol;   % volume conduction headmodel
cfg.grid             = grid;  % normalized grid positions
cfg.channel          = {'EEG'};
cfg.normalize        = 'yes'; % to remove depth bias (Q in eq. 27 of van Veen et al, 1997).
lf                   = ft_prepare_leadfield(cfg);

However when I look what happens with cfg.normalize='yes', the following script is used in ft_compute_leadfield, from line 570:

  case 'yes'
    for ii=1:Ndipoles
      tmplf = lf(:, (3*ii-2):(3*ii));
      if normalizeparam==0.5
        % normalize the leadfield by the Frobenius norm of the matrix
        % this is the same as below in case normalizeparam is 0.5
        nrm = norm(tmplf, 'fro');
        % normalize the leadfield by sum of squares of the elements of the leadfield matrix to the power "normalizeparam"
        % this is the same as the Frobenius norm if normalizeparam is 0.5
        nrm = sum(tmplf(:).^2)^normalizeparam;
      if nrm>0
        tmplf = tmplf ./ nrm;
      lf(:, (3*ii-2):(3*ii)) = tmplf;

This seems to me as independent of the dipole location, and does not use an estimate of the noise spectrum as in Eq 27 of van Veen et al 1997.
DICS beamformer has the option to estimate the noise spectrum with 'projectnoise', but SAM beamformer does not have that option. SAM does something with noise and a lambda, which is noise regularization I guess (beamformer_sam from line 102). I use Fieldtrip 20170212.

My main question: how do I correct the leadfields for depth bias?

Thanks in advance,

De informatie opgenomen in dit bericht kan vertrouwelijk zijn en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onterecht ontvangt, wordt u verzocht de inhoud niet te gebruiken en de afzender direct te informeren door het bericht te retourneren. Het Universitair Medisch Centrum Utrecht is een publiekrechtelijke rechtspersoon in de zin van de W.H.W. (Wet Hoger Onderwijs en Wetenschappelijk Onderzoek) en staat geregistreerd bij de Kamer van Koophandel voor Midden-Nederland onder nr. 30244197.

Denk s.v.p aan het milieu voor u deze e-mail afdrukt.


This message may contain confidential information and is intended exclusively for the addressee. If you receive this message unintentionally, please do not use the contents but notify the sender immediately by return e-mail. University Medical Center Utrecht is a legal person by public law and is registered at the Chamber of Commerce for Midden-Nederland under no. 30244197.

Please consider the environment before printing this e-mail.

fieldtrip mailing list
fieldtrip at donders.ru.nl<mailto:fieldtrip at donders.ru.nl>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20170301/640e0b39/attachment-0002.html>

More information about the fieldtrip mailing list