Skip to main content

python library for working on mne tag

Project description

tag-mne

python library for handling tag of mne Epochs object

Install

# using pip
pip install tag-mne 

Usage

general

import tag_mne as tm

events, event_id = mne.events_from_annotations(mne_raw_object_run1)

# convert mne events and event_id to samples and markers
# markers[i] is string tag corresponding to samples[i]
samples, markers = tm.markers_from_events(events, event_id)

# by doing this, you can tag name of events to each marker
event_names = {'event_1': ['1', '101'], 'event_2': ['2', '102']}
markers = tm.add_event_names(markers, event_names)

# add tag for whole markers
# in this case, 'run:1' tag will be added
markers = tm.add_tag(markers, "run:1")

# do this if you want to tag trial name or number
# for argument 'trial', specify the markers indicate new trials
markers = tm.split_trials(markers, trial = [str(val) for val in range(201, 300)])

# add target or nontarget tag by specifying the markers for target and nontarget events
markers = tm.add_tnt(markers, target = [str(val) for val in range(101, 200)], nontarget = [str(val) for val in range(1, 100)])

# you can remove events which has specific tag
# in this case, it will remove 'misc' events which is irrelevant to analysis
samples, markers = tm.remove(samples, markers, "misc")

# finally, convert to mne events and event_id
events, event_id = tm.events_from_markers(samples, makers)

# create epochs
epochs = mne.Epochs(raw = mne_raw_object_run1,
                    events = events,
                    event_id = event_id)

epochs_list = []
epochs_list.append(epochs)

# if you have raw object for different runs or recordings...
# do the same as above
events, event_id = mne.events_from_annotations(mne_raw_object_run2)

samples, markers = tm.markers_from_events(events, event_id)

event_names = {'event_1': ['1', '101'], 'event_2': ['2', '102']}
markers = tm.add_event_names(markers, event_names)

# for this raw, specify 'run:2'
markers = tm.add_tag(markers, "run:2")

markers = tm.split_trials(markers, trial = [str(val) for val in range(201, 300)])
markers = tm.add_tnt(markers, target = [str(val) for val in range(101, 200)], nontarget = [str(val) for val in range(1, 100)])
samples, markers = tm.remove(samples, markers, "misc")
events, event_id = tm.events_from_markers(samples, makers)

# create epochs object for run 2 as well
epochs = mne.Epochs(raw = mne_raw_object_run2,
                    events = events,
                    event_id = event_id)

epochs_list.append(epochs)

# epochs_list has two epochs objects correspond to run1 and run2
# you can concatenate these epochs with giving unique event_id for epoch for each run
epochs = tm.concatenate_epochs(epochs_list)

# you can access epoch data with tag
# e.g.,
epochs['run:1/trial:1/target']

# see documentation of __getitem__() methods of mne.Epochs object, how to access data with tag

For classification

# you can get labels for classification
# X: mne.Epochs object
# Y: Y[i] is the label corresponds to X[i], 1: nontarget, 10:target

X, Y = tm.get_binary_epochs(epochs)

## Get values of tag of epochs object
# e.g., with the following code, you can get list of runs in epochs
values = tm.get_values_list(epochs, "run")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tag_mne-0.0.5.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

tag_mne-0.0.5-py3-none-any.whl (5.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page