Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add c-VEP paradigm and first dataset #463

Merged
merged 38 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
5d66b05
add thielen2021 cvep dataset
Aug 17, 2023
5ff57bf
add cvep paradigm
Aug 17, 2023
8a3fc82
add thielen2021 cvep dataset tests
Aug 17, 2023
5d7ed20
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 18, 2023
2fbbd93
Merge branch 'develop' into cvep
PierreGtch Aug 18, 2023
ce2dd52
update documentation related to addition c-VEP
Aug 18, 2023
3b28bbe
Update cVEP paradigm according to the changes of #408
PierreGtch Aug 18, 2023
61b88aa
change c-VEP paradigm to (potentially) multi-class
Aug 18, 2023
5aa96b3
add c-VEP paradigm tests
Aug 18, 2023
b46711e
add c-VEP banchmark tests
Aug 18, 2023
1fb1f0f
merge
Aug 18, 2023
ed26730
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 18, 2023
f342731
update c-VEP documentation
Aug 18, 2023
f1a93fc
Merge branch 'cvep' of https://github.com/thijor/moabb into cvep
Aug 18, 2023
0acad37
remove redundant interval parameter from Thielen2021 dataset
Aug 18, 2023
52a1d19
remove redundant tmin/tmax tests from BaseCVEP
Aug 18, 2023
203d5c9
Add thielen2021 to datasets __init__.py
PierreGtch Aug 18, 2023
805ca94
Add default interval
PierreGtch Aug 18, 2023
017b903
Complete scoring cases and add test
PierreGtch Aug 18, 2023
7281703
Reformat events in FakeDataset code
PierreGtch Aug 18, 2023
3189e58
Fix coquille
PierreGtch Aug 18, 2023
b0f095c
Update fake cVEP datasets parameters
PierreGtch Aug 18, 2023
9b2b957
update documentation cvep
Aug 18, 2023
9a1d07a
Merge branch 'develop' into cvep
PierreGtch Aug 19, 2023
21a5cf9
Add link in dataset_summary.rst
PierreGtch Aug 19, 2023
5f2264c
Refactoring the tests
bruAristimunha Aug 19, 2023
ee5faf4
Updating pytest
bruAristimunha Aug 19, 2023
48f51de
Fixing conflict with mne-bids and pytest
bruAristimunha Aug 19, 2023
8be6263
Increase the codacov
bruAristimunha Aug 20, 2023
525b76f
update documentation cvep
Aug 21, 2023
e66c40f
split functionality for reuse and update documentation
Aug 21, 2023
2b75568
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 21, 2023
86edc5f
add channel locations thielen2021 from loc file
Aug 21, 2023
b2d1f0f
Merge branch 'cvep' of https://github.com/thijor/moabb into cvep
Aug 21, 2023
6de909b
Clarify paradigm doc (epoch level decoding)
PierreGtch Aug 21, 2023
5438d14
Merge branch 'develop' into cvep
bruAristimunha Aug 21, 2023
1c06549
Fixing conflict
bruAristimunha Aug 22, 2023
98d6e45
Merge branch 'develop' into cvep
bruAristimunha Aug 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions docs/source/dataset_summary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,26 @@ SSVEP
:class:`Wang2016`,34,62,40,6,5s,250Hz,1


c-VEP
======================

Include neuro experiments where the participant is presented with psuedo-random noise-codes,
such as m-sequences, Gold codes, or any arbitrary "pseudo-random" code. Specifically, the
difference with SSVEP is that SSVEP presents periodic stimuli, while c-VEP presents
non-periodic stimuli. For a review of c-VEP BCI, see:

Martínez-Cagigal, V., Thielen, J., Santamaria-Vazquez, E., Pérez-Velasco, S., Desain, P.,&
Hornero, R. (2021). Brain–computer interfaces based on code-modulated visual evoked
potentials (c-VEP): A literature review. Journal of Neural Engineering, 18(6), 061002.
DOI: https://doi.org/10.1088/1741-2552/ac38cf

.. csv-table::
:header: Dataset, #Subj, #Chan, #Classes, #Trials / class, Trials length, #Epochs / class, Sampling rate, #Sessions, Codes, Presentation rate
:class: sortable

:class:`Thielen2021`,30,8,20,5,31.5s,18900 NT / 18900 T,512Hz,1,Gold codes,60Hz


Resting States
======================

Expand Down
11 changes: 11 additions & 0 deletions docs/source/datasets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,17 @@ SSVEP Datasets
Lee2019_SSVEP


--------------
c-VEP Datasets
--------------

.. autosummary::
:toctree: generated/
:template: class.rst

Thielen2021


----------------------
Resting State Datasets
----------------------
Expand Down
13 changes: 13 additions & 0 deletions docs/source/paradigms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,19 @@ SSVEP Paradigms
SSVEP
FilterBankSSVEP


---------------
c-VEP Paradigms
---------------

.. autosummary::
:toctree: generated/
:template: class.rst

CVEP
FilterBankCVEP


--------------
Fixed Interval Windows Processings
--------------
Expand Down
2 changes: 2 additions & 0 deletions docs/source/whats_new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Enhancements
- Rename many dataset class names to standardize and deprecate old names (:gh:`455` by `Pierre Guetschel`_)
- Change many dataset codes to match the class names (:gh:`455` by `Pierre Guetschel`_)
- Add :obj:`moabb.datasets.compound_dataset.utils.compound_dataset_list` (:gh:`455` by `Pierre Guetschel`_)
- Add c-VEP paradigm and Thielen2021 c-VEP dataset (:gh:`463` by `Jordy Thielen`_)

Bugs
~~~~
Expand Down Expand Up @@ -376,3 +377,4 @@ API changes
.. _Pierre Guetschel: https://github.com/PierreGtch
.. _Ludovic Darmet: https://github.com/ludovicdmt
.. _Thomas Moreau: https://github.com/tommoral
.. _Jordy Thielen: https://github.com/thijor
1 change: 1 addition & 0 deletions moabb/datasets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
from .ssvep_mamem import MAMEM1, MAMEM2, MAMEM3
from .ssvep_nakanishi import Nakanishi2015
from .ssvep_wang import Wang2016
from .thielen2021 import Thielen2021
from .upper_limb import Ofner2017
from .utils import _init_dataset_list
from .Weibo2014 import Weibo2014
Expand Down
3 changes: 2 additions & 1 deletion moabb/datasets/fake.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import re
import tempfile
from pathlib import Path

Expand Down Expand Up @@ -49,7 +50,7 @@ def __init__(
self.channels = channels
code = (
f"{code}-{paradigm.lower()}-{n_subjects}-{n_sessions}-{n_runs}-"
f"{''.join([e.replace('_', '').lower() for e in event_list])}-"
f"{''.join([re.sub('[^A-Za-z0-9]', '', e).lower() for e in event_list])}-"
f"{''.join([c.lower() for c in channels])}"
)
super().__init__(
Expand Down
Loading