moabb.datasets.TrianaGuzman2024#

class moabb.datasets.TrianaGuzman2024(use_all_events=True, subjects=None, sessions=None, *, return_all_modalities=False)[source]#

Bases: BaseBIDSDataset

[source]

Dataset Snapshot

TrianaGuzman2024

Motor Imagery, 4 classes (imagery_sit_to_stand vs idle_sitting vs imagery_stand_to_sit vs idle_standing)

AuthorsNayid Triana-Guzman, Alvaro D. Orjuela-Cañon, Andres L. Jutinico, Omar Mendoza-Montoya, Javier M. Antelis

🇨🇴 Universidad Antonio Nariño, CO·2022
Motor Imagery Code: TrianaGuzman2024 32 subjects 1 session 17 ch 250 Hz 4 classes 15.0 s trials

Class Labels: imagery_sit_to_stand, idle_sitting, imagery_stand_to_sit, idle_standing

Overview

Sit-stand motor imagery dataset from Triana-Guzman et al 2022.

Dataset from the article Decoding EEG Rhythms Offline and Online During Motor Imagery for Standing and Sitting Based on a Brain-Computer Interface

It contains EEG data from 32 healthy subjects recorded with a 17-channel g.tec g.Nautilus PRO system at 250 Hz. The paradigm involves 4 conditions:

  • - MotorImageryA: Sitting, imagining stand-up movement
  • IdleStateA: Sitting, no imagery (idle)
  • MotorImageryB: Standing, imagining sit-down movement
  • IdleStateB: Standing, no imagery (idle)

Each trial consists of 4 s fixation, ~2 s action observation, ~1 s preparation cue, 4 s motor imagery/idle, and 4 s rest (~15 s total).

The data is hosted on OpenNeuro in BIDS format (.set files). Both offline and online phases are recorded in a single continuous file per subject. By default, only offline MI task markers (events 1-4) are used for epoching.

:param use_all_events: If True, include both MI and idle events (4 classes). If False (default), include only MI events (2 classes). :type use_all_events: bool

Citation & Impact

Stimulus Protocol
../_images/TrianaGuzman2024.svg

15s task window per trial · 4-class motor imagery paradigm · 1 runs/session across 1 sessions

HED Event Tags
HED tags4/4 events annotated

Source: MOABB BIDS HED annotation mapping.

Label
4
Sensory-event
4
imagery_sit_to_stand
Sensory-eventLabel
idle_sitting
Sensory-eventLabel
imagery_stand_to_sit
Sensory-eventLabel
idle_standing
Sensory-eventLabel

HED tree view

Tree · imagery_sit_to_stand
├─ Sensory-event
└─ Label
Tree · idle_sitting
├─ Sensory-event
└─ Label
Tree · imagery_stand_to_sit
├─ Sensory-event
└─ Label
Tree · idle_standing
├─ Sensory-event
└─ Label
Channel Summary
Total channels17
EEG17 (active wet (g.LADYbird))
Montagestandard_1020
Sampling250 Hz
Referenceright mastoid (M2)
Filter{'bandpass': [0.01, 60]}
Notch / line60 Hz

This diagram is automatically generated from MOABB metadata. Please consult the original publication to confirm the experimental protocol details.

Sit-stand motor imagery dataset from Triana-Guzman et al 2022.

Dataset from the article Decoding EEG Rhythms Offline and Online During Motor Imagery for Standing and Sitting Based on a Brain-Computer Interface [1].

It contains EEG data from 32 healthy subjects recorded with a 17-channel g.tec g.Nautilus PRO system at 250 Hz. The paradigm involves 4 conditions:

  • MotorImageryA: Sitting, imagining stand-up movement

  • IdleStateA: Sitting, no imagery (idle)

  • MotorImageryB: Standing, imagining sit-down movement

  • IdleStateB: Standing, no imagery (idle)

Each trial consists of 4 s fixation, ~2 s action observation, ~1 s preparation cue, 4 s motor imagery/idle, and 4 s rest (~15 s total).

