mne.io.read_raw_bdf

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

Reader function for BDF files.

Parameters
input_fnamestr

Path to the BDF 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 ‘BDF 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

Channel names to exclude. This can help when reading data with different sampling rates to avoid unnecessary resampling.

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, or None

If not None, override default verbose level (see mne.verbose() and Logging documentation for more). If used, it should be passed as a keyword-argument only.

Returns
rawinstance of RawEDF

The raw instance.

See also

mne.io.read_raw_edf

Reader function for EDF and EDF+ files.

mne.io.read_raw_gdf

Reader function for GDF files.

Notes

Biosemi devices trigger codes are encoded in 16-bit format, whereas system codes (CMS in/out-of range, battery low, etc.) are coded in bits 16-23 of the status channel (see http://www.biosemi.com/faq/trigger_signals.htm). To retrieve correct event values (bits 1-16), one could do:

>>> events = mne.find_events(...)  
>>> events[:, 2] &= (2**16 - 1)  

The above operation can be carried out directly in mne.find_events() using the mask and mask_type parameters (see mne.find_events() for more details).

It is also possible to retrieve system codes, but no particular effort has been made to decode these in MNE. In case it is necessary, for instance to check the CMS bit, the following operation can be carried out:

>>> cms_bit = 20  
>>> cms_high = (events[:, 2] & (1 << cms_bit)) != 0  

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 ‘BDF 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.

Examples using mne.io.read_raw_bdf