[FieldTrip] Leadfield normalization: cfg.normalizeparam value
Schoffelen, J.M. (Jan Mathijs)
jan.schoffelen at donders.ru.nl
Wed Mar 10 17:25:00 CET 2021
Hi Michal,
Question:
What is "the proper" value of the cfg.normalizeparam for ft_prepare_leadfield function (https://www.fieldtriptoolbox.org/reference/ft_prepare_leadfield/) ?
OR in other words
Should the distribution of the leadfield norms across brain volume be uniform?
I don’t see why this would need to be the case. It probably depends on the type of analysis you want to perform, and what kind of inverse algorithm you use.
Question background:
I have noticed that the default value is 0.5, however in the beamforming routines from the Human Connectome Project the value is set to 1.0.
As Jörn Horshig pointed (https://mailman.science.ru.nl/pipermail/fieldtrip/2013-July/006759.html), there is no correct way of normalizing.
I agree with Jörn.
I have plotted leadfield norm for different setting:
<normalizeparam_0_0_SVD.png>
Fig.1. cfg.normalizeparam = 0.0 (leadfield norm increase radially outwards from the center; 10^{-9} order of magnitude)
<normalizeparam_0_5_SVD.png>
Fig.2. cfg.normalizeparam = 0.5 (suggested default value; leadfield norms are more or less uniformly distributed)
<normalizeparam_1_0_SVD.png>
Fig.3. cfg.normalizeparam = 1.0 (the value used in the HCP beamforming; leadfield norm decrease radially outwards from the center; 10^{+8} order of magnitude)
Further details:
I am preparing a scalar leadfield (dipole orientations optimized using an SVD approach) for beamforming of the resting-state MEG data for further spectral analyses on the reconstructed sources level.
As the data come from the Human Connectome Project database, I adapted leadfield computation from their beamforming script (hcp_bfblpenv.m from megconnectome-3.0 pipeline):
1. allChansMEG = ft_channelselection({'MEG'}, grad.label);
2. cfg = [];
3. cfg.grid = grid; % Grid for individual's brain in MEG sensor space
4. cfg.vol = vol;
5. cfg.grad = grad;
6. cfg.reducerank = 2; % (default = 3 for EEG, 2 for MEG)
7. cfg.normalize = 'yes' ; % Normalise Leadfield: 'yes' for beamformer
8. cfg.normalizeparam = 1; % depth normalization parameter
9. cfg.channel = allChansMEG;
10. lfg = ft_prepare_leadfield(cfg);
11. lfg.label = allChansMEG;
12. % optimization of the leadfield orientation (SVD approach)
13. ratio = 0.07;
14. lambda = ratio * trace(Cy)/size(Cy,1);
15. invCy = pinv(Cy + lambda * eye(size(Cy)));
16.
17. for iDip = 1:nDip
18. if ~isempty(lfg.leadfield{iDip})
19. lf = lfg.leadfield{iDip}(indB,:);
20. [u, s, v] = svd(real(pinv(lf' * invCy *lf)));
21. eta = u(:,1);
22. lf = lf * eta;
23. lfgSVD.leadfield{iDip} = lf;
24. else
25. lfgSVD.leadfield{iDip} = [];
26. end
27. end
Line 8. contains the cfg.normalizeparam setting for which I try to figure out the correct value.
Leadfield norms were computed this way:
lfgNorm = cellfun(@(x) norm(x, 'fro'), lfgSVD.leadfield);
Thank you very much for your hints and suggestions.
The normalization parameter only affects the ’scale’ of the vector leadfield (as long as you don’t do a per-column normalisation, which does not make sense to begin with in my opinion: since you specified cfg.normalize = ‘yes’ (and not ‘column’, you’re fine), so the beamformer spatial filter’s shape will not be affected. Thus, the overall spatial filter output will not change in shape (i.e. temporal characteristics), only in amplitude.
So, in the end it boils down to the question what you want to do with the beamformer output in terms of post-processing, whether or not you need to worry about the normalization parameter to begin with. In an experimental setting we’d always compare across conditions (or against a baseline), so any location specific (and uninteresting) depth bias (either or not ‘corrected’ by a leadfield normalisation) will drop out of the equation anyhow.
Best wishes,
Jan-Mathijs
Kind regards,
Michał Komorowski, MSc
Nicolaus Copernicus University in Toruń
Faculty of Physics, Astronomy and Informatics
Department of Informatics
_______________________________________________
fieldtrip mailing list
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
https://doi.org/10.1371/journal.pcbi.1002202
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20210310/3c280d31/attachment.htm>
More information about the fieldtrip
mailing list