Tutorial 22: Source estimation

[CODE]

Note by John 2018/02/16, after many discussions by phone and emails among Sylvain, Richard, Matti, Francois, and myself, the tentative decision is to release the modifications of the bst_inverse_linear_2016 as an updated code called "2018"; I'll leave it to Francois if this should be a new "bst_inverse_linear_2018" code, or simply change the Source Estimation panel to say "2018" using the older name.

The two primary differences between 2016 and 2018 are that (1) 2018 now supports the mixed head model, such that "deep brain analysis" can run with 2018.

(2) The other change to 2016 is an internal change in how noise is regularized. Matti Hamalainen (MNE-Python) and Rey (bst_wmne, our old Source Estimation) both chose the regularizer to be a fraction of the average of each sensor's variance (trace of the noise covariance divided by the number of sensors), which is the same as the average of the eigenvalues. So "0.1" as an input parameter in the "regularization" panel was calculated as 10% of the average variance. I used a different matrix norm, the maximum eigenvalue. Thus the same "0.1" would be 10% of the maximum eigenvalue, and given the large dynamic range of MEG sensors, this is a substantial difference in regularizers between the codes. Thus user's using the same fraction in both methods saw disparate results. We made the decision to change the "reg" option to be nearly the same as Rey's code, to lessen confusion among users switching between codes and platforms. We need to also strengthen the general discussion on the importance of noise regularization.

The new 2018 is "nearly" the same as Rey/Matti, because there is still an open debate on what to do with the cross-correlation terms between modalities. Matti is double checking his codes, but Rey's interpretation/implementation in 2011 was that the cross terms between, say, EEG and MEG, were zero'd out. In Source 2018, I continue this philosophy by doing the same between GRADS and MAGS, which apparently Rey/Matti do keep the cross terms. After conceptual discussions with Richard, we decided to be conservative and zero out the cross terms between all modalities. I have coded 2018 to make this an easily adjustable flag that can be later tested and distributed, if we desire.

Two other fixes in 2018 were made related to the above. (1) 2016 was not regularizing correctly across multiple modalities, by trying to find a single regularizer to the overall matrix. Thus multiple modalities did not work well, since one modality tended to dominate the eigenspectrum and the other modalities were ignored. Each modalitiey is now separately regularized by all of the regularization methods (GRADS and MAGS as well), then recombined back into an overall noise covariance matrix for joint estimation. The open question, discussed above, is whether or not to put the cross terms back between modalities back into this matrix, and we have turned that OFF for now (Feb 2018).

(2) Once the regularizer value "lambda" was selected, I had a bug in that I formed sqrt(eigenvalue)+sqrt(lambda), rather than the correct sqrt(eigenvalue + lambda).

So that users understand that they are running a new version of source estimation that may yield different results from earlier, we decided that it would be better to call this "Source Estimation 2018", rather than e.g. 2016 (fixed).

So the below comments that say "fixed in 2018" reference the above discussion.

[ONLINE DOC]

Tutorial: Dipole scanning

Tutorial EEG/Epilepsy

Tutorials/Review (last edited 2018-11-29 12:26:17 by FrancoisTadel)