This is a (hopefully) flexible package for decoding epoched EEG data in Python. It includes support for loading and managing EEG data (in .mat format), processing epoched data, cross validation, classification, and visualization with statistical testing. While most of the functionality is geared towards within-subject, timepoint by timepoint analyses, this package also supports cross-session and cross-subject classification. While this is primarily meant to be useful for members of the Awh/Vogel Lab, we hope that it is general for use by others. This package is currently being developed, use at your own risk! Always check your code, look up functions, and reach out to us if you have questions!
Additionally, it should support representational similarity analysis (RSA) using crossnobis distance metrics, as well as support fitting and visualizing custom models, as well as using these distances as inputs for a MDS projection
Organizes and loads in EEG, trial labels, behavior, eyetracking, and session data.
Synchronizes data between different experiments. Particularly useful for participants who completed multiple sessions or experiments.
Data processing and cross-validation.
Classification and storing of classification outputs.
Visualization and statistical testing.
Visualization of EEG data.
Handles saving and reading RDM data as a hdf5 file. Largely used by other classes
Handles calculation of pairwise crossnobis distances between conditions.
Calculates within subject and timepoint
Handles fitting of theoretical models to the empirical RDM, as well as visualizations (within and across timepoints)
Calculates and visualizes MDS projections from crossnobis distances. Also supports making animated gifs.
Most basic use case for EEG-decoder. Load data from experiment, decode set size 1 vs 3, then plot accuracy and confusion matrix.
Use the Experiment_Syncer
class to synchronize subject data across multiple experiments. Also uses train_test_custom_split
. Train on Exp1
and Exp2
, and use that model to decode set size 1 vs 3 in Exp3
.
Use the train_labels
input to only train on 1 and 3, while testing on 1, 2, and 3. Plot the output of set size 2 trials with the 'plot_hyperplane' function.