Leadfield normalization for LCMV beamformer
See original GitHub issueThe LCMV beamformer is still lacking the option of leadfield normalization, see #5365 and #4659.
The DICS beamformer has two options of leadfield normalization implemented, column wise or Frobenius norm. Leadfield normalization is controlled by the parameter normalized_fwd
, while the type of leadfield normalization is controlled by inversion
, which also controls the inversion during the computation of the spatial filter itself.
This issue is to serve as a discussion point for how we want to implement the leadfield normalization in LCMV and whether those options should remain like that in DICS.
Issue Analytics
- State:
- Created 5 years ago
- Comments:15 (15 by maintainers)
Top Results From Across the Web
[FieldTrip] Normalization of beamformer leadfields
Hi Nicole, Lead field normalization is a different approach than Van ... which you can run with: cfg.method = 'lcmv'; cfg.lcmv.weightnorm ...
Read more >Localizing sources using beamformer techniques
You will learn how to compute and select appropriate time windows, create an appropriate head model and lead field matrix, and various options ......
Read more >Source Activity Correlation Effects on LCMV Beamformers in a ...
A linear constrained minimum variance (LCMV) beamformer is applied to the ... At each grid point (voxel), the full rank-3 leadfield is calculated, ......
Read more >A unified view on beamformers for M/EEG source ...
In Section 2.2, we will look at different spatial normalization ... (2001) introduced a variant of the LCMV beamformer, the dynamic imaging ...
Read more >mne.beamformer.make_lcmv
mne.beamformer.make_lcmv(info, forward, data_cov, reg=0.05, noise_cov=None, ... for weight-normalized beamformer output that is scaled by a noise estimate.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@agramfort is right, leadfield normalization is crucial with unit-gain LCMVs (if no condition contrast is done) since otherwise there is a strong bias to the head center in the output (the output is basically meaningless). So yes, we do need this option in case someone wants to run the unit-gain and not the unit-noise-gain variant of the LCMV.
I am personally not aware of publications on those
inversion
options for the LCMV, so I would be hesitant to implement them there without exhaustive testing.I’ve started looking into using the new unified
_prepare_forward
for leadfield normalization (#5947) in LCMV and DICS. In theory it should reduce code duplication and put all our leadfield normalization code in one place.One other thing I noticed, though, is that
proj
is applied with potentially more channels in the forward operator than it is toCm
:This reduced
proj
is returned by_prepare_beamformer_input
, and then applied withCm = np.dot(proj, np.dot(Cm, proj.T))
(at least for LCMV).It seems a bit weird to apply one operator to G, then a subselected one to Cm. Simplifying it to the following, which is more consistent with what (implicitly) happens in the minimum norm and mixed norm code:
At least does not break any tests. @britta-wstnr is this change okay for you?