The data is hosted on OpenNeuro in BIDS format (.set files). Both offline and online phases are recorded in a single continuous file per subject. By default, only offline MI task markers (events 1-4) are used for epoching.

param use_all_events:

If True, include both MI and idle events (4 classes). If False (default), include only MI events (2 classes).

type use_all_events:

bool

References

[1]

Triana-Guzman, N., Orjuela-Canon, A. D., & Jutinico, A. L. (2022). Decoding EEG Rhythms Offline and Online During Motor Imagery for Standing and Sitting Based on a Brain-Computer Interface. Frontiers in Neuroinformatics, 16, 961089. https://doi.org/10.3389/fninf.2022.961089

from moabb.datasets import TrianaGuzman2024
dataset = TrianaGuzman2024()
data = dataset.get_data(subjects=[1])
print(data[1])

Dataset summary

#Subj

32

#Chan

17

#Classes

4

#Trials / class

varies

Trials length

15 s

Freq

250 Hz

#Sessions

1

#Runs

1

Total_trials

7680

Participants

  • Population: healthy

  • Age: 22.4 (range: 19-29) years

  • Handedness: {‘right’: 29, ‘left’: 3}

  • BCI experience: naive

Equipment

  • Amplifier: g.tec g.Nautilus PRO

  • Electrodes: active wet (g.LADYbird)

  • Montage: standard_1020

  • Reference: right mastoid (M2)

Data Access

Experimental Protocol

  • Paradigm: imagery

  • Feedback: none

  • Stimulus: visual figure

__init__(use_all_events=True, subjects=None, sessions=None, *, return_all_modalities=False)[source]#

Initialize function for the BaseDataset.

property all_subjects#

Full list of subjects available in this dataset (unfiltered).

convert_to_bids(path=None, subjects=None, overwrite=False, format='EDF', verbose=None)[source]#

Convert the dataset to BIDS format.

Saves the raw EEG data in a BIDS-compliant directory structure. Unlike the caching mechanism (see CacheConfig), the files produced here do not contain a processing-pipeline hash (desc-<hash>) in their names, making the output a clean, shareable BIDS dataset.

Parameters:
  • path (str | Path | None) – Directory under which the BIDS dataset will be written. If None the default MNE data directory is used (same default as the rest of MOABB).

  • subjects (list of int | None) – Subject numbers to convert. If None, all subjects in subject_list are converted.

  • overwrite (bool) – If True, existing BIDS files for a subject are removed before saving. Default is False.

  • format (str) – The file format for the raw EEG data. Supported values are "EDF" (default), "BrainVision", and "EEGLAB".

  • verbose (str | None) – Verbosity level forwarded to MNE/MNE-BIDS.

Returns:

bids_root – Path to the root of the written BIDS dataset.

Return type:

pathlib.Path

Examples

>>> from moabb.datasets import AlexMI
>>> dataset = AlexMI()
>>> bids_root = dataset.convert_to_bids(path='/tmp/bids', subjects=[1])

See also

CacheConfig

Cache configuration for get_data().

moabb.datasets.bids_interface.get_bids_root

Return the BIDS root path.

Notes

Added in version 1.5.

data_path(subject, path=None, force_update=False, update_path=None, verbose=None)[source]#

Get path to local copy of a subject data.

Parameters:
  • subject (int) – Number of subject to use

  • path (None | str) – Location of where to look for the data storing location. If None, the environment variable or config parameter MNE_DATASETS_(dataset)_PATH is used. If it doesn’t exist, the “~/mne_data” directory is used. If the dataset is not found under the given path, the data will be automatically downloaded to the specified folder.

  • force_update (bool) – Force update of the dataset even if a local copy exists.

  • update_path (bool | None Deprecated) – If True, set the MNE_DATASETS_(dataset)_PATH in mne-python config to the given path. If None, the user is prompted.

  • verbose (bool, str, int, or None) – If not None, override default verbose level (see mne.verbose()).

Returns:

