Braindecode 1.3.0.dev176122045__tar.gz → 1.3.0.dev176481332__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.
Files changed (141) hide show
  1. {braindecode-1.3.0.dev176122045/braindecode.egg-info → braindecode-1.3.0.dev176481332}/PKG-INFO +1 -1
  2. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/__init__.py +2 -2
  3. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/moabb.py +5 -15
  4. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/__init__.py +1 -11
  5. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/__init__.py +0 -2
  6. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbcnet.py +1 -3
  7. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbmsnet.py +6 -18
  8. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/summary.csv +0 -1
  9. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/util.py +0 -1
  10. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/filter.py +6 -0
  11. braindecode-1.3.0.dev176481332/braindecode/version.py +1 -0
  12. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332/braindecode.egg-info}/PKG-INFO +1 -1
  13. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/SOURCES.txt +0 -2
  14. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/api.rst +1 -2
  15. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/whats_new.rst +0 -4
  16. braindecode-1.3.0.dev176122045/braindecode/datautil/channel_utils.py +0 -114
  17. braindecode-1.3.0.dev176122045/braindecode/models/eegsym.py +0 -917
  18. braindecode-1.3.0.dev176122045/braindecode/version.py +0 -1
  19. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/LICENSE.txt +0 -0
  20. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/MANIFEST.in +0 -0
  21. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/NOTICE.txt +0 -0
  22. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/README.rst +0 -0
  23. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/__init__.py +0 -0
  24. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/__init__.py +0 -0
  25. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/base.py +0 -0
  26. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/functional.py +0 -0
  27. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/transforms.py +0 -0
  28. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/classifier.py +0 -0
  29. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/base.py +0 -0
  30. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bbci.py +0 -0
  31. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bcicomp.py +0 -0
  32. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bids.py +0 -0
  33. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/experimental.py +0 -0
  34. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/mne.py +0 -0
  35. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/nmt.py +0 -0
  36. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  37. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/sleep_physionet.py +0 -0
  38. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/tuh.py +0 -0
  39. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/xy.py +0 -0
  40. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/serialization.py +0 -0
  41. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/util.py +0 -0
  42. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/eegneuralnet.py +0 -0
  43. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/__init__.py +0 -0
  44. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/functions.py +0 -0
  45. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/initialization.py +0 -0
  46. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/atcnet.py +0 -0
  47. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/attentionbasenet.py +0 -0
  48. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/attn_sleep.py +0 -0
  49. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/base.py +0 -0
  50. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/bendr.py +0 -0
  51. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/biot.py +0 -0
  52. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/contrawr.py +0 -0
  53. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/ctnet.py +0 -0
  54. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/deep4.py +0 -0
  55. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/deepsleepnet.py +0 -0
  56. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegconformer.py +0 -0
  57. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eeginception_erp.py +0 -0
  58. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eeginception_mi.py +0 -0
  59. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegitnet.py +0 -0
  60. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegminer.py +0 -0
  61. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegnet.py +0 -0
  62. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegnex.py +0 -0
  63. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegsimpleconv.py +0 -0
  64. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegtcnet.py +0 -0
  65. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fblightconvnet.py +0 -0
  66. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/hybrid.py +0 -0
  67. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/ifnet.py +0 -0
  68. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/labram.py +0 -0
  69. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/msvtnet.py +0 -0
  70. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/patchedtransformer.py +0 -0
  71. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sccnet.py +0 -0
  72. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/shallow_fbcsp.py +0 -0
  73. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/signal_jepa.py +0 -0
  74. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sinc_shallow.py +0 -0
  75. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  76. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  77. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sparcnet.py +0 -0
  78. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sstdpn.py +0 -0
  79. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/syncnet.py +0 -0
  80. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tcn.py +0 -0
  81. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tidnet.py +0 -0
  82. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tsinception.py +0 -0
  83. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/usleep.py +0 -0
  84. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/__init__.py +0 -0
  85. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/activation.py +0 -0
  86. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/attention.py +0 -0
  87. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/blocks.py +0 -0
  88. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/convolution.py +0 -0
  89. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/layers.py +0 -0
  90. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/linear.py +0 -0
  91. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/parametrization.py +0 -0
  92. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/stats.py +0 -0
  93. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/util.py +0 -0
  94. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/wrapper.py +0 -0
  95. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/__init__.py +0 -0
  96. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  97. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/mne_preprocess.py +0 -0
  98. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/preprocess.py +0 -0
  99. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/util.py +0 -0
  100. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/windowers.py +0 -0
  101. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/regressor.py +0 -0
  102. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/__init__.py +0 -0
  103. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/base.py +0 -0
  104. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/ssl.py +0 -0
  105. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/__init__.py +0 -0
  106. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/callbacks.py +0 -0
  107. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/losses.py +0 -0
  108. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/scoring.py +0 -0
  109. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/util.py +0 -0
  110. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/__init__.py +0 -0
  111. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/confusion_matrices.py +0 -0
  112. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/gradients.py +0 -0
  113. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/dependency_links.txt +0 -0
  114. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/requires.txt +0 -0
  115. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/top_level.txt +0 -0
  116. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/Makefile +0 -0
  117. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/_templates/autosummary/class.rst +0 -0
  118. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/_templates/autosummary/function.rst +0 -0
  119. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/cite.rst +0 -0
  120. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/conf.py +0 -0
  121. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/help.rst +0 -0
  122. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/index.rst +0 -0
  123. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install.rst +0 -0
  124. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install_pip.rst +0 -0
  125. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install_source.rst +0 -0
  126. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/attention.rst +0 -0
  127. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/channel.rst +0 -0
  128. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/convolution.rst +0 -0
  129. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/filterbank.rst +0 -0
  130. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/gnn.rst +0 -0
  131. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/interpretable.rst +0 -0
  132. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/lbm.rst +0 -0
  133. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/recurrent.rst +0 -0
  134. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/spd.rst +0 -0
  135. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models.rst +0 -0
  136. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_categorization.rst +0 -0
  137. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_table.rst +0 -0
  138. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_visualization.rst +0 -0
  139. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/sg_execution_times.rst +0 -0
  140. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/pyproject.toml +0 -0
  141. {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.3.0.dev176122045
3
+ Version: 1.3.0.dev176481332
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>
@@ -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 BNCI2014_001, HGD, MOABBDataset
15
+ from .moabb import BNCI2014001, 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
- "BNCI2014_001",
32
+ "BNCI2014001",
33
33
  "create_from_mne_raw",
34
34
  "create_from_mne_epochs",
35
35
  "TUH",
@@ -15,7 +15,6 @@ from typing import Any
15
15
 
16
16
  import mne
17
17
  import pandas as pd
18
- from mne.utils import deprecated
19
18
 
20
19
  from braindecode.util import _update_moabb_docstring
21
20
 
@@ -170,8 +169,8 @@ class MOABBDataset(BaseConcatDataset):
170
169
  super().__init__(all_base_ds)
171
170
 
172
171
 
173
- class BNCI2014_001(MOABBDataset):
174
- doc = """See moabb.datasets.bnci.BNCI2014_001
172
+ class BNCI2014001(MOABBDataset):
173
+ doc = """See moabb.datasets.bnci.BNCI2014001
175
174
 
176
175
  Parameters
177
176
  ----------
@@ -180,14 +179,14 @@ class BNCI2014_001(MOABBDataset):
180
179
  subjects is fetched.
181
180
  """
182
181
  try:
183
- from moabb.datasets import BNCI2014_001
182
+ from moabb.datasets import BNCI2014001
184
183
 
185
- __doc__ = _update_moabb_docstring(BNCI2014_001, doc)
184
+ __doc__ = _update_moabb_docstring(BNCI2014001, doc)
186
185
  except ModuleNotFoundError:
187
186
  pass # keep moabb soft dependency, otherwise crash on loading of datasets.__init__.py
188
187
 
189
188
  def __init__(self, subject_ids):
190
- super().__init__("BNCI2014_001", subject_ids=subject_ids)
189
+ super().__init__("BNCI2014001", subject_ids=subject_ids)
191
190
 
192
191
 
193
192
  class HGD(MOABBDataset):
@@ -208,12 +207,3 @@ class HGD(MOABBDataset):
208
207
 
209
208
  def __init__(self, subject_ids):
210
209
  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
@@ -2,10 +2,6 @@
2
2
  Utilities for data manipulation.
3
3
  """
4
4
 
5
- from .channel_utils import (
6
- division_channels_idx,
7
- match_hemisphere_chans,
8
- )
9
5
  from .serialization import (
10
6
  _check_save_dir_empty,
11
7
  load_concat_dataset,
@@ -53,10 +49,4 @@ def __getattr__(name):
53
49
  raise AttributeError("No possible import named " + name)
54
50
 
55
51
 
56
- __all__ = [
57
- "load_concat_dataset",
58
- "save_concat_dataset",
59
- "_check_save_dir_empty",
60
- "match_hemisphere_chans",
61
- "division_channels_idx",
62
- ]
52
+ __all__ = ["load_concat_dataset", "save_concat_dataset", "_check_save_dir_empty"]
@@ -20,7 +20,6 @@ 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
24
23
  from .eegtcnet import EEGTCNet
25
24
  from .fbcnet import FBCNet
26
25
  from .fblightconvnet import FBLightConvNet
@@ -73,7 +72,6 @@ __all__ = [
73
72
  "EEGNet",
74
73
  "EEGNetv4",
75
74
  "EEGNeX",
76
- "EEGSym",
77
75
  "EEGSimpleConv",
78
76
  "EEGTCNet",
79
77
  "FBCNet",
@@ -69,9 +69,7 @@ class FBCNet(EEGModuleMixin, nn.Module):
69
69
  linear_max_norm : float, default=0.5
70
70
  Maximum norm for the final linear layer.
71
71
  filter_parameters: dict, default None
72
- Dictionary of parameters to use for the FilterBankLayer.
73
- If None, a default Chebyshev Type II filter with transition bandwidth of
74
- 2 Hz and stop-band ripple of 30 dB will be used.
72
+ Parameters for the FilterBankLayer
75
73
 
76
74
  References
77
75
  ----------
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Any, Sequence
3
+ from typing import Optional, Sequence
4
4
 
5
5
  import torch
6
6
  from einops.layers.torch import Rearrange
@@ -57,28 +57,16 @@ class FBMSNet(EEGModuleMixin, nn.Module):
57
57
  ----------
58
58
  n_bands : int, default=9
59
59
  Number of input channels (e.g., number of frequency bands).
60
- n_filters_spat : int, default=36
61
- Number of output channels from the MixedConv2d layer.
62
- temporal_layer : str, default='LogVarLayer'
63
- Temporal aggregation layer to use.
64
- n_dim: int, default=3
65
- Dimension of the temporal reduction layer.
66
60
  stride_factor : int, default=4
67
61
  Stride factor for temporal segmentation.
62
+ temporal_layer : str, default='LogVarLayer'
63
+ Temporal aggregation layer to use.
64
+ n_filters_spat : int, default=36
65
+ Number of output channels from the MixedConv2d layer.
68
66
  dilatability : int, default=8
69
67
  Expansion factor for the spatial convolution block.
70
68
  activation : nn.Module, default=nn.SiLU
71
69
  Activation function class to apply.
72
- kernels_weights : Sequence[int], default=(15, 31, 63, 125)
73
- Kernel sizes for the MixedConv2d layer.
74
- cnn_max_norm : float, default=2
75
- Maximum norm constraint for the convolutional layers.
76
- linear_max_norm : float, default=0.5
77
- Maximum norm constraint for the linear layers.
78
- filter_parameters : dict, default=None
79
- Dictionary of parameters to use for the FilterBankLayer.
80
- If None, a default Chebyshev Type II filter with transition bandwidth of
81
- 2 Hz and stop-band ripple of 30 dB will be used.
82
70
  verbose: bool, default False
83
71
  Verbose parameter to create the filter using mne.
84
72
 
@@ -115,7 +103,7 @@ class FBMSNet(EEGModuleMixin, nn.Module):
115
103
  cnn_max_norm: float = 2,
116
104
  linear_max_norm: float = 0.5,
117
105
  verbose: bool = False,
118
- filter_parameters: dict[Any, Any] | None = None,
106
+ filter_parameters: Optional[dict] = None,
119
107
  ):
120
108
  super().__init__(
121
109
  n_chans=n_chans,
@@ -13,7 +13,6 @@ EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",55
13
13
  EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)","Convolution,Recurrent"
14
14
  EEGNet,General,Classification,128,"n_chans, n_outputs, n_times",2484,"EEGNet(n_chans=22, n_outputs=4, n_times=512)","Convolution"
15
15
  EEGNeX,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)","Convolution"
16
- EEGSym,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",299218,"EEGSym(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Channel"
17
16
  EEGMiner,Emotion Recognition,Classification,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)","Convolution,Interpretability"
18
17
  EEGSimpleConv,Motor Imagery,Classification,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)","Convolution"
