How choose parameters of compute_covariance and make_inverse_operator for EEG source localization?

  • MNE version: 1.7.1
  • operating system: Windows 10

Dear MNE community,

I am novice in source localization and I am not completely sure about how choose good parameters of some functions I used to do source localization on EEG data.
I used freeSurfer MRI template to do this.

  1. First, to compute noise covariance (to inject in the computation of the inverse operator), I used a pre-cue EEG recording, preprocessed as the target EEG data of interest. Then I used the function mne.compute_covariance. In the parameters of the function we can choose the “method” and here I am a bit lost. In a tutorial (Computing a covariance matrix — MNE 1.8.0 documentation), it is written method = [“shrunk”,“empirical”]. Is it correct to choose the same thing? Why? How to choose it correctly?

  2. My second question is about depth parameter in the function mne.minimum_norm.make_inverse_operator. By default, it is equal to 0.8. But in the notes ate the end of this page (mne.minimum_norm.make_inverse_operator — MNE 1.8.0 documentation), it is written that 0.8 is ok for MEG but for EEG it should be between 2 and 5. Do I have to change to a value between 2 and 5? Maybe it is a very naive question…

Thanks a lot to consider my questions.

Best regards,

Fanny

Hi @FannyGrosselin and welcome to the forum!

The referenced paper, if I understand the results correctly, shows that depth weighting is basically irrelevant for dSPM and sLORETA; it is very important for MNE (the method, not the software), but I don’t think you should use that algorithm for EEG data anyway. So as long as you use sLORETA or dSPM, you shouldn’t need to worry about the depth weighting too much. They don’t address eLORETA in the paper but I assume it behaves similarly.

Best wishes,
Richard

I’d say, if in doubt, just choose "shrunk". That should work well in most cases (even though it might take a little while to complete).

The different methods are discussed in this paper:

Richard

Hi Richard,

Thank you very much for your responses, advices and the related article.

Concerning the method for the computation of noise covariance: in MNE Python, what happens if 2 methods are put (like “shrunk”, “empirical”])? Does it choose the “best” covariance matrix?

I think you’ll receive a list of estimators, but I cannot tell you from the top of my head how to use them. Better check the docs again or just try it out. I haven’t done that in a while :slight_smile:

FYI "shrunk" performs cross-validation for optimal shrinkage, this makes it “good” but also slow. It’s my method of choice.

Richard

I will check.
Thanks a lot for your time.