mne.io.read_raw_edf

mne.io.read_raw_edf(input_fname, eog=None, misc=None, stim_channel='auto', exclude=(), infer_types=False, preload=False, verbose=None)[source]

Reader function for EDF or EDF+ files.

Parameters
input_fnamestr

Path to the EDF or EDF+ file.

eoglist or tuple

Names of channels or list of indices that should be designated EOG channels. Values should correspond to the electrodes in the file. Default is None.

misclist or tuple

Names of channels or list of indices that should be designated MISC channels. Values should correspond to the electrodes in the file. Default is None.

stim_channel‘auto’ | str | list of str | int | list of int

Defaults to ‘auto’, which means that channels named ‘status’ or ‘trigger’ (case insensitive) are set to STIM. If str (or list of str), all channels matching the name(s) are set to STIM. If int (or list of ints), channels corresponding to the indices are set to STIM.

Warning

0.18 does not allow for stim channel synthesis from TAL channels called ‘EDF Annotations’ anymore. Instead, TAL channels are parsed and extracted annotations are stored in raw.annotations. Use mne.events_from_annotations() to obtain events from these annotations.

excludelist of str | str

Channel names to exclude. This can help when reading data with different sampling rates to avoid unnecessary resampling. A str is interpreted as a regular expression.

infer_typesbool

If True, try to infer channel types from channel labels. If a channel label starts with a known type (such as ‘EEG’) followed by a space and a name (such as ‘Fp1’), the channel type will be set accordingly, and the channel will be renamed to the original label without the prefix. For unknown prefixes, the type will be ‘EEG’ and the name will not be modified. If False, do not infer types and assume all channels are of type ‘EEG’.

New in version 0.24.1.

preloadbool or str (default False)

Preload data into memory for data manipulation and faster indexing. If True, the data will be preloaded into memory (fast, requires large amount of memory). If preload is a string, preload is the file name of a memory-mapped file which is used to store the data on the hard drive (slower, requires less memory).

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
rawinstance of RawEDF

The raw instance.

See also

mne.io.read_raw_bdf

Reader function for BDF files.

mne.io.read_raw_gdf

Reader function for GDF files.

mne.export.export_raw

Export function for EDF files.

Notes

It is worth noting that in some special cases, it may be necessary to shift event values in order to retrieve correct event triggers. This depends on the triggering device used to perform the synchronization. For instance, in some files events need to be shifted by 8 bits:

>>> events[:, 2] >>= 8  

TAL channels called ‘EDF Annotations’ are parsed and extracted annotations are stored in raw.annotations. Use mne.events_from_annotations() to obtain events from these annotations.

If channels named ‘status’ or ‘trigger’ are present, they are considered as STIM channels by default. Use func:mne.find_events to parse events encoded in such analog stim channels.

The EDF specification allows optional storage of channel types in the prefix of the signal label for each channel. For example, EEG Fz implies that Fz is an EEG channel and MISC E would imply E is a MISC channel. However, there is no standard way of specifying all channel types. MNE-Python will try to infer the channel type, when such a string exists, defaulting to EEG, when there is no prefix or the prefix is not recognized.

The following prefix strings are mapped to MNE internal types:

  • ‘EEG’: ‘eeg’

  • ‘SEEG’: ‘seeg’

  • ‘ECOG’: ‘ecog’

  • ‘DBS’: ‘dbs’

  • ‘EOG’: ‘eog’

  • ‘ECG’: ‘ecg’

  • ‘EMG’: ‘emg’

  • ‘BIO’: ‘bio’

  • ‘RESP’: ‘resp’

  • ‘MISC’: ‘misc’

  • ‘SAO2’: ‘bio’

The EDF specification allows storage of subseconds in measurement date. However, this reader currently sets subseconds to 0 by default.

Examples using mne.io.read_raw_edf