Braindecode 1.3.0.dev181594385__tar.gz → 1.3.0.dev182330353__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {braindecode-1.3.0.dev181594385/braindecode.egg-info → braindecode-1.3.0.dev182330353}/PKG-INFO +1 -1
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/__init__.py +2 -2
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/moabb.py +15 -5
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datautil/__init__.py +11 -1
- braindecode-1.3.0.dev182330353/braindecode/datautil/channel_utils.py +114 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/__init__.py +4 -0
- braindecode-1.3.0.dev182330353/braindecode/models/eegsym.py +917 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/fbcnet.py +3 -1
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/fbmsnet.py +18 -6
- braindecode-1.3.0.dev182330353/braindecode/models/medformer.py +758 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/summary.csv +2 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/util.py +2 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/filter.py +0 -6
- braindecode-1.3.0.dev182330353/braindecode/preprocessing/__init__.py +266 -0
- braindecode-1.3.0.dev182330353/braindecode/preprocessing/mne_preprocess.py +209 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/preprocessing/preprocess.py +16 -6
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/preprocessing/windowers.py +2 -1
- braindecode-1.3.0.dev182330353/braindecode/version.py +1 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode.egg-info/SOURCES.txt +3 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/api.rst +109 -18
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/conf.py +27 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/whats_new.rst +9 -0
- braindecode-1.3.0.dev181594385/braindecode/preprocessing/__init__.py +0 -61
- braindecode-1.3.0.dev181594385/braindecode/preprocessing/mne_preprocess.py +0 -77
- braindecode-1.3.0.dev181594385/braindecode/version.py +0 -1
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/LICENSE.txt +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/MANIFEST.in +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/NOTICE.txt +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/README.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/classifier.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/base.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/bids.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/experimental.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datautil/util.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/functional/functions.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/base.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/bendr.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/biot.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/deep4.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/labram.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/tcn.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/usleep.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/activation.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/attention.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/layers.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/linear.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/stats.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/util.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/regressor.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/samplers/base.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/training/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/training/losses.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/training/scoring.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/util.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/Makefile +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/cite.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/help.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/index.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/install/install.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/install/install_pip.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/install/install_source.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/models.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/models_table.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/pyproject.toml +0 -0
- {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/setup.cfg +0 -0
{braindecode-1.3.0.dev181594385/braindecode.egg-info → braindecode-1.3.0.dev182330353}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.3.0.
|
|
3
|
+
Version: 1.3.0.dev182330353
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
{braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/__init__.py
RENAMED
|
@@ -12,7 +12,7 @@ from .base import (
|
|
|
12
12
|
from .bcicomp import BCICompetitionIVDataset4
|
|
13
13
|
from .bids import BIDSDataset, BIDSEpochsDataset
|
|
14
14
|
from .mne import create_from_mne_epochs, create_from_mne_raw
|
|
15
|
-
from .moabb import
|
|
15
|
+
from .moabb import BNCI2014_001, HGD, MOABBDataset
|
|
16
16
|
from .nmt import NMT
|
|
17
17
|
from .sleep_physio_challe_18 import SleepPhysionetChallenge2018
|
|
18
18
|
from .sleep_physionet import SleepPhysionet
|
|
@@ -29,7 +29,7 @@ __all__ = [
|
|
|
29
29
|
"BIDSEpochsDataset",
|
|
30
30
|
"MOABBDataset",
|
|
31
31
|
"HGD",
|
|
32
|
-
"
|
|
32
|
+
"BNCI2014_001",
|
|
33
33
|
"create_from_mne_raw",
|
|
34
34
|
"create_from_mne_epochs",
|
|
35
35
|
"TUH",
|
{braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datasets/moabb.py
RENAMED
|
@@ -15,6 +15,7 @@ from typing import Any
|
|
|
15
15
|
|
|
16
16
|
import mne
|
|
17
17
|
import pandas as pd
|
|
18
|
+
from mne.utils import deprecated
|
|
18
19
|
|
|
19
20
|
from braindecode.util import _update_moabb_docstring
|
|
20
21
|
|
|
@@ -169,8 +170,8 @@ class MOABBDataset(BaseConcatDataset):
|
|
|
169
170
|
super().__init__(all_base_ds)
|
|
170
171
|
|
|
171
172
|
|
|
172
|
-
class
|
|
173
|
-
doc = """See moabb.datasets.bnci.
|
|
173
|
+
class BNCI2014_001(MOABBDataset):
|
|
174
|
+
doc = """See moabb.datasets.bnci.BNCI2014_001
|
|
174
175
|
|
|
175
176
|
Parameters
|
|
176
177
|
----------
|
|
@@ -179,14 +180,14 @@ class BNCI2014001(MOABBDataset):
|
|
|
179
180
|
subjects is fetched.
|
|
180
181
|
"""
|
|
181
182
|
try:
|
|
182
|
-
from moabb.datasets import
|
|
183
|
+
from moabb.datasets import BNCI2014_001
|
|
183
184
|
|
|
184
|
-
__doc__ = _update_moabb_docstring(
|
|
185
|
+
__doc__ = _update_moabb_docstring(BNCI2014_001, doc)
|
|
185
186
|
except ModuleNotFoundError:
|
|
186
187
|
pass # keep moabb soft dependency, otherwise crash on loading of datasets.__init__.py
|
|
187
188
|
|
|
188
189
|
def __init__(self, subject_ids):
|
|
189
|
-
super().__init__("
|
|
190
|
+
super().__init__("BNCI2014_001", subject_ids=subject_ids)
|
|
190
191
|
|
|
191
192
|
|
|
192
193
|
class HGD(MOABBDataset):
|
|
@@ -207,3 +208,12 @@ class HGD(MOABBDataset):
|
|
|
207
208
|
|
|
208
209
|
def __init__(self, subject_ids):
|
|
209
210
|
super().__init__("Schirrmeister2017", subject_ids=subject_ids)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
@deprecated(
|
|
214
|
+
"`BNCI2014001` was renamed to `BNCI2014_001` in v1.13; this alias will be removed in v1.14."
|
|
215
|
+
)
|
|
216
|
+
class BNCI2014001(BNCI2014_001):
|
|
217
|
+
"""Deprecated alias for BNCI2014001."""
|
|
218
|
+
|
|
219
|
+
pass
|
{braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/datautil/__init__.py
RENAMED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Utilities for data manipulation.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
from .channel_utils import (
|
|
6
|
+
division_channels_idx,
|
|
7
|
+
match_hemisphere_chans,
|
|
8
|
+
)
|
|
5
9
|
from .serialization import (
|
|
6
10
|
_check_save_dir_empty,
|
|
7
11
|
load_concat_dataset,
|
|
@@ -49,4 +53,10 @@ def __getattr__(name):
|
|
|
49
53
|
raise AttributeError("No possible import named " + name)
|
|
50
54
|
|
|
51
55
|
|
|
52
|
-
__all__ = [
|
|
56
|
+
__all__ = [
|
|
57
|
+
"load_concat_dataset",
|
|
58
|
+
"save_concat_dataset",
|
|
59
|
+
"_check_save_dir_empty",
|
|
60
|
+
"match_hemisphere_chans",
|
|
61
|
+
"division_channels_idx",
|
|
62
|
+
]
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Utilities for EEG channel manipulation and selection.
|
|
3
|
+
|
|
4
|
+
This module provides functions for dividing and matching EEG channels,
|
|
5
|
+
particularly for hemisphere-aware processing.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import re
|
|
9
|
+
from re import search
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def match_hemisphere_chans(left_chs, right_chs):
|
|
13
|
+
"""
|
|
14
|
+
Match channels of the left and right hemispheres based on their names.
|
|
15
|
+
|
|
16
|
+
This function pairs channels from the left and right hemispheres by matching
|
|
17
|
+
their numeric identifiers. For a left channel with number N, it finds the
|
|
18
|
+
corresponding right channel with number N+1.
|
|
19
|
+
|
|
20
|
+
Parameters
|
|
21
|
+
----------
|
|
22
|
+
left_chs : list of str
|
|
23
|
+
A list of channel names from the left hemisphere.
|
|
24
|
+
right_chs : list of str
|
|
25
|
+
A list of channel names from the right hemisphere.
|
|
26
|
+
|
|
27
|
+
Returns
|
|
28
|
+
-------
|
|
29
|
+
list of tuples
|
|
30
|
+
List of tuples with matched channel names from the left and right hemispheres.
|
|
31
|
+
Each tuple contains (left_channel, right_channel).
|
|
32
|
+
|
|
33
|
+
Raises
|
|
34
|
+
------
|
|
35
|
+
ValueError
|
|
36
|
+
If the left and right channels do not match in length.
|
|
37
|
+
ValueError
|
|
38
|
+
If a channel name does not contain a number.
|
|
39
|
+
ValueError
|
|
40
|
+
If no matching right hemisphere channel is found for a left channel.
|
|
41
|
+
|
|
42
|
+
Examples
|
|
43
|
+
--------
|
|
44
|
+
>>> left = ['C3', 'F3']
|
|
45
|
+
>>> right = ['C4', 'F4']
|
|
46
|
+
>>> match_hemisphere_chans(left, right)
|
|
47
|
+
[('C3', 'C4'), ('F3', 'F4')]
|
|
48
|
+
"""
|
|
49
|
+
if len(left_chs) != len(right_chs):
|
|
50
|
+
raise ValueError("Left and right channels do not match.")
|
|
51
|
+
right_chs = list(right_chs)
|
|
52
|
+
regexp = r"\d+"
|
|
53
|
+
out = []
|
|
54
|
+
for left in left_chs:
|
|
55
|
+
match = re.search(regexp, left)
|
|
56
|
+
if match is None:
|
|
57
|
+
raise ValueError(f"Channel '{left}' does not contain a number.")
|
|
58
|
+
chan_idx = 1 + int(match.group())
|
|
59
|
+
target_r = re.sub(regexp, str(chan_idx), left)
|
|
60
|
+
for right in right_chs:
|
|
61
|
+
if right == target_r:
|
|
62
|
+
out.append((left, right))
|
|
63
|
+
right_chs.remove(right)
|
|
64
|
+
break
|
|
65
|
+
else:
|
|
66
|
+
raise ValueError(
|
|
67
|
+
f"Found no right hemisphere matching channel for '{left}'."
|
|
68
|
+
)
|
|
69
|
+
return out
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def division_channels_idx(ch_names):
|
|
73
|
+
"""
|
|
74
|
+
Divide EEG channel names into left, right, and middle based on numbering.
|
|
75
|
+
|
|
76
|
+
This function categorizes channels by their numeric suffix:
|
|
77
|
+
- Odd-numbered channels → left hemisphere
|
|
78
|
+
- Even-numbered channels → right hemisphere
|
|
79
|
+
- Channels without numbers → middle/midline
|
|
80
|
+
|
|
81
|
+
Parameters
|
|
82
|
+
----------
|
|
83
|
+
ch_names : list of str
|
|
84
|
+
A list of EEG channel names to be divided based on their numbering.
|
|
85
|
+
|
|
86
|
+
Returns
|
|
87
|
+
-------
|
|
88
|
+
tuple of lists
|
|
89
|
+
Three lists containing the channel names:
|
|
90
|
+
- left: Odd-numbered channels (e.g., C3, F3, P3)
|
|
91
|
+
- right: Even-numbered channels (e.g., C4, F4, P4)
|
|
92
|
+
- middle: Channels without numbers (e.g., Cz, Fz, Pz)
|
|
93
|
+
|
|
94
|
+
Notes
|
|
95
|
+
-----
|
|
96
|
+
The function identifies channel numbers by searching for numeric characters
|
|
97
|
+
in the channel names. Standard 10-20 system EEG channel naming conventions
|
|
98
|
+
use odd numbers for left hemisphere and even numbers for right hemisphere.
|
|
99
|
+
|
|
100
|
+
Examples
|
|
101
|
+
--------
|
|
102
|
+
>>> channels = ['FP1', 'FP2', 'O1', 'O2', 'FZ']
|
|
103
|
+
>>> division_channels_idx(channels)
|
|
104
|
+
(['FP1', 'O1'], ['FP2', 'O2'], ['FZ'])
|
|
105
|
+
"""
|
|
106
|
+
left, right, middle = [], [], []
|
|
107
|
+
for ch in ch_names:
|
|
108
|
+
number = search(r"\d+", ch)
|
|
109
|
+
if number is not None:
|
|
110
|
+
(left if int(number[0]) % 2 else right).append(ch)
|
|
111
|
+
else:
|
|
112
|
+
middle.append(ch)
|
|
113
|
+
|
|
114
|
+
return left, right, middle
|
{braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182330353}/braindecode/models/__init__.py
RENAMED
|
@@ -20,6 +20,7 @@ from .eegminer import EEGMiner
|
|
|
20
20
|
from .eegnet import EEGNet, EEGNetv4
|
|
21
21
|
from .eegnex import EEGNeX
|
|
22
22
|
from .eegsimpleconv import EEGSimpleConv
|
|
23
|
+
from .eegsym import EEGSym
|
|
23
24
|
from .eegtcnet import EEGTCNet
|
|
24
25
|
from .fbcnet import FBCNet
|
|
25
26
|
from .fblightconvnet import FBLightConvNet
|
|
@@ -27,6 +28,7 @@ from .fbmsnet import FBMSNet
|
|
|
27
28
|
from .hybrid import HybridNet
|
|
28
29
|
from .ifnet import IFNet
|
|
29
30
|
from .labram import Labram
|
|
31
|
+
from .medformer import MEDFormer
|
|
30
32
|
from .msvtnet import MSVTNet
|
|
31
33
|
from .patchedtransformer import PBT
|
|
32
34
|
from .sccnet import SCCNet
|
|
@@ -72,6 +74,7 @@ __all__ = [
|
|
|
72
74
|
"EEGNet",
|
|
73
75
|
"EEGNetv4",
|
|
74
76
|
"EEGNeX",
|
|
77
|
+
"EEGSym",
|
|
75
78
|
"EEGSimpleConv",
|
|
76
79
|
"EEGTCNet",
|
|
77
80
|
"FBCNet",
|
|
@@ -80,6 +83,7 @@ __all__ = [
|
|
|
80
83
|
"HybridNet",
|
|
81
84
|
"IFNet",
|
|
82
85
|
"Labram",
|
|
86
|
+
"MEDFormer",
|
|
83
87
|
"MSVTNet",
|
|
84
88
|
"PBT",
|
|
85
89
|
"SCCNet",
|