path – Local path to the given data file. This path is contained inside a list of length one, for compatibility.

Return type:

list of str

download(subject_list=None, path=None, force_update=False, update_path=None, accept=False, verbose=None)[source]#

Download all data from the dataset.

This function is only useful to download all the dataset at once.

Parameters:
  • subject_list (list of int | None) – List of subjects id to download, if None all subjects are downloaded.

  • path (None | str) – Location of where to look for the data storing location. If None, the environment variable or config parameter MNE_DATASETS_(dataset)_PATH is used. If it doesn’t exist, the “~/mne_data” directory is used. If the dataset is not found under the given path, the data will be automatically downloaded to the specified folder.

  • force_update (bool) – Force update of the dataset even if a local copy exists.

  • update_path (bool | None) – If True, set the MNE_DATASETS_(dataset)_PATH in mne-python config to the given path. If None, the user is prompted.

  • accept (bool) – Accept licence term to download the data, if any. Default: False

  • verbose (bool, str, int, or None) – If not None, override default verbose level (see mne.verbose()).

get_additional_metadata(subject: str, session: str, run: str) None | DataFrame[source]#

Load additional metadata for a specific subject, session, and run.

Parameters:
  • subject (str) – The identifier for the subject.

  • session (str) – The identifier for the session.

  • run (str) – The identifier for the run.

Returns:

A DataFrame containing the additional metadata if available, otherwise None.

Return type:

None | pd.DataFrame

get_block_repetition(paradigm, subjects, block_list, repetition_list)[source]#

Select data for all provided subjects, blocks and repetitions.

subject -> session -> run -> block -> repetition

See also

BaseDataset.get_data

Parameters:
  • subjects (List of int) – List of subject number

  • block_list (List of int) – List of block number

  • repetition_list (List of int) – List of repetition number inside a block

Returns:

data – dict containing the raw data

Return type:

Dict

get_data(subjects=None, cache_config=None, process_pipeline=None)[source]#

Return the data corresponding to a list of subjects.

The returned data is a dictionary with the following structure:

data = {'subject_id' :
            {'session_id':
                {'run_id': run}
            }
        }

subjects are on top, then we have sessions, then runs. A sessions is a recording done in a single day, without removing the EEG cap. A session is constitued of at least one run. A run is a single contiguous recording. Some dataset break session in multiple runs.

Processing steps can optionally be applied to the data using the *_pipeline arguments. These pipelines are applied in the following order: raw_pipeline -> epochs_pipeline -> array_pipeline. If a *_pipeline argument is None, the step will be skipped. Therefore, the array_pipeline may either receive a mne.io.Raw or a mne.Epochs object as input depending on whether epochs_pipeline is None or not.

Parameters:
  • subjects (List of int) – List of subject number

  • cache_config (dict | CacheConfig) – Configuration for caching of datasets. See CacheConfig for details.

  • process_pipeline (Pipeline | None) – Optional processing pipeline to apply to the data. To generate an adequate pipeline, we recommend using moabb.utils.make_process_pipelines(). This pipeline will receive mne.io.BaseRaw objects. The steps names of this pipeline should be elements of StepType. According to their name, the steps should either return a mne.io.BaseRaw, a mne.Epochs, or a numpy.ndarray(). This pipeline must be “fixed” because it will not be trained, i.e. no call to fit will be made.

Returns:

data – dict containing the raw data

Return type:

Dict

property metadata: DatasetMetadata | None[source]#

Return structured metadata for this dataset.

Returns the DatasetMetadata object from the centralized catalog, or None if metadata is not available for this dataset.

Returns:

The metadata object containing acquisition parameters, participant demographics, experiment details, and documentation. Returns None if no metadata is registered for this dataset.

Return type:

DatasetMetadata | None

Examples

>>> from moabb.datasets import BNCI2014_001
>>> dataset = BNCI2014_001()
>>> dataset.metadata.participants.n_subjects
9
>>> dataset.metadata.acquisition.sampling_rate
250.0