eegdash 0.3.9.dev170082126__tar.gz → 0.4.0__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.

Potentially problematic release.


This version of eegdash might be problematic. Click here for more details.

Files changed (422) hide show
  1. {eegdash-0.3.9.dev170082126/eegdash.egg-info → eegdash-0.4.0}/PKG-INFO +11 -59
  2. eegdash-0.4.0/README.md +45 -0
  3. eegdash-0.4.0/docs/Makefile +51 -0
  4. eegdash-0.4.0/docs/build/html/_downloads/06c8d94b7e0b8be2de39fdc122dd12bb/tutorial_challenge_2.ipynb +261 -0
  5. eegdash-0.4.0/docs/build/html/_downloads/2c592649a2079630923cb072bc1beaf3/tutorial_eoec.ipynb +187 -0
  6. eegdash-0.4.0/docs/build/html/_downloads/5702e607758ace8a64a5cb0cf540ace7/tutorial_eegdash_offline.ipynb +151 -0
  7. eegdash-0.4.0/docs/build/html/_downloads/9f4f54b7e99e554f34ea4efcf2a8337e/tutorial_challenge_1.ipynb +290 -0
  8. eegdash-0.4.0/docs/build/html/_downloads/f3cf56a30a7c06a2eccae3b5b3d28e35/tutorial_feature_extractor_open_close_eye.ipynb +253 -0
  9. eegdash-0.4.0/docs/source/_templates/autosummary/module.rst +65 -0
  10. eegdash-0.4.0/docs/source/api/api.rst +122 -0
  11. eegdash-0.4.0/docs/source/api/api_core.rst +79 -0
  12. eegdash-0.4.0/docs/source/api/api_features.rst +16 -0
  13. eegdash-0.4.0/docs/source/api/dataset/api_dataset.rst +326 -0
  14. eegdash-0.4.0/docs/source/api/dataset/eegdash.api.rst +8 -0
  15. eegdash-0.4.0/docs/source/api/dataset/eegdash.bids_eeg_metadata.rst +8 -0
  16. eegdash-0.4.0/docs/source/api/dataset/eegdash.const.rst +8 -0
  17. eegdash-0.4.0/docs/source/api/dataset/eegdash.data_utils.rst +8 -0
  18. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS001785.rst +64 -0
  19. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS001787.rst +64 -0
  20. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS001810.rst +64 -0
  21. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS001849.rst +64 -0
  22. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS001971.rst +64 -0
  23. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002034.rst +64 -0
  24. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002094.rst +64 -0
  25. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002158.rst +62 -0
  26. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002181.rst +63 -0
  27. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002218.rst +64 -0
  28. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002336.rst +63 -0
  29. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002338.rst +63 -0
  30. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002578.rst +64 -0
  31. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002680.rst +64 -0
  32. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002691.rst +64 -0
  33. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002718.rst +64 -0
  34. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002720.rst +64 -0
  35. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002721.rst +64 -0
  36. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002722.rst +64 -0
  37. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002723.rst +64 -0
  38. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002724.rst +64 -0
  39. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002725.rst +64 -0
  40. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002778.rst +64 -0
  41. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002814.rst +64 -0
  42. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002833.rst +64 -0
  43. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS002893.rst +64 -0
  44. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003004.rst +64 -0
  45. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003039.rst +64 -0
  46. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003061.rst +64 -0
  47. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003190.rst +64 -0
  48. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003194.rst +64 -0
  49. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003195.rst +64 -0
  50. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003343.rst +64 -0
  51. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003421.rst +64 -0
  52. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003458.rst +64 -0
  53. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003474.rst +64 -0
  54. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003478.rst +64 -0
  55. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003490.rst +64 -0
  56. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003505.rst +64 -0
  57. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003506.rst +64 -0
  58. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003509.rst +64 -0
  59. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003516.rst +64 -0
  60. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003517.rst +64 -0
  61. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003518.rst +64 -0
  62. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003519.rst +64 -0
  63. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003522.rst +64 -0
  64. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003523.rst +64 -0
  65. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003555.rst +63 -0
  66. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003570.rst +64 -0
  67. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003574.rst +64 -0
  68. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003602.rst +64 -0
  69. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003626.rst +62 -0
  70. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003638.rst +64 -0
  71. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003645.rst +62 -0
  72. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003655.rst +64 -0
  73. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003670.rst +64 -0
  74. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003690.rst +64 -0
  75. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003702.rst +64 -0
  76. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003710.rst +64 -0
  77. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003739.rst +64 -0
  78. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003751.rst +64 -0
  79. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003753.rst +64 -0
  80. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003766.rst +64 -0
  81. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003768.rst +62 -0
  82. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003801.rst +64 -0
  83. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003805.rst +64 -0
  84. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003810.rst +64 -0
  85. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003816.rst +64 -0
  86. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003822.rst +64 -0
  87. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003825.rst +64 -0
  88. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003838.rst +64 -0
  89. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003846.rst +64 -0
  90. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003885.rst +64 -0
  91. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003887.rst +64 -0
  92. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003944.rst +64 -0
  93. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003947.rst +64 -0
  94. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003969.rst +64 -0
  95. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS003987.rst +64 -0
  96. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004000.rst +64 -0
  97. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004010.rst +64 -0
  98. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004015.rst +64 -0
  99. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004018.rst +64 -0
  100. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004022.rst +64 -0
  101. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004024.rst +64 -0
  102. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004033.rst +64 -0
  103. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004040.rst +64 -0
  104. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004043.rst +64 -0
  105. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004067.rst +64 -0
  106. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004075.rst +62 -0
  107. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004117.rst +64 -0
  108. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004152.rst +64 -0
  109. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004196.rst +64 -0
  110. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004200.rst +64 -0
  111. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004252.rst +62 -0
  112. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004256.rst +63 -0
  113. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004262.rst +64 -0
  114. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004264.rst +64 -0
  115. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004279.rst +64 -0
  116. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004284.rst +64 -0
  117. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004295.rst +64 -0
  118. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004306.rst +64 -0
  119. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004315.rst +64 -0
  120. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004317.rst +64 -0
  121. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004324.rst +64 -0
  122. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004347.rst +64 -0
  123. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004348.rst +64 -0
  124. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004350.rst +64 -0
  125. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004356.rst +64 -0
  126. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004357.rst +64 -0
  127. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004362.rst +64 -0
  128. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004367.rst +64 -0
  129. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004368.rst +64 -0
  130. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004369.rst +64 -0
  131. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004381.rst +64 -0
  132. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004388.rst +63 -0
  133. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004389.rst +63 -0
  134. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004408.rst +64 -0
  135. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004444.rst +64 -0
  136. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004446.rst +64 -0
  137. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004447.rst +64 -0
  138. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004448.rst +64 -0
  139. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004460.rst +64 -0
  140. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004475.rst +64 -0
  141. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004477.rst +64 -0
  142. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004504.rst +64 -0
  143. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004505.rst +64 -0
  144. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004511.rst +63 -0
  145. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004515.rst +64 -0
  146. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004519.rst +64 -0
  147. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004520.rst +64 -0
  148. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004521.rst +64 -0
  149. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004532.rst +64 -0
  150. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004554.rst +64 -0
  151. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004561.rst +64 -0
  152. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004572.rst +64 -0
  153. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004574.rst +64 -0
  154. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004577.rst +64 -0
  155. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004579.rst +64 -0
  156. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004580.rst +64 -0
  157. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004582.rst +64 -0
  158. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004584.rst +64 -0
  159. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004587.rst +64 -0
  160. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004588.rst +64 -0
  161. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004595.rst +64 -0
  162. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004598.rst +62 -0
  163. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004602.rst +64 -0
  164. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004603.rst +64 -0
  165. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004621.rst +63 -0
  166. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004625.rst +64 -0
  167. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004626.rst +64 -0
  168. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004635.rst +64 -0
  169. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004657.rst +64 -0
  170. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004660.rst +64 -0
  171. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004661.rst +64 -0
  172. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004718.rst +64 -0
  173. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004745.rst +62 -0
  174. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004752.rst +64 -0
  175. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004771.rst +64 -0
  176. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004784.rst +64 -0
  177. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004785.rst +64 -0
  178. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004796.rst +63 -0
  179. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004802.rst +64 -0
  180. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004816.rst +64 -0
  181. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004817.rst +64 -0
  182. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004840.rst +64 -0
  183. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004841.rst +64 -0
  184. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004842.rst +64 -0
  185. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004843.rst +64 -0
  186. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004844.rst +64 -0
  187. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004849.rst +63 -0
  188. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004850.rst +63 -0
  189. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004851.rst +63 -0
  190. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004852.rst +63 -0
  191. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004853.rst +63 -0
  192. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004854.rst +63 -0
  193. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004855.rst +63 -0
  194. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004860.rst +64 -0
  195. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004883.rst +64 -0
  196. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004902.rst +64 -0
  197. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004917.rst +62 -0
  198. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004942.rst +64 -0
  199. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004951.rst +64 -0
  200. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004952.rst +64 -0
  201. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004980.rst +64 -0
  202. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS004995.rst +62 -0
  203. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005021.rst +64 -0
  204. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005028.rst +62 -0
  205. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005034.rst +64 -0
  206. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005048.rst +63 -0
  207. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005079.rst +64 -0
  208. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005089.rst +64 -0
  209. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005095.rst +64 -0
  210. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005106.rst +64 -0
  211. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005114.rst +64 -0
  212. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005121.rst +64 -0
  213. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005131.rst +64 -0
  214. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005170.rst +62 -0
  215. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005185.rst +63 -0
  216. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005189.rst +64 -0
  217. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005207.rst +64 -0
  218. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005262.rst +62 -0
  219. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005273.rst +64 -0
  220. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005274.rst +64 -0
  221. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005296.rst +63 -0
  222. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005305.rst +64 -0
  223. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005307.rst +63 -0
  224. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005340.rst +63 -0
  225. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005342.rst +64 -0
  226. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005345.rst +63 -0
  227. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005363.rst +63 -0
  228. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005383.rst +63 -0
  229. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005385.rst +63 -0
  230. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005397.rst +63 -0
  231. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005403.rst +63 -0
  232. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005406.rst +63 -0
  233. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005410.rst +63 -0
  234. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005416.rst +63 -0
  235. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005420.rst +63 -0
  236. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005429.rst +63 -0
  237. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005486.rst +62 -0
  238. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005505.rst +63 -0
  239. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005506.rst +63 -0
  240. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005507.rst +63 -0
  241. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005508.rst +63 -0
  242. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005509.rst +63 -0
  243. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005510.rst +63 -0
  244. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005511.rst +63 -0
  245. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005512.rst +63 -0
  246. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005514.rst +63 -0
  247. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005515.rst +63 -0
  248. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005516.rst +63 -0
  249. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005520.rst +63 -0
  250. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005530.rst +63 -0
  251. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005540.rst +63 -0
  252. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005555.rst +63 -0
  253. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005565.rst +62 -0
  254. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005571.rst +63 -0
  255. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005586.rst +63 -0
  256. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005594.rst +63 -0
  257. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005620.rst +63 -0
  258. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005672.rst +63 -0
  259. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005688.rst +63 -0
  260. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005692.rst +63 -0
  261. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005697.rst +63 -0
  262. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005779.rst +63 -0
  263. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005787.rst +63 -0
  264. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005795.rst +63 -0
  265. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005811.rst +63 -0
  266. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005815.rst +63 -0
  267. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005863.rst +63 -0
  268. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005866.rst +62 -0
  269. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005868.rst +62 -0
  270. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005873.rst +63 -0
  271. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.DS005876.rst +63 -0
  272. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.EEGChallengeDataset.rst +17 -0
  273. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.dataset.rst +8 -0
  274. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.registry.rst +8 -0
  275. eegdash-0.4.0/docs/source/api/dataset/eegdash.dataset.rst +17 -0
  276. eegdash-0.4.0/docs/source/api/dataset/eegdash.downloader.rst +8 -0
  277. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.datasets.rst +8 -0
  278. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.decorators.rst +8 -0
  279. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.extractors.rst +8 -0
  280. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.complexity.rst +8 -0
  281. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.connectivity.rst +8 -0
  282. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.csp.rst +8 -0
  283. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.dimensionality.rst +8 -0
  284. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.rst +22 -0
  285. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.signal.rst +8 -0
  286. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.spectral.rst +8 -0
  287. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.feature_bank.utils.rst +8 -0
  288. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.inspect.rst +8 -0
  289. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.rst +29 -0
  290. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.serialization.rst +8 -0
  291. eegdash-0.4.0/docs/source/api/dataset/eegdash.features.utils.rst +8 -0
  292. eegdash-0.4.0/docs/source/api/dataset/eegdash.hbn.preprocessing.rst +8 -0
  293. eegdash-0.4.0/docs/source/api/dataset/eegdash.hbn.rst +17 -0
  294. eegdash-0.4.0/docs/source/api/dataset/eegdash.hbn.windows.rst +8 -0
  295. eegdash-0.4.0/docs/source/api/dataset/eegdash.logging.rst +8 -0
  296. eegdash-0.4.0/docs/source/api/dataset/eegdash.mongodb.rst +8 -0
  297. eegdash-0.4.0/docs/source/api/dataset/eegdash.paths.rst +8 -0
  298. eegdash-0.4.0/docs/source/api/dataset/eegdash.rst +34 -0
  299. eegdash-0.4.0/docs/source/api/dataset/eegdash.utils.rst +8 -0
  300. eegdash-0.4.0/docs/source/api/dataset/modules.rst +7 -0
  301. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.api.rst +17 -0
  302. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.bids_eeg_metadata.rst +19 -0
  303. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.const.rst +10 -0
  304. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.data_utils.rst +18 -0
  305. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.hbn.rst +26 -0
  306. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.logging.rst +10 -0
  307. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.mongodb.rst +16 -0
  308. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.paths.rst +16 -0
  309. eegdash-0.4.0/docs/source/api/generated/api-core/eegdash.utils.rst +10 -0
  310. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.datasets.rst +27 -0
  311. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.decorators.rst +29 -0
  312. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.extractors.rst +31 -0
  313. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.feature_bank.rst +62 -0
  314. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.inspect.rst +28 -0
  315. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.rst +81 -0
  316. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.serialization.rst +27 -0
  317. eegdash-0.4.0/docs/source/api/generated/api-features/eegdash.features.utils.rst +33 -0
  318. eegdash-0.4.0/docs/source/conf.py +621 -0
  319. eegdash-0.4.0/docs/source/dataset_summary/bubble.rst +19 -0
  320. eegdash-0.4.0/docs/source/dataset_summary/kde.rst +18 -0
  321. eegdash-0.4.0/docs/source/dataset_summary/sankey.rst +20 -0
  322. eegdash-0.4.0/docs/source/dataset_summary/table.rst +27 -0
  323. eegdash-0.4.0/docs/source/dataset_summary.rst +40 -0
  324. eegdash-0.4.0/docs/source/generated/auto_examples/core/sg_execution_times.rst +40 -0
  325. eegdash-0.4.0/docs/source/generated/auto_examples/core/tutorial_eoec.ipynb +187 -0
  326. eegdash-0.4.0/docs/source/generated/auto_examples/core/tutorial_eoec.rst +416 -0
  327. eegdash-0.4.0/docs/source/generated/auto_examples/core/tutorial_feature_extractor_open_close_eye.ipynb +253 -0
  328. eegdash-0.4.0/docs/source/generated/auto_examples/core/tutorial_feature_extractor_open_close_eye.rst +540 -0
  329. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/sg_execution_times.rst +43 -0
  330. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_challenge_1.ipynb +290 -0
  331. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_challenge_1.rst +721 -0
  332. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_challenge_2.ipynb +261 -0
  333. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_challenge_2.rst +477 -0
  334. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_eegdash_offline.ipynb +151 -0
  335. eegdash-0.4.0/docs/source/generated/auto_examples/eeg2025/tutorial_eegdash_offline.rst +231 -0
  336. eegdash-0.4.0/docs/source/generated/auto_examples/index.rst +178 -0
  337. eegdash-0.4.0/docs/source/generated/auto_examples/sg_execution_times.rst +37 -0
  338. eegdash-0.4.0/docs/source/index.rst +86 -0
  339. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/docs/source/install/install.rst +7 -3
  340. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/docs/source/install/install_pip.rst +1 -1
  341. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/docs/source/install/install_source.rst +7 -7
  342. eegdash-0.4.0/docs/source/sg_execution_times.rst +41 -0
  343. eegdash-0.4.0/docs/source/user_guide.rst +207 -0
  344. eegdash-0.4.0/eegdash/__init__.py +21 -0
  345. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/api.py +297 -295
  346. eegdash-0.4.0/eegdash/bids_eeg_metadata.py +495 -0
  347. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/const.py +43 -0
  348. eegdash-0.4.0/eegdash/data_utils.py +751 -0
  349. eegdash-0.4.0/eegdash/dataset/__init__.py +22 -0
  350. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/dataset/dataset.py +61 -33
  351. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/dataset/dataset_summary.csv +255 -256
  352. eegdash-0.4.0/eegdash/dataset/registry.py +287 -0
  353. eegdash-0.4.0/eegdash/downloader.py +197 -0
  354. eegdash-0.4.0/eegdash/features/datasets.py +677 -0
  355. eegdash-0.4.0/eegdash/features/decorators.py +136 -0
  356. eegdash-0.4.0/eegdash/features/extractors.py +357 -0
  357. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/complexity.py +7 -3
  358. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/dimensionality.py +1 -1
  359. eegdash-0.4.0/eegdash/features/inspect.py +123 -0
  360. eegdash-0.4.0/eegdash/features/serialization.py +115 -0
  361. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/utils.py +75 -8
  362. eegdash-0.4.0/eegdash/hbn/__init__.py +28 -0
  363. eegdash-0.4.0/eegdash/hbn/preprocessing.py +105 -0
  364. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/hbn/windows.py +157 -34
  365. eegdash-0.4.0/eegdash/logging.py +54 -0
  366. eegdash-0.4.0/eegdash/mongodb.py +97 -0
  367. eegdash-0.4.0/eegdash/paths.py +51 -0
  368. eegdash-0.4.0/eegdash/utils.py +39 -0
  369. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0/eegdash.egg-info}/PKG-INFO +11 -59
  370. eegdash-0.4.0/eegdash.egg-info/SOURCES.txt +397 -0
  371. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash.egg-info/requires.txt +9 -4
  372. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/pyproject.toml +10 -4
  373. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_api.py +26 -23
  374. eegdash-0.4.0/tests/test_bids_dependencies.py +67 -0
  375. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_cache_folder_suffix.py +10 -10
  376. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_challenge_kwargs.py +12 -10
  377. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_correctness.py +6 -18
  378. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_dataset.py +16 -59
  379. eegdash-0.4.0/tests/test_downloader.py +120 -0
  380. eegdash-0.4.0/tests/test_features.py +67 -0
  381. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_init.py +2 -5
  382. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_minirelease.py +11 -27
  383. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_offline.py +4 -13
  384. eegdash-0.3.9.dev170082126/README.md +0 -97
  385. eegdash-0.3.9.dev170082126/docs/Makefile +0 -31
  386. eegdash-0.3.9.dev170082126/docs/source/conf.py +0 -224
  387. eegdash-0.3.9.dev170082126/docs/source/dataset_summary.rst +0 -199
  388. eegdash-0.3.9.dev170082126/docs/source/index.rst +0 -60
  389. eegdash-0.3.9.dev170082126/docs/source/overview.rst +0 -39
  390. eegdash-0.3.9.dev170082126/eegdash/__init__.py +0 -10
  391. eegdash-0.3.9.dev170082126/eegdash/bids_eeg_metadata.py +0 -254
  392. eegdash-0.3.9.dev170082126/eegdash/data_utils.py +0 -854
  393. eegdash-0.3.9.dev170082126/eegdash/dataset/__init__.py +0 -4
  394. eegdash-0.3.9.dev170082126/eegdash/dataset/registry.py +0 -135
  395. eegdash-0.3.9.dev170082126/eegdash/features/datasets.py +0 -492
  396. eegdash-0.3.9.dev170082126/eegdash/features/decorators.py +0 -51
  397. eegdash-0.3.9.dev170082126/eegdash/features/extractors.py +0 -209
  398. eegdash-0.3.9.dev170082126/eegdash/features/inspect.py +0 -48
  399. eegdash-0.3.9.dev170082126/eegdash/features/serialization.py +0 -83
  400. eegdash-0.3.9.dev170082126/eegdash/hbn/__init__.py +0 -17
  401. eegdash-0.3.9.dev170082126/eegdash/hbn/preprocessing.py +0 -63
  402. eegdash-0.3.9.dev170082126/eegdash/mongodb.py +0 -66
  403. eegdash-0.3.9.dev170082126/eegdash/paths.py +0 -28
  404. eegdash-0.3.9.dev170082126/eegdash/utils.py +0 -11
  405. eegdash-0.3.9.dev170082126/eegdash.egg-info/SOURCES.txt +0 -60
  406. eegdash-0.3.9.dev170082126/tests/test_functional.py +0 -28
  407. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/LICENSE +0 -0
  408. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/MANIFEST.in +0 -0
  409. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/__init__.py +0 -0
  410. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/__init__.py +0 -0
  411. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/connectivity.py +0 -0
  412. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/csp.py +0 -0
  413. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/signal.py +0 -0
  414. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/spectral.py +0 -0
  415. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash/features/feature_bank/utils.py +0 -0
  416. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash.egg-info/dependency_links.txt +0 -0
  417. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/eegdash.egg-info/top_level.txt +0 -0
  418. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/setup.cfg +0 -0
  419. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_dataset_registration.py +0 -0
  420. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_eegdash.py +0 -0
  421. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_mongo_connection.py +0 -0
  422. {eegdash-0.3.9.dev170082126 → eegdash-0.4.0}/tests/test_query.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eegdash
