Source code for neurokit2.events.events_to_mne

# -*- coding: utf-8 -*-
import numpy as np


[docs] def events_to_mne(events, event_conditions=None): """**Create MNE-compatible events** Create `MNE <https://mne.tools/stable/index.html>`_ compatible events for integration with M/EEG. Parameters ---------- events : list or ndarray or dict Events onset location. Can also be a dict obtained through :func:`.events_find`. event_conditions : list An optional list containing, for each event, for example the trial category, group or experimental conditions. Defaults to ``None``. Returns ------- tuple MNE-formatted events and the event id, that can be added via ``raw.add_events(events)``, and a dictionary with event's names. See Also -------- events_find Examples ---------- .. ipython:: python import neurokit2 as nk signal = nk.signal_simulate(duration=4) events = nk.events_find(signal) events, event_id = nk.events_to_mne(events) events event_id # Conditions events = nk.events_find(signal, event_conditions=["A", "B", "A", "B"]) events, event_id = nk.events_to_mne(events) event_id """ if isinstance(events, dict): if "condition" in events.keys(): event_conditions = events["condition"] events = events["onset"] event_id = {} if event_conditions is None: event_conditions = ["event"] * len(events) # Sanity check if len(event_conditions) != len(events): raise ValueError( "NeuroKit error: events_to_mne(): 'event_conditions' argument of different length than event onsets." ) event_names = list(set(event_conditions)) event_index = list(range(len(event_names))) for i in enumerate(event_names): event_conditions = [event_index[i[0]] if x == i[1] else x for x in event_conditions] event_id[i[1]] = event_index[i[0]] events = np.array([events, [0] * len(events), event_conditions]).T return events, event_id