mne.set_eeg_reference#
- mne.set_eeg_reference(inst, ref_channels='average', copy=True, projection=False, ch_type='auto', forward=None, *, joint=False, verbose=None)[source]#
Specify which reference to use for EEG data.
Use this function to explicitly specify the desired reference for EEG. This can be either an existing electrode or a new virtual channel. This function will re-reference the data according to the desired reference.
Note that it is also possible to re-reference the signal using a Laplacian (LAP) “reference-free” transformation using the
compute_current_source_density()
function.- Parameters:
- instinstance of
Raw
|Epochs
|Evoked
Instance of Raw or Epochs with EEG channels and reference channel(s).
- ref_channels
list
ofstr
|str
|dict
Can be:
The name(s) of the channel(s) used to construct the reference for every channel of
ch_type
.'average'
to apply an average reference (default)'REST'
to use the Reference Electrode Standardization Technique infinity reference [1].A dictionary mapping names of data channels to (lists of) names of reference channels. For example, {‘A1’: ‘A3’} would replace the data in channel ‘A1’ with the difference between ‘A1’ and ‘A3’. To take the average of multiple channels as reference, supply a list of channel names as the dictionary value, e.g. {‘A1’: [‘A2’, ‘A3’]} would replace channel A1 with
A1 - mean(A2, A3)
.An empty list, in which case MNE will not attempt any re-referencing of the data
- copybool
Specifies whether the data will be copied (True) or modified in-place (False). Defaults to True.
- projectionbool
If
ref_channels='average'
this argument specifies if the average reference should be computed as a projection (True) or not (False; default). Ifprojection=True
, the average reference is added as a projection and is not applied to the data (it can be applied afterwards with theapply_proj
method). Ifprojection=False
, the average reference is directly applied to the data. Ifref_channels
is not'average'
,projection
must be set toFalse
(the default in this case).- ch_type
list
ofstr
|str
The name of the channel type to apply the reference to. Valid channel types are
'auto'
,'eeg'
,'ecog'
,'seeg'
,'dbs'
. If'auto'
, the first channel type of eeg, ecog, seeg or dbs that is found (in that order) will be selected.New in v0.19.
Changed in version 1.2:
list-of-str
is now supported withprojection=True
.- forwardinstance of
Forward
|None
Forward solution to use. Only used with
ref_channels='REST'
.New in v0.21.
- jointbool
How to handle list-of-str
ch_type
. If False (default), one projector is created per channel type. If True, one projector is created across all channel types. This is only used whenprojection=True
.New in v1.2.
- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- instinstance of
- Returns:
- instinstance of
Raw
|Epochs
|Evoked
Data with EEG channels re-referenced. If
ref_channels="average"
andprojection=True
a projection will be added instead of directly re-referencing the data.- ref_data
array
Array of reference data subtracted from EEG channels. This will be
None
ifprojection=True
, or ifref_channels
is"REST"
or adict
.
- instinstance of
See also
mne.set_bipolar_reference
Convenience function for creating bipolar references.
Notes
Some common referencing schemes and the corresponding value for the
ref_channels
parameter:- Average reference:
A new virtual reference electrode is created by averaging the current EEG signal by setting
ref_channels='average'
. Bad EEG channels are automatically excluded if they are properly set ininfo['bads']
.
- A single electrode:
Set
ref_channels
to a list containing the name of the channel that will act as the new reference, for exampleref_channels=['Cz']
.
- The mean of multiple electrodes:
A new virtual reference electrode is created by computing the average of the current EEG signal recorded from two or more selected channels. Set
ref_channels
to a list of channel names, indicating which channels to use. For example, to apply an average mastoid reference, when using the 10-20 naming scheme, setref_channels=['M1', 'M2']
.
- REST
The given EEG electrodes are referenced to a point at infinity using the lead fields in
forward
, which helps standardize the signals.
- Different references for different channels
Set
ref_channels
to a dictionary mapping source channel names (str) to the reference channel names (str or list of str). Unlike the other approaches where the same reference is applied globally, you can set different references for different channels with this method. For example, to re-reference channel ‘A1’ to ‘A2’ and ‘B1’ to the average of ‘B2’ and ‘B3’, setref_channels={'A1': 'A2', 'B1': ['B2', 'B3']}
. Warnings are issued when a mapping involves bad channels or channels of different types.
If a reference is requested that is not the average reference, this function removes any pre-existing average reference projections.
During source localization, the EEG signal should have an average reference.
In order to apply a reference, the data must be preloaded. This is not necessary if
ref_channels='average'
andprojection=True
.For an average or REST reference, bad EEG channels are automatically excluded if they are properly set in
info['bads']
.
New in v0.9.0.
References
Examples using mne.set_eeg_reference
#
Importing data from EEG devices