Source code for neurokit2.eeg.mne_data
# -*- coding: utf-8 -*-
[docs]
def mne_data(what="raw", path=None):
"""**Access MNE Datasets**
Utility function to easily access MNE datasets.
Parameters
-----------
what : str
Can be ``"raw"`` or ``"filt-0-40_raw"`` (a filtered version).
path : str
Defaults to ``None``, assuming that the MNE data folder already exists. If not,
specify the directory to download the folder.
Returns
-------
object
The raw mne object.
Examples
---------
.. ipython:: python
import neurokit2 as nk
raw = nk.mne_data(what="raw")
raw = nk.mne_data(what="epochs")
"""
# Try loading mne
try:
import mne
except ImportError:
raise ImportError(
"NeuroKit error: mne_data(): the 'mne' module is required for this function to run. ",
"Please install it first (`pip install mne`).",
)
old_verbosity_level = mne.set_log_level(verbose="WARNING", return_old_level=True)
# Find path of mne data
if path is None:
try:
path = str(mne.datasets.sample.data_path())
except ValueError:
raise ValueError(
"NeuroKit error: the mne sample data folder does not exist. ",
"Please specify a path to download the mne datasets.",
)
# Raw
if what in ["raw", "filt-0-40_raw"]:
path += "/MEG/sample/sample_audvis_" + what + ".fif"
data = mne.io.read_raw_fif(path, preload=True)
data = data.pick_types(meg=False, eeg=True)
# Epochs
elif what in ["epochs", "evoked"]:
raw = mne.io.read_raw_fif(path + "/MEG/sample/sample_audvis_filt-0-40_raw.fif").pick_types(
meg=False, eeg=True
)
events = mne.read_events(path + "/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif")
event_id = {"audio/left": 1, "audio/right": 2, "visual/left": 3, "visual/right": 4}
data = mne.Epochs(raw, events, event_id, tmin=-0.2, tmax=0.5, baseline=(None, 0))
if what in ["evoked"]:
data = [data[name].average() for name in ("audio", "visual")]
else:
raise ValueError("NeuroKit error: mne_data(): the 'what' argument not recognized.")
mne.set_log_level(old_verbosity_level)
return data