mne.minimum_norm.make_inverse_operator(info, forward, noise_cov, loose='auto', depth=0.8, fixed='auto', limit_depth_chs=True, rank=None, use_cps=True, verbose=None)[source]

Assemble inverse operator.

info : dict

The measurement info to specify the channels to include. Bad channels in info[‘bads’] are not used.

forward : dict

Forward operator.

noise_cov : instance of Covariance

The noise covariance matrix.

loose : float in [0, 1] | ‘auto’

Value that weights the source variances of the dipole components that are parallel (tangential) to the cortical surface. If loose is 0 then the solution is computed with fixed orientation, and fixed must be True or “auto”. If loose is 1, it corresponds to free orientations. The default value (‘auto’) is set to 0.2 for surface-oriented source space and set to 1.0 for volumetric, discrete, or mixed source spaces, unless fixed is True in which case the value 0. is used.

depth : None | float in [0, 1]

Depth weighting coefficients. If None, no depth weighting is performed.

fixed : bool | ‘auto’

Use fixed source orientations normal to the cortical mantle. If True, the loose parameter must be “auto” or 0. If ‘auto’, the loose value is used.

limit_depth_chs : bool

If True, use only grad channels in depth weighting (equivalent to MNE C code). If grad chanels aren’t present, only mag channels will be used (if no mag, then eeg). If False, use all channels.

rank : None | int | dict

Specified rank of the noise covariance matrix. If None, the rank is detected automatically. If int, the rank is specified for the MEG channels. A dictionary with entries ‘eeg’ and/or ‘meg’ can be used to specify the rank for each modality.

use_cps : None | bool (default True)

Whether to use cortical patch statistics to define normal orientations. Only used when converting to surface orientation (i.e., for surface source spaces and loose < 1).

verbose : bool, str, int, or None

If not None, override default verbose level (see mne.verbose()).

inv : instance of InverseOperator

Inverse operator.


For different sets of options (loose, depth, fixed) to work, the forward operator must have been loaded using a certain configuration (i.e., with force_fixed and surf_ori set appropriately). For example, given the desired inverse type (with representative choices of loose = 0.2 and depth = 0.8 shown in the table in various places, as these are the defaults for those parameters):

Inverse desired Forward parameters allowed
  loose depth fixed force_fixed surf_ori
Loose constraint,
Depth weighted
0.2 0.8 False False True
Loose constraint
0.2 None False False True
Free orientation,
Depth weighted
1.0 0.8 False False True
Free orientation
1.0 None False False True | False
Fixed constraint,
Depth weighted
0.0 0.8 True False True
Fixed constraint
0.0 None True True True

Also note that, if the source space (as stored in the forward solution) has patch statistics computed, these are used to improve the depth weighting. Thus slightly different results are to be expected with and without this information.