3
- Version: 0.3.9.dev170082126
3
+ Version: 0.4.0
4
4
  Summary: EEG data for machine learning
5
5
  Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
6
6
  License-Expression: GPL-3.0-only
@@ -25,25 +25,24 @@ Requires-Python: >=3.10
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: LICENSE
27
27
  Requires-Dist: braindecode>=1.0
28
- Requires-Dist: mne_bids>=0.16.0
28
+ Requires-Dist: mne_bids>=0.17.0
29
29
  Requires-Dist: numba
30
30
  Requires-Dist: numpy
31
31
  Requires-Dist: pandas
32
- Requires-Dist: pybids
33
32
  Requires-Dist: pymongo
34
33
  Requires-Dist: python-dotenv
35
34
  Requires-Dist: s3fs
36
- Requires-Dist: scipy
37
35
  Requires-Dist: tqdm
38
- Requires-Dist: xarray
39
36
  Requires-Dist: h5io>=0.2.4
40
37
  Requires-Dist: pymatreader
41
38
  Requires-Dist: eeglabio
42
39
  Requires-Dist: tabulate
43
40
  Requires-Dist: docstring_inheritance
41
+ Requires-Dist: rich
44
42
  Provides-Extra: tests
45
43
  Requires-Dist: pytest; extra == "tests"
