units of source reconstructions

,

Hi everyone,
The current source reconstructions using MNE method (stcs) have the physical unit i.e. A/m2. However, the reconstructions using LCMV have non-physical dimensionless units, which are somehow normalized. I would like to compare stcs. What would be the best way? For instance, is it possible to convert dimensionless units of LCMV reconstruction to A/m2.

From a physics point of view, it would be strange to convert dimensionless units to A/m^2 like that. Z-scoring the data would make comparison of the data possible for example

I do not agree it would be strange to express reconstruction in physical units. Ultimately the current source dipoles are physical entities, and their density has physical unit (A/m2). Z-score is a solution to get scaled values, but Z-scoring for MNE method and LCMV will result in different dimensionless scales.

I completely agree that it would not be strange to express reconstruction in physical units. I meant that if you want to go from dimensionless units back to physical units, you need a proper conversion factor, which, depending on the algorithm and problem setup, might be difficult to obtain.

Agree, yes, it might be difficult to convert back to physical units. Maybe developers can help here? e.g. @richard @drammock

Hi,

Have a look at this:

weight_normstr | None
Can be:
None
The unit-gain LCMV beamformer [1] will be computed.
'unit-noise-gain'
The unit-noise gain minimum variance beamformer will be computed (Borgiotti-Kaplan beamformer) [1], which is not rotation invariant when pick_ori='vector'. This should be combined with stc.project('pca') to follow the definition in [1].
'nai'
The Neural Activity Index [2] will be computed, which simply scales all values from 'unit-noise-gain' by a fixed value.
'unit-noise-gain-invariant'
Compute a rotation-invariant normalization using the matrix square root. This differs from 'unit-noise-gain' only when pick_ori='vector', creating a solution that:
Is rotation invariant ('unit-noise-gain' is not);

Satisfies the first requirement from [1] that w @ w.conj().T == I, whereas 'unit-noise-gain' has non-zero off-diagonals; but

Does not satisfy the second requirement that w @ G.T = θI, which arguably does not make sense for a rotation-invariant solution.

Defaults to 'unit-noise-gain-invariant'.

if you set the weight_norm to nai, it should return you the physical units. Other forms are normalized versions of LCVM.

Comment on this:
“I would like to compare STCs.” MNE and LCVM are two different techniques and will likely yield slightly different or sometimes completely different results, as each method uses different prior constraints. Both have their pros and cons.

It’s important to understand why normalized versions are often preferred over raw estimates. MNE, for example, is biased toward sources that are closer to the sensors. Noise-normalized variants of MNE, such as dSPM or sLORETA, help mitigate this bias.

In contrast, LCVM assumes that sources are not temporally correlated. Its source covariance estimation can be unreliable if the forward model including source orientation (e.g., surface reconstruction) is not properly configured.

The list of considerations is long, so your choice of method should ultimately depend on your specific research questions and experimental design.

In short: I strongly encourage you to read the relevant methods papers to get a feeling or the MNE-python’s API documentation in detail, so you understand why you’re using these techniques instead of treating them as black boxes.

Last but not least, since the normalization techniques differ, the resulting scales are also different. So, you can’t directly compare them.

HTH,
Dip