MAMEM makes publicly available the “ssvep-eeg-processing-toolbox” for allowing peers in the field to easily design and execute their own experimental pipeline in no time.
A Matlab toolbox titled “ssvep-eeg-processing-toolbox” has been made publicly available in Github [1]. It follows a modular architecture that allows the fast execution of experiments of different configurations with minimal adjustments of the code. An experimental pipeline consist of five parts each of them receiving an input from the previous part and providing an output to the next part. The Experimenter class of the toolkit acts as a wrapper on which the parameters of the underlying parts can be specified. The parts that are given as input to an Experimenter object are the following; a) A Session object that is used for loading the dataset and segmenting the signal according to the stimuli markers. It is possible to load a specific session of a subject, all sessions of a specific subject or all the available sessions from all subjects. The output of a Session is a set of trials containing the EEG signal that was recorded during the presentation of the visual stimulus on the screen, annotated with the flashing frequency of the stimulus. b) A Preprocessing object can be used to apply a digital filter on the signals or perform techniques for artifact removal such as AMUSE. It is also possible to select a specific channel of the captured signal or to further segment the signal in the time domain. c) A Feature Extraction object receives the processed set of trials as an input and extracts numerical features for representing the signal. Available feature extraction methods include the PWelch power spectral density estimate, Fast Fourier Transform, Discrete Wavelet Transform, etc. d) A Feature Selection object can be also optionally set for receiving the set of feature vectors produced in the feature extraction stage and selecting the ones that are considered the most discriminative based on their entropy or variance. For implementing the process of feature selection, a wrapper class of the FEAST library is included in the toolbox, as well as methods for Principal Component Analysis or Singular Value Decomposition. The input of the feature selection object is the number of retained dimensions and its output is a set of feature vectors with reduced dimensionality. e) A Classification object is the next step of the experiment and includes methods for building a model given a set of annotated feature vectors and for predicting the annotation of unseen feature vectors. Some of the included classifiers are a LIBSVM wrapper class, AdaBoost and Random Forest.
The last step before running the experiment is to configure the Evaluation object of the experiment. Currently, there are two methods offered: a) “Leave one sample out” trains a classification model with n-1 trials and tests the model with the remaining trial. The process is repeated n times until there is an output for each trial; b) “Leave one subject out” trains a classification model with the trials belonging to n-1 subjects and tests the model with the trials of the remaining subject. The entire process is executed by invoking the “run” method of the Experimenter class and when the experiment is finished the results are available via the “results” property of the Experimenter class.
The “ssvep-eeg-processing-toolbox” has been made available through GitHub and can be download from here. The toolbox has been made available along with MAMEM’s first EEG experimental dataset that can be downloaded from here, as well as a technical report that summarises our initial findings that can be downloaded from here.