mne.preprocessing.compute_proj_ecg#

mne.preprocessing.compute_proj_ecg(raw, raw_event=None, tmin=-0.2, tmax=0.4, n_grad=2, n_mag=2, n_eeg=2, l_freq=1.0, h_freq=35.0, average=True, filter_length='10s', n_jobs=None, ch_name=None, reject={'grad': 2e-10, 'mag': 3e-12}, flat=None, bads=[], avg_ref=False, no_proj=False, event_id=999, ecg_l_freq=5, ecg_h_freq=35, tstart=0.0, qrs_threshold='auto', filter_method='fir', iir_params=None, copy=True, return_drop_log=False, meg='separate', verbose=None)[source]#

Compute SSP (signal-space projection) vectors for ECG artifacts.

This function will:

  1. Filter the ECG data channel.

  2. Find ECG R wave peaks using mne.preprocessing.find_ecg_events().

  3. Filter the raw data.

  4. Create Epochs around the R wave peaks, capturing the heartbeats.

  5. Optionally average the Epochs to produce an Evoked if average=True was passed (default).

  6. Calculate SSP projection vectors on that data to capture the artifacts.

Note

Raw data will be loaded if it hasn’t been preloaded already.

Parameters:
rawmne.io.Raw

Raw input file.

raw_eventmne.io.Raw or None

Raw file to use for event detection (if None, raw is used).

tminfloat

Time before event in seconds.

tmaxfloat

Time after event in seconds.

n_gradint

Number of SSP vectors for gradiometers.

n_magint

Number of SSP vectors for magnetometers.

n_eegint

Number of SSP vectors for EEG.

l_freqfloat | None

Filter low cut-off frequency for the data channels in Hz.

h_freqfloat | None

Filter high cut-off frequency for the data channels in Hz.

averagebool

Compute SSP after averaging. Default is True.

filter_lengthstr | int | None

Number of taps to use for filtering.

n_jobsint | None

The number of jobs to run in parallel. If -1, it is set to the number of CPU cores. Requires the joblib package. None (default) is a marker for ‘unset’ that will be interpreted as n_jobs=1 (sequential execution) unless the call is performed under a joblib.parallel_config context manager that sets another value for n_jobs.

ch_namestr | None

Channel to use for ECG detection (Required if no ECG found).

rejectdict | None

Epoch rejection configuration (see Epochs).

flatdict | None

Epoch flat configuration (see Epochs).

badslist

List with (additional) bad channels.

avg_refbool

Add EEG average reference proj.

no_projbool

Exclude the SSP projectors currently in the fiff file.

event_idint

ID to use for events.

ecg_l_freqfloat

Low pass frequency applied to the ECG channel for event detection.

ecg_h_freqfloat

High pass frequency applied to the ECG channel for event detection.

tstartfloat

Start artifact detection after tstart seconds.

qrs_thresholdfloat | str

Between 0 and 1. qrs detection threshold. Can also be “auto” to automatically choose the threshold that generates a reasonable number of heartbeats (40-160 beats / min).

filter_methodstr

Method for filtering (‘iir’ or ‘fir’).

iir_paramsdict | None

Dictionary of parameters to use for IIR filtering. See mne.filter.construct_iir_filter for details. If iir_params is None and method=”iir”, 4th order Butterworth will be used.

copybool

If False, filtering raw data is done in place. Defaults to True.

return_drop_logbool

If True, return the drop log.

New in v0.15.

megstr

Can be 'separate' (default) or 'combined' to compute projectors for magnetometers and gradiometers separately or jointly. If 'combined', n_mag == n_grad is required and the number of projectors computed for MEG will be n_mag.

New in v0.18.

verbosebool | str | int | None

Control verbosity of the logging output. If None, use the default verbosity level. See the logging documentation and mne.verbose() for details. Should only be passed as a keyword argument.

Returns:
projslist of Projection

List of computed projection vectors.

ecg_eventsndarray

Detected ECG events.

drop_loglist

The drop log, if requested.

Notes

Filtering is applied to the ECG channel while finding events using ecg_l_freq and ecg_h_freq, and then to the raw instance using l_freq and h_freq before creation of the epochs used to create the projectors.

Examples using mne.preprocessing.compute_proj_ecg#

Repairing artifacts with SSP

Repairing artifacts with SSP

Divide continuous data into equally-spaced epochs

Divide continuous data into equally-spaced epochs