46
44
  Requires-Dist: pytest-cov; extra == "tests"
45
+ Requires-Dist: pytest-sugar; extra == "tests"
47
46
  Requires-Dist: codecov; extra == "tests"
48
47
  Requires-Dist: pytest_cases; extra == "tests"
49
48
  Requires-Dist: pytest-benchmark; extra == "tests"
@@ -57,6 +56,7 @@ Requires-Dist: sphinx_gallery; extra == "docs"
57
56
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
58
57
  Requires-Dist: pydata-sphinx-theme; extra == "docs"
59
58
  Requires-Dist: sphinx-autobuild; extra == "docs"
59
+ Requires-Dist: sphinx-copybutton; extra == "docs"
60
60
  Requires-Dist: sphinx-sitemap; extra == "docs"
61
61
  Requires-Dist: numpydoc; extra == "docs"
62
62
  Requires-Dist: memory_profiler; extra == "docs"
@@ -64,10 +64,14 @@ Requires-Dist: ipython; extra == "docs"
64
64
  Requires-Dist: lightgbm; extra == "docs"
65
65
  Requires-Dist: plotly; extra == "docs"
66
66
  Requires-Dist: nbformat; extra == "docs"
67
+ Requires-Dist: graphviz; extra == "docs"
68
+ Provides-Extra: digestion
69
+ Requires-Dist: pybids; extra == "digestion"
67
70
  Provides-Extra: all
68
71
  Requires-Dist: eegdash[docs]; extra == "all"
69
72
  Requires-Dist: eegdash[dev]; extra == "all"
70
73
  Requires-Dist: eegdash[tests]; extra == "all"
74
+ Requires-Dist: eegdash[digestion]; extra == "all"
71
75
  Dynamic: license-file
72
76
 
73
77
  # EEG-Dash
@@ -86,22 +90,6 @@ To leverage recent and ongoing advancements in large-scale computational methods
86
90
 
87
91
  The data in EEG-DaSh originates from a collaboration involving 25 laboratories, encompassing 27,053 participants. This extensive collection includes MEEG data, which is a combination of EEG and MEG signals. The data is sourced from various studies conducted by these labs, involving both healthy subjects and clinical populations with conditions such as ADHD, depression, schizophrenia, dementia, autism, and psychosis. Additionally, data spans different mental states like sleep, meditation, and cognitive tasks. In addition, EEG-DaSh will incorporate a subset of the data converted from NEMAR, which includes 330 MEEG BIDS-formatted datasets, further expanding the archive with well-curated, standardized neuroelectromagnetic data.
88
92
 
89
- ## Featured data
90
-
91
- The following HBN datasets are currently featured on EEGDash. Documentation about these datasets is available [here](https://neuromechanist.github.io/data/hbn/).
92
-
93
- | DatasetID | Participants | Files | Sessions | Population | Channels | Is 10-20? | Modality | Size |
94
- |---|---|---|---|---|---|---|---|---|
95
- | [ds005505](https://nemar.org/dataexplorer/detail?dataset_id=ds005505) | 136 | 5393 | 1 | Healthy | 129 | other | Visual | 103 GB |
96
- | [ds005506](https://nemar.org/dataexplorer/detail?dataset_id=ds005506) | 150 | 5645 | 1 | Healthy | 129 | other | Visual | 112 GB |
97
- | [ds005507](https://nemar.org/dataexplorer/detail?dataset_id=ds005507) | 184 | 7273 | 1 | Healthy | 129 | other | Visual | 140 GB |
98
- | [ds005508](https://nemar.org/dataexplorer/detail?dataset_id=ds005508) | 324 | 13393 | 1 | Healthy | 129 | other | Visual | 230 GB |
99
- | [ds005510](https://nemar.org/dataexplorer/detail?dataset_id=ds005510) | 135 | 4933 | 1 | Healthy | 129 | other | Visual | 91 GB |
100
- | [ds005512](https://nemar.org/dataexplorer/detail?dataset_id=ds005512) | 257 | 9305 | 1 | Healthy | 129 | other | Visual | 157 GB |
101
- | [ds005514](https://nemar.org/dataexplorer/detail?dataset_id=ds005514) | 295 | 11565 | 1 | Healthy | 129 | other | Visual | 185 GB |
102
-
103
- A total of [246 other datasets](datasets.md) are also available through EEGDash.
104
-
105
93
  ## Data format
106
94
 
107
95
  EEGDash queries return a **Pytorch Dataset** formatted to facilitate machine learning (ML) and deep learning (DL) applications. PyTorch Datasets are the best format for EEGDash queries because they provide an efficient, scalable, and flexible structure for machine learning (ML) and deep learning (DL) applications. They allow seamless integration with PyTorch’s DataLoader, enabling efficient batching, shuffling, and parallel data loading, which is essential for training deep learning models on large EEG datasets.
@@ -113,47 +101,11 @@ EEGDash datasets are processed using the popular [braindecode](https://braindeco
113
101
  ## EEG-Dash usage
114
102
 
115
103
  ### Install
116
- Use your preferred Python environment manager with Python > 3.9 to install the package.
104
+ Use your preferred Python environment manager with Python > 3.10 to install the package.
117
105
  * To install the eegdash package, use the following command: `pip install eegdash`
118
106
  * To verify the installation, start a Python session and type: `from eegdash import EEGDash`
119
107
 
120
- ### Data access
121
-
122
- To use the data from a single subject, enter:
123
-
124
- ```python
125
- from eegdash import EEGDashDataset
126
-
127
- ds_NDARDB033FW5 = EEGDashDataset(
128
- {"dataset": "ds005514", "task":
129
- "RestingState", "subject": "NDARDB033FW5"},
130
- cache_dir="."
131
- )
132
- ```
133
-
134
- This will search and download the metadata for the task **RestingState** for subject **NDARDB033FW5** in BIDS dataset **ds005514**. The actual data will not be downloaded at this stage. Following standard practice, data is only downloaded once it is processed. The **ds_NDARDB033FW5** object is a fully functional braindecode dataset, which is itself a PyTorch dataset. This [tutorial](https://github.com/sccn/EEGDash/blob/develop/notebooks/tutorial_eoec.ipynb) shows how to preprocess the EEG data, extracting portions of the data containing eyes-open and eyes-closed segments, then perform eyes-open vs. eyes-closed classification using a (shallow) deep-learning model.
135
-
136
- To use the data from multiple subjects, enter:
137
-
138
- ```python
139
- from eegdash import EEGDashDataset
140
-
141
- ds_ds005505rest = EEGDashDataset(
142
- {"dataset": "ds005505", "task": "RestingState"}, target_name="sex", cache_dir=".
143
- )
144
- ```
145
-
146
- This will search and download the metadata for the task 'RestingState' for all subjects in BIDS dataset 'ds005505' (a total of 136). As above, the actual data will not be downloaded at this stage so this command is quick to execute. Also, the target class for each subject is assigned using the target_name parameter. This means that this object is ready to be directly fed to a deep learning model, although the [tutorial script](https://github.com/sccn/EEGDash/blob/develop/notebooks/tutorial_sex_classification.ipynb) performs minimal processing on it, prior to training a deep-learning model. Because 14 gigabytes of data are downloaded, this tutorial takes about 10 minutes to execute.
147
-
148
- ### Automatic caching
149
-
150
- By default, EEGDash caches downloaded data under a single, consistent folder:
151
-
152
- - If ``EEGDASH_CACHE_DIR`` is set in your environment, that path is used.
153
- - Else, if MNE’s ``MNE_DATA`` config is set, that path is used to align with other EEG tooling.
154
- - Otherwise, ``.eegdash_cache`` in the current working directory is used.
155
-
156
- This means that if you run the tutorial [scripts](https://github.com/sccn/EEGDash/tree/develop/notebooks), the data will only be downloaded the first time the script is executed and reused thereafter.
108
+ Please check our tutorial webpages to explore what you can do with [eegdash](https://eegdash.org/)!
157
109
 
158
110
  ## Education -- Coming soon...
159
111
 
@@ -0,0 +1,45 @@
1
+ # EEG-Dash
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/eegdash)](https://pypi.org/project/eegdash/)
4
+ [![Docs](https://img.shields.io/badge/docs-stable-brightgreen.svg)](https://sccn.github.io/eegdash)
5
+
6
+ [![License: GPL-2.0-or-later](https://img.shields.io/badge/License-GPL--2.0--or--later-blue.svg)](LICENSE)
7
+ [![Python versions](https://img.shields.io/pypi/pyversions/eegdash.svg)](https://pypi.org/project/eegdash/)
8
+ [![Downloads](https://pepy.tech/badge/eegdash)](https://pepy.tech/project/eegdash)
9
+ <!-- [![Coverage](https://img.shields.io/codecov/c/github/sccn/eegdash)](https://codecov.io/gh/sccn/eegdash) -->
10
+
11
+ To leverage recent and ongoing advancements in large-scale computational methods and to ensure the preservation of scientific data generated from publicly funded research, the EEG-DaSh data archive will create a data-sharing resource for MEEG (EEG, MEG) data contributed by collaborators for machine learning (ML) and deep learning (DL) applications.
12
+
13
+ ## Data source
14
+
15
+ The data in EEG-DaSh originates from a collaboration involving 25 laboratories, encompassing 27,053 participants. This extensive collection includes MEEG data, which is a combination of EEG and MEG signals. The data is sourced from various studies conducted by these labs, involving both healthy subjects and clinical populations with conditions such as ADHD, depression, schizophrenia, dementia, autism, and psychosis. Additionally, data spans different mental states like sleep, meditation, and cognitive tasks. In addition, EEG-DaSh will incorporate a subset of the data converted from NEMAR, which includes 330 MEEG BIDS-formatted datasets, further expanding the archive with well-curated, standardized neuroelectromagnetic data.
16
+
17
+ ## Data format
18
+
19
+ EEGDash queries return a **Pytorch Dataset** formatted to facilitate machine learning (ML) and deep learning (DL) applications. PyTorch Datasets are the best format for EEGDash queries because they provide an efficient, scalable, and flexible structure for machine learning (ML) and deep learning (DL) applications. They allow seamless integration with PyTorch’s DataLoader, enabling efficient batching, shuffling, and parallel data loading, which is essential for training deep learning models on large EEG datasets.
20
+
21
+ ## Data preprocessing
22
+
23
+ EEGDash datasets are processed using the popular [braindecode](https://braindecode.org/stable/index.html) library. In fact, EEGDash datasets are braindecode datasets, which are themselves PyTorch datasets. This means that any preprocessing possible on braindecode datasets is also possible on EEGDash datasets. Refer to [braindecode](https://braindecode.org/stable/index.html) tutorials for guidance on preprocessing EEG data.
24
+
25
+ ## EEG-Dash usage
26
+
27
+ ### Install
28
+ Use your preferred Python environment manager with Python > 3.10 to install the package.
29
+ * To install the eegdash package, use the following command: `pip install eegdash`
30
+ * To verify the installation, start a Python session and type: `from eegdash import EEGDash`
31
+
32
+ Please check our tutorial webpages to explore what you can do with [eegdash](https://eegdash.org/)!
33
+
34
+ ## Education -- Coming soon...
35
+
36
+ We organize workshops and educational events to foster cross-cultural education and student training, offering both online and in-person opportunities in collaboration with US and Israeli partners. Events for 2025 will be announced via the EEGLABNEWS mailing list. Be sure to [subscribe](https://sccn.ucsd.edu/mailman/listinfo/eeglabnews).
37
+
38
+ ## About EEG-DaSh
39
+
40
+ EEG-DaSh is a collaborative initiative between the United States and Israel, supported by the National Science Foundation (NSF). The partnership brings together experts from the Swartz Center for Computational Neuroscience (SCCN) at the University of California San Diego (UCSD) and Ben-Gurion University (BGU) in Israel.
41
+
42
+ ![Screenshot 2024-10-03 at 09 14 06](https://github.com/user-attachments/assets/327639d3-c3b4-46b1-9335-37803209b0d3)
43
+
44
+
45
+
@@ -0,0 +1,51 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ SPHINXOPTS ?=
3
+ SPHINXBUILD ?= sphinx-build
4
+ SOURCEDIR = source
5
+ BUILDDIR = build
6
+ PKG ?= eegdash
7
+ APIDIR := $(SOURCEDIR)/api
8
+
9
+ help:
10
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
11
+
12
+ .PHONY: apidoc
13
+ apidoc:
14
+ # Generate full API docs, then prune duplicates covered by autosummary
15
+ @SPHINX_APIDOC_OPTIONS=members,undoc-members,show-inheritance,noindex \
16
+ python -m sphinx.ext.apidoc -f -e -M -o "$(APIDIR)/dataset" "../$(PKG)"
17
+ # Remove top-level package page and modules covered elsewhere
18
+
19
+
20
+ # Standard build runs examples
21
+ html: apidoc
22
+
23
+ # Fast build: do NOT execute examples (sphinx-gallery)
24
+ .PHONY: html-noplot
25
+ html-noplot: apidoc
26
+ @python prepare_summary_tables.py ../eegdash/ $(BUILDDIR)
27
+ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" \
28
+ $(SPHINXOPTS) -D sphinx_gallery_conf.plot_gallery=0 $(O)
29
+
30
+ # Custom clean target to remove generated API docs and build files
31
+ .PHONY: clean
32
+ clean:
33
+ @echo "Removing generated API documentation..."
34
+ @rm -rf "$(APIDIR)/dataset"
35
+ @rm -rf "$(APIDIR)/generated"
36
+ @echo "Removing generated dataset pages..."
37
+ @rm -rf "$(APIDIR)/datasets"
38
+ @rm -f "$(APIDIR)/api_dataset.rst"
39
+ @echo "Removing other generated directories..."
40
+ @rm -rf "$(SOURCEDIR)/generated"
41
+ @rm -rf "$(SOURCEDIR)/gen_modules"
42
+ @echo "Removing build directory..."
43
+ @rm -rf "$(BUILDDIR)"
44
+ @echo "Clean completed."
45
+
46
+ .PHONY: help apidoc
47
+ Makefile: ;
48
+
49
+ %: Makefile
50
+ @python prepare_summary_tables.py ../eegdash/ $(BUILDDIR)
51
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,261 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {
7
+ "collapsed": false
8
+ },
9
+ "outputs": [],
10
+ "source": [
11
+ "# For tips on running notebooks in Google Colab:\n# `pip install eegdash`\n%matplotlib inline"
12
+ ]
13
+ },
14
+ {
15
+ "cell_type": "markdown",
16
+ "metadata": {},
17
+ "source": [
18
+ "\n.. meta::\n :html_theme.sidebar_secondary.remove: true\n\n# Challenge 2: Predicting the p-factor from EEG\n :depth: 2\n"
19
+ ]
20
+ },
21
+ {
22
+ "cell_type": "markdown",
23
+ "metadata": {},
24
+ "source": [
25
+ "<img src=\"https://colab.research.google.com/assets/colab-badge.svg\" target=\"https://colab.research.google.com/github/eeg2025/startkit/blob/main/challenge_2.ipynb\" alt=\"Open In Colab\">\n\n"
26
+ ]
27
+ },
28
+ {
29
+ "cell_type": "markdown",
30
+ "metadata": {},
31
+ "source": [
32
+ "## Preliminary notes\nBefore we begin, I just want to make a deal with you, ok?\nThis is a community competition with a strong open-source foundation.\nWhen I say open-source, I mean volunteer work.\n\nSo, if you see something that does not work or could be improved, first, **please be kind**, and\nwe will fix it together on GitHub, okay?\n\nThe entire decoding community will only go further when we stop\nsolving the same problems over and over again, and it starts working together.\n\n"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "markdown",
37
+ "metadata": {},
38
+ "source": [
39
+ "## Overview\nThe psychopathology factor (P-factor) is a widely recognized construct in mental health research, representing a common underlying dimension of psychopathology across various disorders.\nCurrently, the P-factor is often assessed using self-report questionnaires or clinician ratings, which can be subjective, prone to bias, and time-consuming.\n**The Challenge 2** consists of developing a model to predict the P-factor from EEG recordings.\n\nThe challenge encourages learning physiologically meaningful signal representations and discovery of reproducible biomarkers.\nModels of any size should emphasize robust, interpretable features that generalize across subjects,\nsessions, and acquisition sites.\n\nUnlike a standard in-distribution classification task, this regression problem stresses out-of-distribution robustness\nand extrapolation. The goal is not only to minimize error on seen subjects, but also to transfer effectively to unseen data.\nEnsure the dataset is available locally. If not, see the\n[dataset download guide](https://eeg2025.github.io/data/#downloading-the-data)_.\n\n"
40
+ ]
41
+ },
42
+ {
43
+ "cell_type": "markdown",
44
+ "metadata": {},
45
+ "source": [
46
+ "## Contents of this start kit\n<div class=\"alert alert-info\"><h4>Note</h4><p>If you need additional explanations on the\n :doc:`EEGChallengeDataset\n </api/dataset/eegdash.dataset.EEGChallengeDataset>` class, dataloading,\n [braindecode](https://braindecode.org/stable/models/models_table.html)_'s\n deep learning models, or brain decoding in general, please refer to the\n start-kit of challenge 1 which delves deeper into these topics.</p></div>\n\nMore contents will be released during the competition inside the\n:mod:`eegdash` [examples webpage](https://eeglab.org/EEGDash/generated/auto_examples/index.html)_.\n\n.. admonition:: Prerequisites\n :class: important\n\n The tutorial assumes prior knowledge of:\n\n - Standard neural network architectures (e.g., CNNs)\n - Optimization by batch gradient descent and backpropagation\n - Overfitting, early stopping, and regularization\n - Some knowledge of PyTorch\n - Basic familiarity with EEG and preprocessing\n - An appreciation for open-source work :)\n\n"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "markdown",
51
+ "metadata": {},
52
+ "source": [
53
+ "## Install dependencies on Colab\n\n<div class=\"alert alert-info\"><h4>Note</h4><p>These installs are optional; skip on local environments\n where you already have the dependencies installed.</p></div>\n\n```bash\npip install eegdash\n```\n"
54
+ ]
55
+ },
56
+ {
57
+ "cell_type": "markdown",
58
+ "metadata": {},
59
+ "source": [
60
+ "## Imports\n\n"
61
+ ]
62
+ },
63
+ {
64
+ "cell_type": "code",
65
+ "execution_count": null,
66
+ "metadata": {
67
+ "collapsed": false
68
+ },
69
+ "outputs": [],
70
+ "source": [
71
+ "from pathlib import Path\nimport math\nimport os\nimport random\nfrom joblib import Parallel, delayed\n\nimport torch\nfrom torch.utils.data import DataLoader\nfrom torch import optim\nfrom torch.nn.functional import l1_loss\nfrom braindecode.preprocessing import create_fixed_length_windows\nfrom braindecode.datasets.base import EEGWindowsDataset, BaseConcatDataset, BaseDataset\nfrom braindecode.models import EEGNeX\nfrom eegdash import EEGChallengeDataset"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "markdown",
76
+ "metadata": {},
77
+ "source": [
78
+ "<div class=\"alert alert-danger\"><h4>Warning</h4><p>In case of Colab, before starting, make sure you're on a GPU instance\n for faster training! If running on Google Colab, please request a GPU runtime\n by clicking `Runtime/Change runtime type` in the top bar menu, then selecting\n 'T4 GPU' under 'Hardware accelerator'.</p></div>\n\n"
79
+ ]
80
+ },
81
+ {
82
+ "cell_type": "markdown",
83
+ "metadata": {},
84
+ "source": [
85
+ "## Identify whether a CUDA-enabled GPU is available\n\n"
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "code",
90
+ "execution_count": null,
91
+ "metadata": {
92
+ "collapsed": false
93
+ },
94
+ "outputs": [],
95
+ "source": [
96
+ "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\nif device == \"cuda\":\n msg = \"CUDA-enabled GPU found. Training should be faster.\"\nelse:\n msg = (\n \"No GPU found. Training will be carried out on CPU, which might be \"\n \"slower.\\n\\nIf running on Google Colab, you can request a GPU runtime by\"\n \" clicking\\n`Runtime/Change runtime type` in the top bar menu, then \"\n \"selecting 'T4 GPU'\\nunder 'Hardware accelerator'.\"\n )\nprint(msg)"
97
+ ]
98
+ },
99
+ {
100
+ "cell_type": "markdown",
101
+ "metadata": {},
102
+ "source": [
103
+ "## Understanding the P-factor regression task.\n\nThe psychopathology factor (P-factor) is a widely recognized construct in mental health research, representing a common underlying dimension of psychopathology across various disorders.\nThe P-factor is thought to reflect the shared variance among different psychiatric conditions, suggesting that individuals with higher P-factor scores may be more vulnerable to a range of mental health issues.\nCurrently, the P-factor is often assessed using self-report questionnaires or clinician ratings, which can be subjective, prone to bias, and time-consuming.\nIn the dataset of this challenge, the P-factor was assessed using the Child\nBehavior Checklist (CBCL) [McElroy et al., (2017)](https://doi.org/10.1111/jcpp.12849)_.\n\nThe goal of Challenge 2 is to develop a model to predict the P-factor from EEG recordings.\n**The feasibility of using EEG data for this purpose is still an open question**.\nThe solution may involve finding meaningful representations of the EEG data that correlate with the P-factor scores.\nThe challenge encourages learning physiologically meaningful signal representations and discovery of reproducible biomarkers.\nIf contestants are successful in this task, it could pave the way for more objective and efficient assessments of the P-factor in clinical settings.\n\n"
104
+ ]
105
+ },
106
+ {
107
+ "cell_type": "markdown",
108
+ "metadata": {},
109
+ "source": [
110
+ "## Define local path and (down)load the data\nIn this challenge 2 example, we load the EEG 2025 release using\n:doc:`EEGChallengeDataset </api/dataset/eegdash.dataset.EEGChallengeDataset>`.\n**Note:** in this example notebook, we load the contrast change detection task from one mini release only as an example. Naturally, you are encouraged to train your models on all complete releases, using data from all the tasks you deem relevant.\n\n"
111
+ ]
112
+ },
113
+ {
114
+ "cell_type": "markdown",
115
+ "metadata": {},
116
+ "source": [
117
+ "The first step is to define the cache folder!\nMatch tests' cache layout under ~/eegdash_cache/eeg_challenge_cache\n\n"
118
+ ]
119
+ },
120
+ {
121
+ "cell_type": "code",
122
+ "execution_count": null,
123
+ "metadata": {
124
+ "collapsed": false
125
+ },
126
+ "outputs": [],
127
+ "source": [
128
+ "DATA_DIR = (Path.home() / \"eegdash_cache\" / \"eeg_challenge_cache\").resolve()\n\n# Creating the path if it does not exist\nDATA_DIR.mkdir(parents=True, exist_ok=True)\n\n# We define the list of releases to load.\n# Here, only release 5 is loaded.\nrelease_list = [\"R5\"]\n\nall_datasets_list = [\n EEGChallengeDataset(\n release=release,\n task=\"contrastChangeDetection\",\n mini=True,\n description_fields=[\n \"subject\",\n \"session\",\n \"run\",\n \"task\",\n \"age\",\n \"gender\",\n \"sex\",\n \"p_factor\",\n ],\n cache_dir=DATA_DIR,\n )\n for release in release_list\n]\nprint(\"Datasets loaded\")\nsub_rm = [\"NDARWV769JM7\"]"
129
+ ]
130
+ },
131
+ {
132
+ "cell_type": "markdown",
133
+ "metadata": {},
134
+ "source": [
135
+ "### Combine the datasets into a single one\nHere, we combine the datasets from the different releases into a single\n``BaseConcatDataset`` object.\n\n"
136
+ ]
137
+ },
138
+ {
139
+ "cell_type": "code",
140
+ "execution_count": null,
141
+ "metadata": {
142
+ "collapsed": false
143
+ },
144
+ "outputs": [],
145
+ "source": [
146
+ "all_datasets = BaseConcatDataset(all_datasets_list)\nprint(all_datasets.description)\n\nraws = Parallel(n_jobs=os.cpu_count())(\n delayed(lambda d: d.raw)(d) for d in all_datasets.datasets\n)"
147
+ ]
148
+ },
149
+ {
150
+ "cell_type": "markdown",
151
+ "metadata": {},
152
+ "source": [
153
+ "## Inspect your data\nWe can check what is inside the dataset consuming the\nMNE-object inside the Braindecode dataset.\n\nThe following snippet, if uncommented, will show the first 10 seconds of the raw EEG signal.\nWe can also inspect the data further by looking at the events and annotations.\nWe strongly recommend you to take a look into the details and check how the events are structured.\n\n"
154
+ ]
155
+ },
156
+ {
157
+ "cell_type": "code",
158
+ "execution_count": null,
159
+ "metadata": {
160
+ "collapsed": false
161
+ },
162
+ "outputs": [],
163
+ "source": [
164
+ "raw = all_datasets.datasets[0].raw # mne.io.Raw object\n\nprint(raw.info)\n\nraw.plot(duration=10, scalings=\"auto\", show=True)\n\nprint(raw.annotations)\n\nSFREQ = 100"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "markdown",
169
+ "metadata": {},
170
+ "source": [
171
+ "## Wrap the data into a PyTorch-compatible dataset\nThe class below defines a dataset wrapper that will extract 2-second windows,\nuniformly sampled over the whole signal. In addition, it will add useful information\nabout the extracted windows, such as the p-factor, the subject or the task.\n\n"
172
+ ]
173
+ },
174
+ {
175
+ "cell_type": "code",
176
+ "execution_count": null,
177
+ "metadata": {
178
+ "collapsed": false
179
+ },
180
+ "outputs": [],
181
+ "source": [
182
+ "class DatasetWrapper(BaseDataset):\n def __init__(self, dataset: EEGWindowsDataset, crop_size_samples: int, seed=None):\n self.dataset = dataset\n self.crop_size_samples = crop_size_samples\n self.rng = random.Random(seed)\n\n def __len__(self):\n return len(self.dataset)\n\n def __getitem__(self, index):\n X, _, crop_inds = self.dataset[index]\n\n # P-factor label:\n p_factor = self.dataset.description[\"p_factor\"]\n p_factor = float(p_factor)\n\n # Additional information:\n infos = {\n \"subject\": self.dataset.description[\"subject\"],\n \"sex\": self.dataset.description[\"sex\"],\n \"age\": float(self.dataset.description[\"age\"]),\n \"task\": self.dataset.description[\"task\"],\n \"session\": self.dataset.description.get(\"session\", None) or \"\",\n \"run\": self.dataset.description.get(\"run\", None) or \"\",\n }\n\n # Randomly crop the signal to the desired length:\n i_window_in_trial, i_start, i_stop = crop_inds\n assert i_stop - i_start >= self.crop_size_samples, f\"{i_stop=} {i_start=}\"\n start_offset = self.rng.randint(0, i_stop - i_start - self.crop_size_samples)\n i_start = i_start + start_offset\n i_stop = i_start + self.crop_size_samples\n X = X[:, start_offset : start_offset + self.crop_size_samples]\n\n return X, p_factor, (i_window_in_trial, i_start, i_stop), infos\n\n\n# We filter out certain recordings, create fixed length windows and finally make use of our `DatasetWrapper`."
183
+ ]
184
+ },
185
+ {
186
+ "cell_type": "markdown",
187
+ "metadata": {},
188
+ "source": [
189
+ "Filter out recordings that are too short\n\n"
190
+ ]
191
+ },
192
+ {
193
+ "cell_type": "code",
194
+ "execution_count": null,
195
+ "metadata": {
196
+ "collapsed": false
197
+ },
198
+ "outputs": [],
199
+ "source": [
200
+ "all_datasets = BaseConcatDataset(\n [\n ds\n for ds in all_datasets.datasets\n if ds.description.subject not in sub_rm\n and ds.raw.n_times >= 4 * SFREQ\n and len(ds.raw.ch_names) == 129\n and not math.isnan(ds.description[\"p_factor\"])\n ]\n)\n\n# Create 4-seconds windows with 2-seconds stride\nwindows_ds = create_fixed_length_windows(\n all_datasets,\n window_size_samples=4 * SFREQ,\n window_stride_samples=2 * SFREQ,\n drop_last_window=True,\n)\n\n# Wrap each sub-dataset in the windows_ds\nwindows_ds = BaseConcatDataset(\n [DatasetWrapper(ds, crop_size_samples=2 * SFREQ) for ds in windows_ds.datasets]\n)"
201
+ ]
202
+ },
203
+ {
204
+ "cell_type": "markdown",
205
+ "metadata": {},
206
+ "source": [
207
+ "## Inspect the label distribution\n\n\n"
208
+ ]
209
+ },
210
+ {
211
+ "cell_type": "code",
212
+ "execution_count": null,
213
+ "metadata": {
214
+ "collapsed": false
215
+ },
216
+ "outputs": [],
217
+ "source": [
218
+ "import numpy as np\nfrom skorch.helper import SliceDataset\n\ny_label = np.array(list(SliceDataset(windows_ds, 1)))\n\n# Plot histogram of the response times with matplotlib\nimport matplotlib.pyplot as plt\n\nfig, ax = plt.subplots(figsize=(10, 5))\nax.hist(y_label)\nax.set_title(\"Response Time Distribution\")\nax.set_xlabel(\"Response Time (s)\")\nax.set_ylabel(\"Count\")\nplt.tight_layout()\nplt.show()"
219
+ ]
220
+ },
221
+ {
222
+ "cell_type": "markdown",
223
+ "metadata": {},
224
+ "source": [
225
+ "Define, train and save a model\n ---------------------------------\n Now we have our pytorch dataset necessary for the training!\n\n Below, we define a simple EEGNeX model from Braindecode.\n All the braindecode models expect the input to be of shape (batch_size, n_channels, n_times)\n and have a test coverage about the behavior of the model.\n However, you can use any pytorch model you want.\n#######################################################################\n Initialize model\n ----------------\n\n"
226
+ ]
227
+ },
228
+ {
229
+ "cell_type": "code",
230
+ "execution_count": null,
231
+ "metadata": {
232
+ "collapsed": false
233
+ },
234
+ "outputs": [],
235
+ "source": [
236
+ "model = EEGNeX(n_chans=129, n_outputs=1, n_times=2 * SFREQ).to(device)\n\n# Specify optimizer\noptimizer = optim.Adamax(params=model.parameters(), lr=0.002)\n\nprint(model)\n\n\n# Finally, we can train our model. Here we define a simple training loop using pure PyTorch.\n# In this example, we only train for a single epoch. Feel free to increase the number of epochs.\n# Create PyTorch Dataloader\n\nnum_workers = (\n 0 # Set num_workers to 0 to avoid multiprocessing issues in notebooks/tutorials.\n)\ndataloader = DataLoader(\n windows_ds, batch_size=128, shuffle=True, num_workers=num_workers\n)\n\nn_epochs = 1\n\n# Train model for 1 epoch\nfor epoch in range(n_epochs):\n for idx, batch in enumerate(dataloader):\n # Reset gradients\n optimizer.zero_grad()\n\n # Unpack the batch\n X, y, crop_inds, infos = batch\n X = X.to(dtype=torch.float32, device=device)\n y = y.to(dtype=torch.float32, device=device).unsqueeze(1)\n\n # Forward pass\n y_pred = model(X)\n\n # Compute loss\n loss = l1_loss(y_pred, y)\n print(f\"Epoch {0} - step {idx}, loss: {loss.item()}\")\n\n # Gradient backpropagation\n loss.backward()\n optimizer.step()\n\n# Finally, we can save the model for later use\ntorch.save(model.state_dict(), \"weights_challenge_2.pt\")\nprint(\"Model saved as 'weights_challenge_2.pt'\")"
237
+ ]
238
+ }
239
+ ],
240
+ "metadata": {
241
+ "kernelspec": {
242
+ "display_name": "Python 3",
243
+ "language": "python",
244
+ "name": "python3"
245
+ },
246
+ "language_info": {
247
+ "codemirror_mode": {
248
+ "name": "ipython",
249
+ "version": 3
250
+ },
251
+ "file_extension": ".py",
252
+ "mimetype": "text/x-python",
253
+ "name": "python",
254
+ "nbconvert_exporter": "python",
255
+ "pygments_lexer": "ipython3",
256
+ "version": "3.12.11"
257
+ }
258
+ },
259
+ "nbformat": 4,
260
+ "nbformat_minor": 0
261
+ }