19
18
  EEGTCNet,Motor Imagery,Classification,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)","Convolution,Recurrent"
@@ -79,7 +79,6 @@ models_mandatory_parameters = [
79
79
  ("SPARCNet", ["n_chans", "n_outputs", "n_times"], None),
80
80
  ("ContraWR", ["n_chans", "n_outputs", "sfreq", "n_times"], dict(sfreq=200.0)),
81
81
  ("EEGNeX", ["n_chans", "n_outputs", "n_times"], None),
82
- ("EEGSym", ["chs_info", "n_chans", "n_outputs", "n_times", "sfreq"], None),
83
82
  ("TSception", ["n_chans", "n_outputs", "n_times", "sfreq"], dict(sfreq=200.0)),
84
83
  ("EEGTCNet", ["n_chans", "n_outputs", "n_times"], None),
85
84
  ("SyncNet", ["n_chans", "n_outputs", "n_times"], None),
@@ -109,6 +109,11 @@ class FilterBankLayer(nn.Module):
109
109
  or "firwin2" to use :func:`scipy.signal.firwin2`. "firwin" uses
110
110
  a time-domain design technique that generally gives improved
111
111
  attenuation using fewer samples than "firwin2".
112
+ pad : str, default='reflect_limited'
113
+ The type of padding to use. Supports all func:`numpy.pad()` mode options.
114
+ Can also be "reflect_limited", which pads with a reflected version of
115
+ each vector mirrored on the first and last values of the vector,
116
+ followed by zeros. Only used for ``method='fir'``.
112
117
  verbose: bool | str | int | None, default=True
113
118
  Control verbosity of the logging output. If ``None``, use the default
114
119
  verbosity level. See the func:`mne.verbose` for details.
@@ -178,6 +183,7 @@ class FilterBankLayer(nn.Module):
178
183
  "The band_filters items should be splitable in 2 values."
179
184
  )
180
185
 
186
+ # and we accepted as
181
187
  self.band_filters = band_filters
182
188
  self.n_bands = len(band_filters)
183
189
  self.phase = phase
@@ -0,0 +1 @@
1
+ __version__ = "1.3.0.dev176481332"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.3.0.dev176122045
3
+ Version: 1.3.0.dev176481332
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>
@@ -33,7 +33,6 @@ braindecode/datasets/sleep_physionet.py
33
33
  braindecode/datasets/tuh.py
34
34
  braindecode/datasets/xy.py
35
35
  braindecode/datautil/__init__.py
36
- braindecode/datautil/channel_utils.py
37
36
  braindecode/datautil/serialization.py
38
37
  braindecode/datautil/util.py
39
38
  braindecode/functional/__init__.py
@@ -58,7 +57,6 @@ braindecode/models/eegminer.py
58
57
  braindecode/models/eegnet.py
59
58
  braindecode/models/eegnex.py
60
59
  braindecode/models/eegsimpleconv.py
61
- braindecode/models/eegsym.py
62
60
  braindecode/models/eegtcnet.py
63
61
  braindecode/models/fbcnet.py
64
62
  braindecode/models/fblightconvnet.py
@@ -73,7 +73,6 @@ save and load models from the Hugging Face Hub, if the ``braindecode[hug]`` pack
73
73
  EEGNet
74
74
  EEGNeX
75
75
  EEGSimpleConv
76
- EEGSym
77
76
  EEGTCNet
78
77
  FBCNet
79
78
  FBLightConvNet
@@ -332,7 +331,7 @@ Common Datasets
332
331
  :toctree: generated/
333
332
 
334
333
  BCICompetitionIVDataset4
335
- BNCI2014_001
334
+ BNCI2014001
336
335
  HGD
337
336
  MOABBDataset
338
337
  NMT
@@ -33,14 +33,10 @@ Enhancements
33
33
  - Fix minor documentation issues in Labram (:gh:`808` by `Matthew Chen`_)
34
34
  - Including missed tag in all the models and creating some test for it (:gh:`811` by `Bruno Aristimunha`_ )
35
35
  - Modify verbosity of create_window_from_events (:gh:`814` by `Matthew Chen`_)
36
- - Modify the interface of FBMSNet for consistency with FBCNet + Unit Tests (:gh:`819` by `Matthew Chen`_)
37
- - Adding :class:`braindecode.models.EEGSym` model (:gh:`697` by `Pierre Guetschel`_ and `Bruno Aristimunha`_ )
38
36
 
39
37
 
40
38
  API changes
41
39
  ~~~~~~~~~~~
42
- - Deprecating the old naming of MOABB Dataset name :gh:`826` by `Bruno Aristimunha`_
43
-
44
40
 
45
41
  Bugs
46
42
  ~~~~
@@ -1,114 +0,0 @@
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