You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I recently have been looking for a Python library for SSVEP classification, but it seems that there is no such major one offering this feature. Thus, I am writing a function myself and was wondering if it would be okay to include this to MNE, for people like me to benefit from this.
Currently, the most of the public scripts for SSVEP classification are written in MATLAB, and the only SSVEP classification method in MNE (using epochs.compute_psd) is based on PSD, which is suitable to grasp a basic concept of SSVEP classification but not practical.
Describe your proposed implementation
Canonical correlation analysis (CCA) (Lin 2006) and multivariate synchronization index (MSI) (Zhang 2014) are the two decent methods to classify SSVEP responses without requiring training dataset. These find a spatial filter to maximize the correlation between multi-channel EEG data and the reference signals (sine or cosine waves with stimulation frequencies). CCA is probably the most popular algorithm for SSVEP classification, and also most of the state-of-the-art algorithms are based on this (Wong 2021, Nakanishi 2018). MSI is less popular, but it always showed a better performance in my experience.
I guess this would best fit under mne.decoding as a new class. The name can be mne.decoding.SSVEPClassification, for example. It would process mne.Epochs and yield the stimulation index as an output.
Describe possible alternatives
To the best of my knowledge, it is best option to create a new class to add this feature.
Additional context
No response
The text was updated successfully, but these errors were encountered:
do you have a public dataset we could use to build the example? I
would start by adding the dataset fetcher for this so it becomes easier to
evaluate on the same data and also on our CIs.
It would be ideal if we can use a public benchmark dataset by Wang 2016.
It is widely used one in the field, but is written in .mat format and is already epoched into trials (no continuous raw dataset available).
Data from one participant (around 100 MB) is enough.
Otherwise, we can use the public dataset from me, which is also .mat format but continuous raw data with all event markers available.
Describe the new feature or enhancement
Hi,
I recently have been looking for a Python library for SSVEP classification, but it seems that there is no such major one offering this feature. Thus, I am writing a function myself and was wondering if it would be okay to include this to MNE, for people like me to benefit from this.
Currently, the most of the public scripts for SSVEP classification are written in MATLAB, and the only SSVEP classification method in MNE (using
epochs.compute_psd
) is based on PSD, which is suitable to grasp a basic concept of SSVEP classification but not practical.Describe your proposed implementation
Canonical correlation analysis (CCA) (Lin 2006) and multivariate synchronization index (MSI) (Zhang 2014) are the two decent methods to classify SSVEP responses without requiring training dataset. These find a spatial filter to maximize the correlation between multi-channel EEG data and the reference signals (sine or cosine waves with stimulation frequencies). CCA is probably the most popular algorithm for SSVEP classification, and also most of the state-of-the-art algorithms are based on this (Wong 2021, Nakanishi 2018). MSI is less popular, but it always showed a better performance in my experience.
I guess this would best fit under
mne.decoding
as a new class. The name can bemne.decoding.SSVEPClassification
, for example. It would processmne.Epochs
and yield the stimulation index as an output.Describe possible alternatives
To the best of my knowledge, it is best option to create a new class to add this feature.
Additional context
No response
The text was updated successfully, but these errors were encountered: