eegprep 0.2.22__tar.gz → 0.3.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.
Files changed (836) hide show
  1. eegprep-0.3.0/MANIFEST.in +2 -0
  2. eegprep-0.3.0/PKG-INFO +448 -0
  3. eegprep-0.3.0/README.md +363 -0
  4. eegprep-0.3.0/pyproject.toml +223 -0
  5. eegprep-0.3.0/src/eegprep/__init__.py +412 -0
  6. eegprep-0.3.0/src/eegprep/cli/__init__.py +1 -0
  7. eegprep-0.3.0/src/eegprep/cli/__main__.py +5 -0
  8. eegprep-0.3.0/src/eegprep/cli/commands/__init__.py +1 -0
  9. eegprep-0.3.0/src/eegprep/cli/commands/batch.py +138 -0
  10. eegprep-0.3.0/src/eegprep/cli/commands/bids.py +376 -0
  11. eegprep-0.3.0/src/eegprep/cli/commands/migrate.py +261 -0
  12. eegprep-0.3.0/src/eegprep/cli/commands/pipeline.py +649 -0
  13. eegprep-0.3.0/src/eegprep/cli/commands/qc.py +436 -0
  14. eegprep-0.3.0/src/eegprep/cli/commands/report.py +104 -0
  15. eegprep-0.3.0/src/eegprep/cli/commands/transforms.py +845 -0
  16. eegprep-0.3.0/src/eegprep/cli/core.py +293 -0
  17. eegprep-0.3.0/src/eegprep/cli/dataset.py +225 -0
  18. eegprep-0.3.0/src/eegprep/cli/discovery.py +379 -0
  19. eegprep-0.3.0/src/eegprep/cli/main.py +254 -0
  20. eegprep-0.3.0/src/eegprep/cli/reporting.py +148 -0
  21. eegprep-0.3.0/src/eegprep/extension_catalog.py +341 -0
  22. eegprep-0.3.0/src/eegprep/extension_catalog_validation.py +699 -0
  23. eegprep-0.3.0/src/eegprep/extension_runtime.py +279 -0
  24. eegprep-0.3.0/src/eegprep/extension_testing.py +180 -0
  25. eegprep-0.3.0/src/eegprep/extensions.py +1135 -0
  26. eegprep-0.3.0/src/eegprep/functions/__init__.py +1 -0
  27. eegprep-0.3.0/src/eegprep/functions/adminfunc/__init__.py +1 -0
  28. eegprep-0.3.0/src/eegprep/functions/adminfunc/console.py +1462 -0
  29. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_checkset.py +547 -0
  30. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_options.py +52 -0
  31. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_retrieve.py +41 -0
  32. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_store.py +50 -0
  33. eegprep-0.3.0/src/eegprep/functions/adminfunc/eegh.py +83 -0
  34. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeglab.py +115 -0
  35. eegprep-0.3.0/src/eegprep/functions/adminfunc/eeglabcompat.py +530 -0
  36. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/adminfunc}/git.py +10 -15
  37. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/adminfunc}/logs.py +29 -27
  38. eegprep-0.3.0/src/eegprep/functions/adminfunc/plugin_menu.py +934 -0
  39. eegprep-0.3.0/src/eegprep/functions/adminfunc/pop_delset.py +24 -0
  40. eegprep-0.3.0/src/eegprep/functions/adminfunc/pop_editoptions.py +17 -0
  41. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/adminfunc}/pymat.py +33 -177
  42. eegprep-0.3.0/src/eegprep/functions/adminfunc/storage.py +381 -0
  43. eegprep-0.3.0/src/eegprep/functions/eegobj/__init__.py +5 -0
  44. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/eegobj}/eegobj.py +80 -54
  45. eegprep-0.3.0/src/eegprep/functions/guifunc/__init__.py +30 -0
  46. eegprep-0.3.0/src/eegprep/functions/guifunc/coregister.py +449 -0
  47. eegprep-0.3.0/src/eegprep/functions/guifunc/eegbrowser.py +1462 -0
  48. eegprep-0.3.0/src/eegprep/functions/guifunc/eeglab_menu.py +389 -0
  49. eegprep-0.3.0/src/eegprep/functions/guifunc/inputgui.py +21 -0
  50. eegprep-0.3.0/src/eegprep/functions/guifunc/listdlg2.py +199 -0
  51. eegprep-0.3.0/src/eegprep/functions/guifunc/long_task.py +166 -0
  52. eegprep-0.3.0/src/eegprep/functions/guifunc/main_window.py +888 -0
  53. eegprep-0.3.0/src/eegprep/functions/guifunc/menu_actions.py +1866 -0
  54. eegprep-0.3.0/src/eegprep/functions/guifunc/menu_placeholders.py +47 -0
  55. eegprep-0.3.0/src/eegprep/functions/guifunc/menu_spec.py +113 -0
  56. eegprep-0.3.0/src/eegprep/functions/guifunc/pophelp.py +167 -0
  57. eegprep-0.3.0/src/eegprep/functions/guifunc/qt.py +1469 -0
  58. eegprep-0.3.0/src/eegprep/functions/guifunc/select_multiple_datasets.py +62 -0
  59. eegprep-0.3.0/src/eegprep/functions/guifunc/session.py +486 -0
  60. eegprep-0.3.0/src/eegprep/functions/guifunc/spec.py +63 -0
  61. eegprep-0.3.0/src/eegprep/functions/guifunc/tf_cycle_calc_dialog.py +70 -0
  62. eegprep-0.3.0/src/eegprep/functions/guifunc/theme.py +90 -0
  63. eegprep-0.3.0/src/eegprep/functions/miscfunc/__init__.py +1 -0
  64. eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_eeg2mne.py +30 -0
  65. eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_mne2eeg.py +69 -0
  66. eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_mne2eeg_epochs.py +198 -0
  67. eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_ms2f.py +40 -0
  68. eegprep-0.3.0/src/eegprep/functions/miscfunc/event_utils.py +59 -0
  69. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/miscfunc}/misc.py +154 -77
  70. eegprep-0.3.0/src/eegprep/functions/miscfunc/numdim.py +34 -0
  71. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/miscfunc}/pinv.py +19 -17
  72. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/miscfunc}/save_struct_as_hdf5.py +28 -24
  73. eegprep-0.3.0/src/eegprep/functions/miscfunc/value_parsing.py +138 -0
  74. eegprep-0.3.0/src/eegprep/functions/popfunc/__init__.py +1 -0
  75. eegprep-0.3.0/src/eegprep/functions/popfunc/_chanutils.py +51 -0
  76. eegprep-0.3.0/src/eegprep/functions/popfunc/_coming_soon.py +12 -0
  77. eegprep-0.3.0/src/eegprep/functions/popfunc/_eegplot_rejection.py +527 -0
  78. eegprep-0.3.0/src/eegprep/functions/popfunc/_event_utils.py +113 -0
  79. eegprep-0.3.0/src/eegprep/functions/popfunc/_file_io.py +343 -0
  80. eegprep-0.3.0/src/eegprep/functions/popfunc/_ica_utils.py +61 -0
  81. eegprep-0.3.0/src/eegprep/functions/popfunc/_pop_utils.py +115 -0
  82. eegprep-0.3.0/src/eegprep/functions/popfunc/_property_browser.py +70 -0
  83. eegprep-0.3.0/src/eegprep/functions/popfunc/_rejection.py +451 -0
  84. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_amica.py +143 -0
  85. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_compare.py +367 -0
  86. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_decodechan.py +22 -10
  87. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_eegrej.py +148 -110
  88. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_emptyset.py +54 -0
  89. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_findboundaries.py +25 -0
  90. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_getica.py +5 -0
  91. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_interp.py +518 -0
  92. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_lat2point.py +15 -8
  93. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_multieegplot.py +180 -0
  94. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_picard.py +80 -0
  95. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_point2lat.py +16 -10
  96. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_pv.py +5 -0
  97. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_pvaf.py +5 -0
  98. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_rejsuperpose.py +140 -0
  99. eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_runica.py +56 -0
  100. eegprep-0.3.0/src/eegprep/functions/popfunc/plot_utils.py +357 -0
  101. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_adjustevents.py +338 -0
  102. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_autorej.py +218 -0
  103. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_averef.py +24 -0
  104. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_biosig.py +27 -0
  105. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chancenter.py +88 -0
  106. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chancoresp.py +150 -0
  107. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chanedit.py +450 -0
  108. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chanevent.py +169 -0
  109. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chansel.py +163 -0
  110. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_comments.py +131 -0
  111. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_compareerps.py +57 -0
  112. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_comperp.py +463 -0
  113. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_copyset.py +78 -0
  114. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_crossf.py +42 -0
  115. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editeventfield.py +359 -0
  116. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editeventvals.py +324 -0
  117. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editset.py +608 -0
  118. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegfilt.py +156 -0
  119. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegplot.py +318 -0
  120. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegthresh.py +232 -0
  121. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_envtopo.py +162 -0
  122. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_epoch.py +648 -0
  123. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_erpimage.py +521 -0
  124. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eventstat.py +166 -0
  125. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_expevents.py +23 -0
  126. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_expica.py +28 -0
  127. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_export.py +248 -0
  128. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fileio.py +74 -0
  129. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fileio_brainvision_mat.py +34 -0
  130. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_findmatchingcomps.py +108 -0
  131. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fusechanrej.py +54 -0
  132. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_headplot.py +702 -0
  133. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_icathresh.py +115 -0
  134. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importdata.py +84 -0
  135. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importepoch.py +60 -0
  136. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importerplab.py +37 -0
  137. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importevent.py +128 -0
  138. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importpres.py +37 -0
  139. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_interp.py +365 -0
  140. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_jointprob.py +209 -0
  141. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_load_frombids.py +724 -0
  142. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_loadbci.py +85 -0
  143. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_loadset.py +196 -0
  144. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/pop_loadset_h5.py +82 -51
  145. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_mergeset.py +237 -0
  146. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newcrossf.py +197 -0
  147. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newset.py +285 -0
  148. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newtimef.py +291 -0
  149. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_plotdata.py +96 -0
  150. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_plottopo.py +114 -0
  151. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_prop.py +183 -0
  152. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_readlocs.py +34 -0
  153. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejchan.py +155 -0
  154. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejchanspec.py +135 -0
  155. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejcont.py +343 -0
  156. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejepoch.py +46 -0
  157. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejkurt.py +211 -0
  158. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejmenu.py +293 -0
  159. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejspec.py +240 -0
  160. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejtrend.py +212 -0
  161. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_reref.py +850 -0
  162. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_resample.py +474 -0
  163. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rmbase.py +454 -0
  164. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rmdat.py +182 -0
  165. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_runica.py +597 -0
  166. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_runscript.py +27 -0
  167. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_saveh.py +26 -0
  168. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_saveset.py +530 -0
  169. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_select.py +778 -0
  170. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_selectcomps.py +111 -0
  171. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_selectevent.py +385 -0
  172. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_signalstat.py +113 -0
  173. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_snapread.py +44 -0
  174. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_spectopo.py +298 -0
  175. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_subcomp.py +295 -0
  176. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_timef.py +40 -0
  177. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_timtopo.py +116 -0
  178. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_topochansel.py +43 -0
  179. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_topoplot.py +455 -0
  180. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_writeeeg.py +22 -0
  181. eegprep-0.3.0/src/eegprep/functions/popfunc/pop_writelocs.py +36 -0
  182. eegprep-0.3.0/src/eegprep/functions/redefine_functions.py +135 -0
  183. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/__init__.py +1 -0
  184. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/cart2topo.py +58 -0
  185. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/chancenter.py +49 -0
  186. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/compvar.py +5 -0
  187. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/convertlocs.py +212 -0
  188. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/coregister.py +532 -0
  189. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/eegplot.py +995 -0
  190. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/sigprocfunc}/eegrej.py +55 -43
  191. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/eegthresh.py +54 -0
  192. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/entropy_rej.py +68 -0
  193. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/envtopo.py +117 -0
  194. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/sigprocfunc}/epoch.py +27 -21
  195. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/erpimage.py +112 -0
  196. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/floatread.py +71 -0
  197. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/floatwrite.py +31 -0
  198. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/headplot.py +729 -0
  199. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/ica_helpers.py +308 -0
  200. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icaact.py +5 -0
  201. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icaproj.py +5 -0
  202. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icavar.py +5 -0
  203. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/jointprob.py +5 -0
  204. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/kurt.py +25 -0
  205. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/plottopo.py +153 -0
  206. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/readegilocs.py +49 -0
  207. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/readlocs.py +414 -0
  208. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/realproba.py +44 -0
  209. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rejkurt.py +5 -0
  210. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rejtrend.py +50 -0
  211. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/reref.py +175 -0
  212. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rmbase.py +98 -0
  213. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/runamica.py +867 -0
  214. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/runica.py +1373 -0
  215. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/signalstat.py +187 -0
  216. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/snapread.py +73 -0
  217. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/spectopo.py +509 -0
  218. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/spher.py +34 -0
  219. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/timtopo.py +228 -0
  220. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/topoplot.py +437 -0
  221. eegprep-0.3.0/src/eegprep/functions/sigprocfunc/writelocs.py +88 -0
  222. eegprep-0.3.0/src/eegprep/functions/statistics/__init__.py +73 -0
  223. eegprep-0.3.0/src/eegprep/functions/statistics/_core.py +45 -0
  224. eegprep-0.3.0/src/eegprep/functions/statistics/_shared.py +224 -0
  225. eegprep-0.3.0/src/eegprep/functions/statistics/anova1_cell.py +41 -0
  226. eegprep-0.3.0/src/eegprep/functions/statistics/anova1rm_cell.py +45 -0
  227. eegprep-0.3.0/src/eegprep/functions/statistics/anova2_cell.py +53 -0
  228. eegprep-0.3.0/src/eegprep/functions/statistics/anova2rm_cell.py +81 -0
  229. eegprep-0.3.0/src/eegprep/functions/statistics/concatdata.py +49 -0
  230. eegprep-0.3.0/src/eegprep/functions/statistics/corrcoef_cell.py +30 -0
  231. eegprep-0.3.0/src/eegprep/functions/statistics/fdr.py +76 -0
  232. eegprep-0.3.0/src/eegprep/functions/statistics/stat_surrogate_ci.py +54 -0
  233. eegprep-0.3.0/src/eegprep/functions/statistics/stat_surrogate_pvals.py +45 -0
  234. eegprep-0.3.0/src/eegprep/functions/statistics/statcond.py +262 -0
  235. eegprep-0.3.0/src/eegprep/functions/statistics/surrogdistrib.py +133 -0
  236. eegprep-0.3.0/src/eegprep/functions/statistics/teststat.py +53 -0
  237. eegprep-0.3.0/src/eegprep/functions/statistics/ttest2_cell.py +57 -0
  238. eegprep-0.3.0/src/eegprep/functions/statistics/ttest_cell.py +30 -0
  239. eegprep-0.3.0/src/eegprep/functions/studyfunc/__init__.py +1 -0
  240. eegprep-0.3.0/src/eegprep/functions/studyfunc/_cluster_kmeans.py +62 -0
  241. eegprep-0.3.0/src/eegprep/functions/studyfunc/_cluster_utils.py +286 -0
  242. eegprep-0.3.0/src/eegprep/functions/studyfunc/_limo_limitations.py +20 -0
  243. eegprep-0.3.0/src/eegprep/functions/studyfunc/_source_limitations.py +20 -0
  244. eegprep-0.3.0/src/eegprep/functions/studyfunc/_std_measureplot.py +260 -0
  245. eegprep-0.3.0/src/eegprep/functions/studyfunc/_study_utils.py +562 -0
  246. eegprep-0.3.0/src/eegprep/functions/studyfunc/optimal_kmeans.py +80 -0
  247. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_addindepvar.py +99 -0
  248. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_chanplot.py +416 -0
  249. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_clust.py +168 -0
  250. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_clustedit.py +319 -0
  251. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_importgroupvar.py +110 -0
  252. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_limo.py +15 -0
  253. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_limoresults.py +15 -0
  254. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_listfactors.py +118 -0
  255. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_loadstudy.py +91 -0
  256. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_preclust.py +322 -0
  257. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_precomp.py +221 -0
  258. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_savestudy.py +118 -0
  259. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_study.py +348 -0
  260. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studydesign.py +225 -0
  261. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studyerp.py +19 -0
  262. eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studywizard.py +22 -0
  263. eegprep-0.3.0/src/eegprep/functions/studyfunc/robust_kmeans.py +94 -0
  264. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_addvarlevel.py +84 -0
  265. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_apcluster.py +99 -0
  266. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_builddesignmat.py +112 -0
  267. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_centroid.py +26 -0
  268. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkconsist.py +46 -0
  269. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkdatasession.py +40 -0
  270. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkdesign.py +27 -0
  271. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkfiles.py +55 -0
  272. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkset.py +38 -0
  273. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_clustplot.py +54 -0
  274. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_combtrialinfo.py +76 -0
  275. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_createclust.py +97 -0
  276. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_dipoleclusters.py +15 -0
  277. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_dipplot.py +15 -0
  278. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_editset.py +168 -0
  279. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_erpplot.py +15 -0
  280. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_erspplot.py +15 -0
  281. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findgroupvars.py +67 -0
  282. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findoutlierclust.py +36 -0
  283. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findsameica.py +81 -0
  284. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_getindvar.py +148 -0
  285. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_gettrialsind.py +100 -0
  286. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_indvarmatch.py +72 -0
  287. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_interp.py +108 -0
  288. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_itcplot.py +15 -0
  289. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limo.py +15 -0
  290. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limodesign.py +203 -0
  291. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limoresults.py +15 -0
  292. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_makedesign.py +224 -0
  293. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_maketrialinfo.py +92 -0
  294. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_mergeclust.py +86 -0
  295. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_movecomp.py +110 -0
  296. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_moveoutlier.py +99 -0
  297. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_pac.py +512 -0
  298. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_pacplot.py +116 -0
  299. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_preclust.py +320 -0
  300. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_precomp.py +714 -0
  301. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_prepare_neighbors.py +172 -0
  302. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readdata.py +437 -0
  303. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readfilelimo.py +15 -0
  304. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readpac.py +5 -0
  305. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rebuilddesign.py +50 -0
  306. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rejectoutliers.py +68 -0
  307. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_renameclust.py +80 -0
  308. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rmalldatafields.py +38 -0
  309. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rmdat.py +254 -0
  310. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_savedat.py +43 -0
  311. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_saveindvar.py +21 -0
  312. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selectdataset.py +109 -0
  313. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selectdesign.py +22 -0
  314. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selsubject.py +60 -0
  315. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_specplot.py +15 -0
  316. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_substudy.py +167 -0
  317. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_uniformfiles.py +24 -0
  318. eegprep-0.3.0/src/eegprep/functions/studyfunc/std_uniformsetinds.py +37 -0
  319. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/__init__.py +62 -0
  320. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/_bootstrap.py +125 -0
  321. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/_pac_support.py +624 -0
  322. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/angtimewarp.py +63 -0
  323. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/bootstat.py +98 -0
  324. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/correct_mc.py +80 -0
  325. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/correctfit.py +45 -0
  326. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/crossf.py +23 -0
  327. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt.py +37 -0
  328. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt2.py +67 -0
  329. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt3.py +109 -0
  330. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newcrossf.py +381 -0
  331. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimef.py +615 -0
  332. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefbaseln.py +141 -0
  333. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefitc.py +36 -0
  334. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefpowerunit.py +30 -0
  335. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimeftrialbaseln.py +70 -0
  336. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/pac.py +20 -0
  337. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/pac_cont.py +15 -0
  338. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsadjust.py +38 -0
  339. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsfit.py +98 -0
  340. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsget.py +25 -0
  341. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rspdfsolv.py +57 -0
  342. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rspfunc.py +17 -0
  343. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/tf_cycle_calc.py +161 -0
  344. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timef.py +22 -0
  345. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timefreq.py +489 -0
  346. eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timewarp.py +82 -0
  347. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/__init__.py +1 -0
  348. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids.py +78 -49
  349. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids_list_eeg_files.py +39 -32
  350. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids_preproc.py +574 -346
  351. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/bids_tools.py +68 -0
  352. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/coords.py +59 -42
  353. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/menu.py +76 -0
  354. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/montage.py +211 -0
  355. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/pop_exportbids.py +66 -0
  356. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/pop_importbids.py +32 -0
  357. eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/raw.py +349 -0
  358. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/ICL_feature_extractor.py +30 -19
  359. eegprep-0.3.0/src/eegprep/plugins/ICLabel/__init__.py +1 -0
  360. eegprep-0.3.0/src/eegprep/plugins/ICLabel/_prop_browser.py +778 -0
  361. eegprep-0.3.0/src/eegprep/plugins/ICLabel/_prop_numerics.py +474 -0
  362. eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_autocorr.py +58 -0
  363. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/eeg_autocorr_fftw.py +30 -37
  364. eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_autocorr_welch.py +84 -0
  365. eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_icalabelstat.py +150 -0
  366. eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_icflag.py +63 -0
  367. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/eeg_rpsd.py +33 -26
  368. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/iclabel.py +53 -34
  369. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/iclabel_net.py +173 -43
  370. eegprep-0.3.0/src/eegprep/plugins/ICLabel/menu.py +39 -0
  371. eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_icflag.py +168 -0
  372. eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_iclabel.py +79 -0
  373. eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_prop_extended.py +189 -0
  374. eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_viewprops.py +207 -0
  375. eegprep-0.3.0/src/eegprep/plugins/__init__.py +1 -0
  376. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/__init__.py +36 -0
  377. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/asr_calibrate.py +303 -0
  378. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/asr_process.py +272 -0
  379. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/clean_artifacts.py +314 -0
  380. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_asr.py +79 -36
  381. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_channels.py +57 -69
  382. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_channels_nolocs.py +26 -51
  383. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_drifts.py +16 -16
  384. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_flatlines.py +11 -17
  385. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_windows.py +35 -54
  386. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/menu.py +15 -0
  387. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/pop_clean_rawdata.py +283 -0
  388. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/__init__.py +1 -0
  389. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/channel_removal.py +42 -0
  390. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private}/covariance.py +25 -22
  391. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/masks.py +15 -0
  392. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/ransac.py +152 -0
  393. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/sigproc.py +165 -0
  394. eegprep-0.2.22/src/eegprep/utils/spatial.py → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/sphericalSplineInterpolate.py +35 -31
  395. {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private}/stats.py +52 -46
  396. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/yulewalk.py +149 -0
  397. eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/vis_artifacts.py +146 -0
  398. eegprep-0.3.0/src/eegprep/plugins/dipfit/__init__.py +10 -0
  399. eegprep-0.3.0/src/eegprep/plugins/dipfit/_coordinates.py +533 -0
  400. eegprep-0.3.0/src/eegprep/plugins/dipfit/_fieldtrip_workflows.py +730 -0
  401. eegprep-0.3.0/src/eegprep/plugins/dipfit/_fitting.py +529 -0
  402. eegprep-0.3.0/src/eegprep/plugins/dipfit/_mri.py +133 -0
  403. eegprep-0.3.0/src/eegprep/plugins/dipfit/_utils.py +219 -0
  404. eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_gridsearch.py +8 -0
  405. eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_nonlinear.py +8 -0
  406. eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_reject.py +8 -0
  407. eegprep-0.3.0/src/eegprep/plugins/dipfit/electroderealign.py +8 -0
  408. eegprep-0.3.0/src/eegprep/plugins/dipfit/headcoordinates.py +8 -0
  409. eegprep-0.3.0/src/eegprep/plugins/dipfit/load_afni_atlas.py +94 -0
  410. eegprep-0.3.0/src/eegprep/plugins/dipfit/menu.py +57 -0
  411. eegprep-0.3.0/src/eegprep/plugins/dipfit/mni2tal.py +8 -0
  412. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_batch.py +8 -0
  413. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_gridsearch.py +8 -0
  414. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_headmodel.py +8 -0
  415. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_loreta.py +8 -0
  416. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_manual.py +8 -0
  417. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_nonlinear.py +8 -0
  418. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_settings.py +232 -0
  419. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipplot.py +322 -0
  420. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_leadfield.py +8 -0
  421. eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_multifit.py +8 -0
  422. eegprep-0.3.0/src/eegprep/plugins/dipfit/sph2spm.py +8 -0
  423. eegprep-0.3.0/src/eegprep/plugins/firfilt/__init__.py +44 -0
  424. eegprep-0.3.0/src/eegprep/plugins/firfilt/_filtering.py +479 -0
  425. eegprep-0.3.0/src/eegprep/plugins/firfilt/_pop_common.py +172 -0
  426. eegprep-0.3.0/src/eegprep/plugins/firfilt/design.py +107 -0
  427. eegprep-0.3.0/src/eegprep/plugins/firfilt/findboundaries.py +27 -0
  428. eegprep-0.3.0/src/eegprep/plugins/firfilt/fir_filterdcpadded.py +60 -0
  429. eegprep-0.3.0/src/eegprep/plugins/firfilt/firfiltreport.py +82 -0
  430. eegprep-0.3.0/src/eegprep/plugins/firfilt/firfiltsplit.py +70 -0
  431. eegprep-0.3.0/src/eegprep/plugins/firfilt/firgauss.py +18 -0
  432. eegprep-0.3.0/src/eegprep/plugins/firfilt/firws.py +142 -0
  433. eegprep-0.3.0/src/eegprep/plugins/firfilt/firwsord.py +62 -0
  434. eegprep-0.3.0/src/eegprep/plugins/firfilt/invfirwsord.py +36 -0
  435. eegprep-0.3.0/src/eegprep/plugins/firfilt/invkaiserbeta.py +26 -0
  436. eegprep-0.3.0/src/eegprep/plugins/firfilt/kaiserbeta.py +18 -0
  437. eegprep-0.3.0/src/eegprep/plugins/firfilt/menu.py +15 -0
  438. eegprep-0.3.0/src/eegprep/plugins/firfilt/minphaserceps.py +24 -0
  439. eegprep-0.3.0/src/eegprep/plugins/firfilt/plotfresp.py +111 -0
  440. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_eegfiltnew.py +191 -0
  441. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firma.py +93 -0
  442. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firpm.py +173 -0
  443. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firpmord.py +86 -0
  444. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firws.py +244 -0
  445. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firwsord.py +84 -0
  446. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_kaiserbeta.py +53 -0
  447. eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_xfirws.py +206 -0
  448. eegprep-0.3.0/src/eegprep/plugins/firfilt/windows.py +74 -0
  449. eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/README.md +19 -0
  450. eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/standard_mri_license.txt +9 -0
  451. eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/standard_mri_mni.npz +0 -0
  452. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/eeg_options_64bit.m +1 -1
  453. eegprep-0.3.0/src/eegprep/resources/extension_catalog.json +5 -0
  454. eegprep-0.3.0/src/eegprep/resources/headplot/Standard-10-5-Cap385.sfp +348 -0
  455. eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh.mat +0 -0
  456. eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh.xyz +3 -0
  457. eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh_license.txt +1 -0
  458. eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.mat +0 -0
  459. eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.transform +4 -0
  460. eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.xyz +75 -0
  461. eegprep-0.3.0/src/eegprep/resources/help/clean_artifacts.md +15 -0
  462. eegprep-0.3.0/src/eegprep/resources/help/coregister.md +23 -0
  463. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpadmin.md +20 -0
  464. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpgui.md +18 -0
  465. eegprep-0.3.0/src/eegprep/resources/help/eeg_helphelp.md +20 -0
  466. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpmenu.md +25 -0
  467. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpmisc.md +13 -0
  468. eegprep-0.3.0/src/eegprep/resources/help/eeg_helppop.md +21 -0
  469. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpsigproc.md +14 -0
  470. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpstatistics.md +19 -0
  471. eegprep-0.3.0/src/eegprep/resources/help/eeg_helpstudy.md +40 -0
  472. eegprep-0.3.0/src/eegprep/resources/help/eeg_helptimefreq.md +20 -0
  473. eegprep-0.3.0/src/eegprep/resources/help/eeg_icalabelstat.md +31 -0
  474. eegprep-0.3.0/src/eegprep/resources/help/eeg_multieegplot.md +15 -0
  475. eegprep-0.3.0/src/eegprep/resources/help/eeg_rejsuperpose.md +13 -0
  476. eegprep-0.3.0/src/eegprep/resources/help/eegplot.md +42 -0
  477. eegprep-0.3.0/src/eegprep/resources/help/eegprep.md +15 -0
  478. eegprep-0.3.0/src/eegprep/resources/help/pac.md +14 -0
  479. eegprep-0.3.0/src/eegprep/resources/help/pac_cont.md +11 -0
  480. eegprep-0.3.0/src/eegprep/resources/help/plugin_menu.md +38 -0
  481. eegprep-0.3.0/src/eegprep/resources/help/pop_addindepvar.md +19 -0
  482. eegprep-0.3.0/src/eegprep/resources/help/pop_adjustevents.md +22 -0
  483. eegprep-0.3.0/src/eegprep/resources/help/pop_autorej.md +14 -0
  484. eegprep-0.3.0/src/eegprep/resources/help/pop_averef.md +9 -0
  485. eegprep-0.3.0/src/eegprep/resources/help/pop_biosig.md +16 -0
  486. eegprep-0.3.0/src/eegprep/resources/help/pop_chancenter.md +18 -0
  487. eegprep-0.3.0/src/eegprep/resources/help/pop_chancoresp.md +20 -0
  488. eegprep-0.3.0/src/eegprep/resources/help/pop_chanedit.md +13 -0
  489. eegprep-0.3.0/src/eegprep/resources/help/pop_chanevent.md +18 -0
  490. eegprep-0.3.0/src/eegprep/resources/help/pop_chanplot.md +29 -0
  491. eegprep-0.3.0/src/eegprep/resources/help/pop_chansel.md +19 -0
  492. eegprep-0.3.0/src/eegprep/resources/help/pop_clean_rawdata.md +61 -0
  493. eegprep-0.3.0/src/eegprep/resources/help/pop_clust.md +21 -0
  494. eegprep-0.3.0/src/eegprep/resources/help/pop_clustedit.md +26 -0
  495. eegprep-0.3.0/src/eegprep/resources/help/pop_comments.md +24 -0
  496. eegprep-0.3.0/src/eegprep/resources/help/pop_compareerps.md +8 -0
  497. eegprep-0.3.0/src/eegprep/resources/help/pop_comperp.md +31 -0
  498. eegprep-0.3.0/src/eegprep/resources/help/pop_copyset.md +10 -0
  499. eegprep-0.3.0/src/eegprep/resources/help/pop_crossf.md +11 -0
  500. eegprep-0.3.0/src/eegprep/resources/help/pop_delset.md +17 -0
  501. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_batch.md +5 -0
  502. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_gridsearch.md +7 -0
  503. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_headmodel.md +5 -0
  504. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_loreta.md +5 -0
  505. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_manual.md +5 -0
  506. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_nonlinear.md +7 -0
  507. eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_settings.md +7 -0
  508. eegprep-0.3.0/src/eegprep/resources/help/pop_dipplot.md +7 -0
  509. eegprep-0.3.0/src/eegprep/resources/help/pop_editeventfield.md +11 -0
  510. eegprep-0.3.0/src/eegprep/resources/help/pop_editeventvals.md +11 -0
  511. eegprep-0.3.0/src/eegprep/resources/help/pop_editoptions.md +18 -0
  512. eegprep-0.3.0/src/eegprep/resources/help/pop_editset.md +43 -0
  513. eegprep-0.3.0/src/eegprep/resources/help/pop_eegfilt.md +24 -0
  514. eegprep-0.3.0/src/eegprep/resources/help/pop_eegfiltnew.md +16 -0
  515. eegprep-0.3.0/src/eegprep/resources/help/pop_eegplot.md +20 -0
  516. eegprep-0.3.0/src/eegprep/resources/help/pop_eegthresh.md +12 -0
  517. eegprep-0.3.0/src/eegprep/resources/help/pop_envtopo.md +16 -0
  518. eegprep-0.3.0/src/eegprep/resources/help/pop_epoch.md +39 -0
  519. eegprep-0.3.0/src/eegprep/resources/help/pop_erpimage.md +39 -0
  520. eegprep-0.3.0/src/eegprep/resources/help/pop_eventinfo.md +17 -0
  521. eegprep-0.3.0/src/eegprep/resources/help/pop_eventstat.md +17 -0
  522. eegprep-0.3.0/src/eegprep/resources/help/pop_expevents.md +14 -0
  523. eegprep-0.3.0/src/eegprep/resources/help/pop_expica.md +15 -0
  524. eegprep-0.3.0/src/eegprep/resources/help/pop_export.md +32 -0
  525. eegprep-0.3.0/src/eegprep/resources/help/pop_exportbids.md +17 -0
  526. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio.md +20 -0
  527. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_brainvision.md +15 -0
  528. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_brainvision_mat.md +7 -0
  529. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_cnt.md +15 -0
  530. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_eeg.md +15 -0
  531. eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_mff.md +13 -0
  532. eegprep-0.3.0/src/eegprep/resources/help/pop_findmatchingcomps.md +13 -0
  533. eegprep-0.3.0/src/eegprep/resources/help/pop_firma.md +11 -0
  534. eegprep-0.3.0/src/eegprep/resources/help/pop_firpm.md +14 -0
  535. eegprep-0.3.0/src/eegprep/resources/help/pop_firpmord.md +12 -0
  536. eegprep-0.3.0/src/eegprep/resources/help/pop_firws.md +17 -0
  537. eegprep-0.3.0/src/eegprep/resources/help/pop_firwsord.md +14 -0
  538. eegprep-0.3.0/src/eegprep/resources/help/pop_fusechanrej.md +9 -0
  539. eegprep-0.3.0/src/eegprep/resources/help/pop_headplot.md +44 -0
  540. eegprep-0.3.0/src/eegprep/resources/help/pop_icathresh.md +9 -0
  541. eegprep-0.3.0/src/eegprep/resources/help/pop_icflag.md +32 -0
  542. eegprep-0.3.0/src/eegprep/resources/help/pop_iclabel.md +38 -0
  543. eegprep-0.3.0/src/eegprep/resources/help/pop_importbids.md +17 -0
  544. eegprep-0.3.0/src/eegprep/resources/help/pop_importdata.md +17 -0
  545. eegprep-0.3.0/src/eegprep/resources/help/pop_importepoch.md +16 -0
  546. eegprep-0.3.0/src/eegprep/resources/help/pop_importerplab.md +16 -0
  547. eegprep-0.3.0/src/eegprep/resources/help/pop_importevent.md +16 -0
  548. eegprep-0.3.0/src/eegprep/resources/help/pop_importgroupvar.md +19 -0
  549. eegprep-0.3.0/src/eegprep/resources/help/pop_importpres.md +16 -0
  550. eegprep-0.3.0/src/eegprep/resources/help/pop_interp.md +36 -0
  551. eegprep-0.3.0/src/eegprep/resources/help/pop_jointprob.md +12 -0
  552. eegprep-0.3.0/src/eegprep/resources/help/pop_kaiserbeta.md +15 -0
  553. eegprep-0.3.0/src/eegprep/resources/help/pop_leadfield.md +7 -0
  554. eegprep-0.3.0/src/eegprep/resources/help/pop_limo.md +12 -0
  555. eegprep-0.3.0/src/eegprep/resources/help/pop_limoresults.md +9 -0
  556. eegprep-0.3.0/src/eegprep/resources/help/pop_listfactors.md +17 -0
  557. eegprep-0.3.0/src/eegprep/resources/help/pop_load_frombids.md +24 -0
  558. eegprep-0.3.0/src/eegprep/resources/help/pop_loadbci.md +18 -0
  559. eegprep-0.3.0/src/eegprep/resources/help/pop_loadset.md +19 -0
  560. eegprep-0.3.0/src/eegprep/resources/help/pop_loadset_h5.md +19 -0
  561. eegprep-0.3.0/src/eegprep/resources/help/pop_loadstudy.md +25 -0
  562. eegprep-0.3.0/src/eegprep/resources/help/pop_mergeset.md +11 -0
  563. eegprep-0.3.0/src/eegprep/resources/help/pop_multifit.md +7 -0
  564. eegprep-0.3.0/src/eegprep/resources/help/pop_newcrossf.md +19 -0
  565. eegprep-0.3.0/src/eegprep/resources/help/pop_newset.md +23 -0
  566. eegprep-0.3.0/src/eegprep/resources/help/pop_newtimef.md +28 -0
  567. eegprep-0.3.0/src/eegprep/resources/help/pop_participantinfo.md +15 -0
  568. eegprep-0.3.0/src/eegprep/resources/help/pop_plotdata.md +11 -0
  569. eegprep-0.3.0/src/eegprep/resources/help/pop_plottopo.md +12 -0
  570. eegprep-0.3.0/src/eegprep/resources/help/pop_preclust.md +20 -0
  571. eegprep-0.3.0/src/eegprep/resources/help/pop_precomp.md +29 -0
  572. eegprep-0.3.0/src/eegprep/resources/help/pop_prop.md +12 -0
  573. eegprep-0.3.0/src/eegprep/resources/help/pop_prop_extended.md +40 -0
  574. eegprep-0.3.0/src/eegprep/resources/help/pop_readlocs.md +18 -0
  575. eegprep-0.3.0/src/eegprep/resources/help/pop_rejchan.md +11 -0
  576. eegprep-0.3.0/src/eegprep/resources/help/pop_rejchanspec.md +17 -0
  577. eegprep-0.3.0/src/eegprep/resources/help/pop_rejcont.md +12 -0
  578. eegprep-0.3.0/src/eegprep/resources/help/pop_rejepoch.md +12 -0
  579. eegprep-0.3.0/src/eegprep/resources/help/pop_rejkurt.md +10 -0
  580. eegprep-0.3.0/src/eegprep/resources/help/pop_rejmenu.md +13 -0
  581. eegprep-0.3.0/src/eegprep/resources/help/pop_rejspec.md +11 -0
  582. eegprep-0.3.0/src/eegprep/resources/help/pop_rejtrend.md +10 -0
  583. eegprep-0.3.0/src/eegprep/resources/help/pop_reref.md +42 -0
  584. eegprep-0.3.0/src/eegprep/resources/help/pop_resample.md +39 -0
  585. eegprep-0.3.0/src/eegprep/resources/help/pop_rmbase.md +19 -0
  586. eegprep-0.3.0/src/eegprep/resources/help/pop_rmdat.md +10 -0
  587. eegprep-0.3.0/src/eegprep/resources/help/pop_runica.md +66 -0
  588. eegprep-0.3.0/src/eegprep/resources/help/pop_runscript.md +19 -0
  589. eegprep-0.3.0/src/eegprep/resources/help/pop_saveh.md +16 -0
  590. eegprep-0.3.0/src/eegprep/resources/help/pop_saveset.md +24 -0
  591. eegprep-0.3.0/src/eegprep/resources/help/pop_savestudy.md +25 -0
  592. eegprep-0.3.0/src/eegprep/resources/help/pop_select.md +18 -0
  593. eegprep-0.3.0/src/eegprep/resources/help/pop_selectcomps.md +12 -0
  594. eegprep-0.3.0/src/eegprep/resources/help/pop_selectevent.md +11 -0
  595. eegprep-0.3.0/src/eegprep/resources/help/pop_signalstat.md +19 -0
  596. eegprep-0.3.0/src/eegprep/resources/help/pop_snapread.md +14 -0
  597. eegprep-0.3.0/src/eegprep/resources/help/pop_spectopo.md +30 -0
  598. eegprep-0.3.0/src/eegprep/resources/help/pop_study.md +28 -0
  599. eegprep-0.3.0/src/eegprep/resources/help/pop_studydesign.md +22 -0
  600. eegprep-0.3.0/src/eegprep/resources/help/pop_studyerp.md +16 -0
  601. eegprep-0.3.0/src/eegprep/resources/help/pop_studywizard.md +19 -0
  602. eegprep-0.3.0/src/eegprep/resources/help/pop_subcomp.md +28 -0
  603. eegprep-0.3.0/src/eegprep/resources/help/pop_taskinfo.md +14 -0
  604. eegprep-0.3.0/src/eegprep/resources/help/pop_timef.md +11 -0
  605. eegprep-0.3.0/src/eegprep/resources/help/pop_timtopo.md +12 -0
  606. eegprep-0.3.0/src/eegprep/resources/help/pop_topochansel.md +9 -0
  607. eegprep-0.3.0/src/eegprep/resources/help/pop_topoplot.md +25 -0
  608. eegprep-0.3.0/src/eegprep/resources/help/pop_viewprops.md +19 -0
  609. eegprep-0.3.0/src/eegprep/resources/help/pop_writeeeg.md +15 -0
  610. eegprep-0.3.0/src/eegprep/resources/help/pop_writelocs.md +16 -0
  611. eegprep-0.3.0/src/eegprep/resources/help/pop_xfirws.md +18 -0
  612. eegprep-0.3.0/src/eegprep/resources/help/reref.md +30 -0
  613. eegprep-0.3.0/src/eegprep/resources/help/select_multiple_datasets.md +7 -0
  614. eegprep-0.3.0/src/eegprep/resources/help/std_interp.md +10 -0
  615. eegprep-0.3.0/src/eegprep/resources/help/std_limodesign.md +11 -0
  616. eegprep-0.3.0/src/eegprep/resources/help/std_pac.md +15 -0
  617. eegprep-0.3.0/src/eegprep/resources/help/std_pacplot.md +10 -0
  618. eegprep-0.3.0/src/eegprep/resources/help/std_prepare_neighbors.md +10 -0
  619. eegprep-0.3.0/src/eegprep/resources/help/std_readpac.md +11 -0
  620. eegprep-0.3.0/src/eegprep/resources/help/tf_cycle_calc.md +17 -0
  621. eegprep-0.3.0/src/eegprep/resources/help/troubleshooting_data_formats.md +19 -0
  622. eegprep-0.3.0/src/eegprep/resources/help/vis_artifacts.md +14 -0
  623. eegprep-0.3.0/src/eegprep/resources/skills/eegprep-cli.md +97 -0
  624. eegprep-0.3.0/src/eegprep/utils/__init__.py +1 -0
  625. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/utils/testing.py +99 -27
  626. eegprep-0.3.0/src/eegprep.egg-info/PKG-INFO +448 -0
  627. eegprep-0.3.0/src/eegprep.egg-info/SOURCES.txt +787 -0
  628. eegprep-0.3.0/src/eegprep.egg-info/entry_points.txt +5 -0
  629. eegprep-0.3.0/src/eegprep.egg-info/requires.txt +45 -0
  630. eegprep-0.3.0/tests/test_ICL_feature_extractor.py +690 -0
  631. eegprep-0.3.0/tests/test_ICL_feature_extractor_parity.py +242 -0
  632. eegprep-0.3.0/tests/test_bids_gen_derived_fpath.py +52 -0
  633. eegprep-0.3.0/tests/test_bids_load_frombids_helpers.py +91 -0
  634. eegprep-0.3.0/tests/test_bids_preproc.py +254 -0
  635. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_bids_preproc_old.py +15 -14
  636. eegprep-0.3.0/tests/test_cart2topo.py +39 -0
  637. eegprep-0.3.0/tests/test_clean_artifacts.py +993 -0
  638. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_asr.py +132 -34
  639. eegprep-0.3.0/tests/test_clean_drifts.py +256 -0
  640. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_flatlines.py +106 -109
  641. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_rawdata.py +93 -71
  642. eegprep-0.3.0/tests/test_clean_rawdata_channel_removal.py +34 -0
  643. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_windows.py +207 -173
  644. eegprep-0.3.0/tests/test_cli_bids_migrate_commands.py +296 -0
  645. eegprep-0.3.0/tests/test_cli_main.py +282 -0
  646. eegprep-0.3.0/tests/test_cli_pipeline_qc_report.py +317 -0
  647. eegprep-0.3.0/tests/test_cli_transforms.py +301 -0
  648. eegprep-0.3.0/tests/test_console_workspace.py +1806 -0
  649. eegprep-0.3.0/tests/test_dipfit_workflows.py +473 -0
  650. eegprep-0.3.0/tests/test_eeg_amica.py +432 -0
  651. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr.py +157 -95
  652. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr_fftw.py +96 -86
  653. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr_welch.py +141 -79
  654. eegprep-0.3.0/tests/test_eeg_checkset.py +652 -0
  655. eegprep-0.3.0/tests/test_eeg_checkset_eventconsistency.py +172 -0
  656. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_compare.py +188 -209
  657. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_decodechan.py +2 -1
  658. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_eeg2mne.py +114 -127
  659. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_eegrej.py +188 -128
  660. eegprep-0.3.0/tests/test_eeg_emptyset.py +13 -0
  661. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_interp.py +293 -309
  662. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_lat2point.py +4 -4
  663. eegprep-0.3.0/tests/test_eeg_mne2eeg.py +577 -0
  664. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_mne2eeg_epochs.py +196 -159
  665. eegprep-0.3.0/tests/test_eeg_ms2f.py +53 -0
  666. eegprep-0.3.0/tests/test_eeg_picard.py +453 -0
  667. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_point2lat.py +53 -50
  668. eegprep-0.3.0/tests/test_eeg_retrieve.py +59 -0
  669. eegprep-0.3.0/tests/test_eeg_rpsd_parity.py +232 -0
  670. eegprep-0.3.0/tests/test_eeg_runica.py +191 -0
  671. eegprep-0.3.0/tests/test_eeg_store.py +94 -0
  672. eegprep-0.3.0/tests/test_eeg_store_storedisk.py +132 -0
  673. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegfindboundaries.py +82 -93
  674. eegprep-0.3.0/tests/test_eegh.py +50 -0
  675. eegprep-0.3.0/tests/test_eeglab.py +85 -0
  676. eegprep-0.3.0/tests/test_eeglab_final_parity_matrix.py +197 -0
  677. eegprep-0.3.0/tests/test_eeglab_parity_matrix.py +172 -0
  678. eegprep-0.3.0/tests/test_eeglabcompat.py +368 -0
  679. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegobj.py +79 -77
  680. eegprep-0.3.0/tests/test_eegplot.py +586 -0
  681. eegprep-0.3.0/tests/test_eegplot_gui.py +589 -0
  682. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegrej.py +12 -5
  683. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_epoch.py +52 -34
  684. eegprep-0.3.0/tests/test_extension_authoring_toolkit.py +208 -0
  685. eegprep-0.3.0/tests/test_extension_catalog.py +467 -0
  686. eegprep-0.3.0/tests/test_extension_docs.py +85 -0
  687. eegprep-0.3.0/tests/test_extension_integration.py +556 -0
  688. eegprep-0.3.0/tests/test_extension_runtime.py +760 -0
  689. eegprep-0.3.0/tests/test_extension_testing.py +195 -0
  690. eegprep-0.3.0/tests/test_extensions.py +703 -0
  691. eegprep-0.3.0/tests/test_file_menu_pop_functions.py +371 -0
  692. eegprep-0.3.0/tests/test_firfilt_helpers.py +218 -0
  693. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_fixtures.py +108 -66
  694. eegprep-0.3.0/tests/test_gui_long_task.py +157 -0
  695. eegprep-0.3.0/tests/test_gui_main_window.py +1829 -0
  696. eegprep-0.3.0/tests/test_gui_pop_adjustevents.py +71 -0
  697. eegprep-0.3.0/tests/test_gui_pop_clean_rawdata.py +239 -0
  698. eegprep-0.3.0/tests/test_gui_pop_comments.py +45 -0
  699. eegprep-0.3.0/tests/test_gui_pop_editset.py +82 -0
  700. eegprep-0.3.0/tests/test_gui_pop_firfilt.py +274 -0
  701. eegprep-0.3.0/tests/test_gui_pop_icflag.py +111 -0
  702. eegprep-0.3.0/tests/test_gui_pop_iclabel.py +80 -0
  703. eegprep-0.3.0/tests/test_gui_pop_prop_extended.py +277 -0
  704. eegprep-0.3.0/tests/test_gui_pop_reref.py +194 -0
  705. eegprep-0.3.0/tests/test_gui_pop_resample.py +77 -0
  706. eegprep-0.3.0/tests/test_gui_pop_runica.py +453 -0
  707. eegprep-0.3.0/tests/test_gui_pop_select.py +236 -0
  708. eegprep-0.3.0/tests/test_gui_pop_study.py +139 -0
  709. eegprep-0.3.0/tests/test_gui_pop_subcomp.py +176 -0
  710. eegprep-0.3.0/tests/test_gui_rejection_dialogs.py +356 -0
  711. eegprep-0.3.0/tests/test_guifunc_pophelp_chansel.py +150 -0
  712. eegprep-0.3.0/tests/test_iclabel.py +71 -0
  713. eegprep-0.3.0/tests/test_iclabel_features.py +179 -0
  714. eegprep-0.3.0/tests/test_iclabel_statistics.py +126 -0
  715. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_import_edf.py +4 -9
  716. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_logs.py +13 -17
  717. eegprep-0.3.0/tests/test_matlab_path.py +79 -0
  718. eegprep-0.3.0/tests/test_menu_placeholder_inventory.py +76 -0
  719. eegprep-0.3.0/tests/test_numdim.py +69 -0
  720. eegprep-0.3.0/tests/test_pac_time_frequency_helpers.py +251 -0
  721. eegprep-0.3.0/tests/test_package_exports.py +135 -0
  722. eegprep-0.3.0/tests/test_parity_rng.py +335 -0
  723. eegprep-0.3.0/tests/test_phase1b_file_edit_pop_functions.py +588 -0
  724. eegprep-0.3.0/tests/test_phase2_file_channel_location.py +280 -0
  725. eegprep-0.3.0/tests/test_phase4_plot_wrappers.py +1792 -0
  726. eegprep-0.3.0/tests/test_phase4_timefreq_statistics.py +1078 -0
  727. eegprep-0.3.0/tests/test_phase7_long_tail_helpers.py +241 -0
  728. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pinv.py +77 -77
  729. eegprep-0.3.0/tests/test_pipeline.py +316 -0
  730. eegprep-0.3.0/tests/test_plugin_menu.py +603 -0
  731. eegprep-0.3.0/tests/test_pop_adjustevents.py +165 -0
  732. eegprep-0.3.0/tests/test_pop_comments.py +108 -0
  733. eegprep-0.3.0/tests/test_pop_delset.py +21 -0
  734. eegprep-0.3.0/tests/test_pop_editeventvals.py +146 -0
  735. eegprep-0.3.0/tests/test_pop_editset.py +413 -0
  736. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_epoch.py +593 -159
  737. eegprep-0.3.0/tests/test_pop_firfilt.py +385 -0
  738. eegprep-0.3.0/tests/test_pop_interp.py +395 -0
  739. eegprep-0.3.0/tests/test_pop_loadset.py +94 -0
  740. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_loadset_h5.py +140 -129
  741. eegprep-0.3.0/tests/test_pop_newset.py +253 -0
  742. eegprep-0.3.0/tests/test_pop_prop_extended.py +201 -0
  743. eegprep-0.3.0/tests/test_pop_reref.py +1022 -0
  744. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_resample.py +32 -19
  745. eegprep-0.3.0/tests/test_pop_resample_python.py +95 -0
  746. eegprep-0.3.0/tests/test_pop_rmbase.py +307 -0
  747. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_saveset.py +111 -21
  748. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_select.py +160 -106
  749. eegprep-0.3.0/tests/test_pop_topoplot.py +322 -0
  750. eegprep-0.3.0/tests/test_pop_utils.py +90 -0
  751. eegprep-0.3.0/tests/test_processing_logging_contract.py +70 -0
  752. eegprep-0.3.0/tests/test_public_api_examples.py +114 -0
  753. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pymat.py +202 -247
  754. eegprep-0.3.0/tests/test_rejection_workflows.py +791 -0
  755. eegprep-0.3.0/tests/test_runamica.py +385 -0
  756. eegprep-0.3.0/tests/test_runica.py +727 -0
  757. eegprep-0.3.0/tests/test_runtime_eeglab_independence.py +34 -0
  758. eegprep-0.3.0/tests/test_sample_data_pop_functions.py +745 -0
  759. eegprep-0.3.0/tests/test_session_contracts.py +164 -0
  760. eegprep-0.3.0/tests/test_sigproc_eegrej.py +56 -0
  761. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_spatial.py +57 -81
  762. eegprep-0.3.0/tests/test_spectopo_parity.py +91 -0
  763. eegprep-0.3.0/tests/test_spher.py +44 -0
  764. eegprep-0.3.0/tests/test_statistics_package.py +436 -0
  765. eegprep-0.3.0/tests/test_storage.py +134 -0
  766. eegprep-0.3.0/tests/test_study_clustering.py +571 -0
  767. eegprep-0.3.0/tests/test_study_end_to_end.py +284 -0
  768. eegprep-0.3.0/tests/test_study_long_tail_helpers.py +239 -0
  769. eegprep-0.3.0/tests/test_study_measures.py +566 -0
  770. eegprep-0.3.0/tests/test_study_metadata.py +368 -0
  771. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_topoplot.py +308 -226
  772. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_asr.py +520 -236
  773. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_covariance.py +117 -126
  774. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_ransac.py +195 -179
  775. {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_testing.py +51 -39
  776. eegprep-0.3.0/tests/test_visual_parity.py +725 -0
  777. eegprep-0.2.22/PKG-INFO +0 -208
  778. eegprep-0.2.22/README.md +0 -142
  779. eegprep-0.2.22/pyproject.toml +0 -75
  780. eegprep-0.2.22/src/eegprep/__init__.py +0 -44
  781. eegprep-0.2.22/src/eegprep/clean_artifacts.py +0 -310
  782. eegprep-0.2.22/src/eegprep/eeg_autocorr.py +0 -61
  783. eegprep-0.2.22/src/eegprep/eeg_autocorr_welch.py +0 -61
  784. eegprep-0.2.22/src/eegprep/eeg_checkset.py +0 -227
  785. eegprep-0.2.22/src/eegprep/eeg_compare.py +0 -241
  786. eegprep-0.2.22/src/eegprep/eeg_eeg2mne.py +0 -39
  787. eegprep-0.2.22/src/eegprep/eeg_findboundaries.py +0 -57
  788. eegprep-0.2.22/src/eegprep/eeg_interp.py +0 -479
  789. eegprep-0.2.22/src/eegprep/eeg_mne2eeg.py +0 -77
  790. eegprep-0.2.22/src/eegprep/eeg_mne2eeg_epochs.py +0 -187
  791. eegprep-0.2.22/src/eegprep/eeg_options.py +0 -48
  792. eegprep-0.2.22/src/eegprep/eeg_picard.py +0 -109
  793. eegprep-0.2.22/src/eegprep/eeglabcompat.py +0 -365
  794. eegprep-0.2.22/src/eegprep/iclabel_net_load_py_measures.py +0 -137
  795. eegprep-0.2.22/src/eegprep/pop_epoch.py +0 -279
  796. eegprep-0.2.22/src/eegprep/pop_load_frombids.py +0 -1010
  797. eegprep-0.2.22/src/eegprep/pop_loadset.py +0 -115
  798. eegprep-0.2.22/src/eegprep/pop_reref.py +0 -54
  799. eegprep-0.2.22/src/eegprep/pop_reref_helper.py +0 -22
  800. eegprep-0.2.22/src/eegprep/pop_resample.py +0 -322
  801. eegprep-0.2.22/src/eegprep/pop_rmbase.py +0 -241
  802. eegprep-0.2.22/src/eegprep/pop_saveset.py +0 -257
  803. eegprep-0.2.22/src/eegprep/pop_select.py +0 -508
  804. eegprep-0.2.22/src/eegprep/redefine_functions.py +0 -93
  805. eegprep-0.2.22/src/eegprep/topoplot.py +0 -194
  806. eegprep-0.2.22/src/eegprep/utils/__init__.py +0 -2
  807. eegprep-0.2.22/src/eegprep/utils/asr.py +0 -568
  808. eegprep-0.2.22/src/eegprep/utils/ransac.py +0 -76
  809. eegprep-0.2.22/src/eegprep/utils/sigproc.py +0 -394
  810. eegprep-0.2.22/src/eegprep.egg-info/PKG-INFO +0 -208
  811. eegprep-0.2.22/src/eegprep.egg-info/SOURCES.txt +0 -128
  812. eegprep-0.2.22/src/eegprep.egg-info/requires.txt +0 -24
  813. eegprep-0.2.22/tests/test_ICL_feature_extractor.py +0 -530
  814. eegprep-0.2.22/tests/test_bids_preproc.py +0 -157
  815. eegprep-0.2.22/tests/test_clean_artifacts.py +0 -868
  816. eegprep-0.2.22/tests/test_clean_drifts.py +0 -366
  817. eegprep-0.2.22/tests/test_eeg_mne2eeg.py +0 -610
  818. eegprep-0.2.22/tests/test_eeg_picard.py +0 -422
  819. eegprep-0.2.22/tests/test_eeglabcompat.py +0 -452
  820. eegprep-0.2.22/tests/test_iclabel.py +0 -26
  821. eegprep-0.2.22/tests/test_pipeline.py +0 -55
  822. eegprep-0.2.22/tests/test_pop_reref.py +0 -315
  823. eegprep-0.2.22/tests/test_pop_rmbase.py +0 -144
  824. {eegprep-0.2.22 → eegprep-0.3.0}/LICENSE +0 -0
  825. {eegprep-0.2.22 → eegprep-0.3.0}/setup.cfg +0 -0
  826. {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/netICL.mat +0 -0
  827. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/README.md +0 -0
  828. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-128.locs +0 -0
  829. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-128v1.locs +0 -0
  830. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-128v2.locs +0 -0
  831. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-256v1.locs +0 -0
  832. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/egi-gsn-hydrocell-129.locs +0 -0
  833. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/egi-gsn-hydrocell-257.locs +0 -0
  834. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/standard-10-5-342ch.locs +0 -0
  835. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep.egg-info/dependency_links.txt +0 -0
  836. {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep.egg-info/top_level.txt +0 -0
@@ -0,0 +1,2 @@
1
+ prune src/eegprep/bin
2
+
eegprep-0.3.0/PKG-INFO ADDED
@@ -0,0 +1,448 @@
1
+ Metadata-Version: 2.4
2
+ Name: eegprep
3
+ Version: 0.3.0
4
+ Summary: EEG preprocessing pipeline on Python
5
+ Author-email: Arnaud Delorme <adelorme@gmail.com>, Young Truong <dt.young112@gmail.com>
6
+ License: BSD 2-Clause License
7
+
8
+ Copyright (c) 2025, Swartz Center for Computational Neuroscience
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright notice,
14
+ this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright notice,
17
+ this list of conditions and the following disclaimer in the documentation
18
+ and/or other materials provided with the distribution.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30
+ THE POSSIBILITY OF SUCH DAMAGE.
31
+
32
+ Project-URL: Homepage, https://github.com/sccn/eegprep
33
+ Project-URL: Issues, https://github.com/sccn/eegprep/issues
34
+ Keywords: eeg,preprocessing,EEGLAB
35
+ Classifier: Development Status :: 3 - Alpha
36
+ Classifier: Intended Audience :: Science/Research
37
+ Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
38
+ Classifier: Programming Language :: Python :: 3
39
+ Classifier: License :: OSI Approved :: BSD License
40
+ Classifier: Operating System :: OS Independent
41
+ Requires-Python: >=3.10
42
+ Description-Content-Type: text/markdown
43
+ License-File: LICENSE
44
+ Requires-Dist: colorama>=0.4.6
45
+ Requires-Dist: eeglabio>=0.1.2
46
+ Requires-Dist: h5py>=3.3.0
47
+ Requires-Dist: matplotlib>=3.4.0
48
+ Requires-Dist: mne>=1.10.0
49
+ Requires-Dist: neo>=0.14.2
50
+ Requires-Dist: numpy>=1.20
51
+ Requires-Dist: oct2py>=5.5.0
52
+ Requires-Dist: packaging>=23.0
53
+ Requires-Dist: psutil>=7.0.0
54
+ Requires-Dist: pybids>=0.4
55
+ Requires-Dist: pyedflib>=0.1.42
56
+ Requires-Dist: pyyaml>=6.0
57
+ Requires-Dist: python-picard<0.9,>=0.8
58
+ Requires-Dist: scipy>=1.7.0
59
+ Requires-Dist: sympy>=1.14.0
60
+ Requires-Dist: threadpoolctl>=3.6.0
61
+ Provides-Extra: torch
62
+ Requires-Dist: torch>=2.0; extra == "torch"
63
+ Provides-Extra: gui
64
+ Requires-Dist: pyqtgraph>=0.13.7; extra == "gui"
65
+ Requires-Dist: PySide6>=6.6; extra == "gui"
66
+ Provides-Extra: console
67
+ Requires-Dist: eegprep[gui]; extra == "console"
68
+ Requires-Dist: ipython>=8.0; extra == "console"
69
+ Provides-Extra: docs
70
+ Requires-Dist: sphinx>=7.0; extra == "docs"
71
+ Requires-Dist: pydata-sphinx-theme>=0.14.0; extra == "docs"
72
+ Requires-Dist: sphinx-gallery>=0.14.0; extra == "docs"
73
+ Requires-Dist: numpydoc>=1.6.0; extra == "docs"
74
+ Requires-Dist: sphinx-design>=0.5.0; extra == "docs"
75
+ Requires-Dist: myst-parser>=1.0.0; extra == "docs"
76
+ Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
77
+ Requires-Dist: sphinx-togglebutton>=0.3.0; extra == "docs"
78
+ Requires-Dist: sphinxcontrib-spelling>=7.1.0; extra == "docs"
79
+ Provides-Extra: all
80
+ Requires-Dist: eegprep[torch]; extra == "all"
81
+ Requires-Dist: eegprep[gui]; extra == "all"
82
+ Requires-Dist: eegprep[console]; extra == "all"
83
+ Requires-Dist: eegprep[docs]; extra == "all"
84
+ Dynamic: license-file
85
+
86
+ <p align="center">
87
+ <img src="https://github.com/user-attachments/assets/d7230b12-7fb8-4abb-94a0-33c47286b019" width="300" alt="EEGPrep logo">
88
+ </p>
89
+
90
+ # EEGPrep
91
+
92
+ [![Tests](https://github.com/sccn/eegprep/actions/workflows/test.yml/badge.svg)](https://github.com/sccn/eegprep/actions/workflows/test.yml)
93
+ [![Documentation Status](https://github.com/sccn/eegprep/actions/workflows/docs.yml/badge.svg)](https://github.com/sccn/eegprep/actions/workflows/docs.yml)
94
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
95
+ [![License](https://img.shields.io/badge/license-BSD--3--Clause-blue)](LICENSE)
96
+
97
+ EEGPrep is an EEGLAB-compatible, Python-native toolkit for loading, cleaning,
98
+ visualizing, scripting, and validating EEG preprocessing workflows. It keeps the
99
+ EEGLAB concepts researchers already know, including `EEG`, `ALLEEG`,
100
+ `CURRENTSET`, `pop_*` functions, command history, ICA fields, channel locations,
101
+ events, epochs, STUDY workflows, and EEGBrowser-style review, while providing a
102
+ standalone Python package with GUI, interactive console, CLI, tests, and Sphinx
103
+ documentation.
104
+
105
+ EEGPrep is built for EEG researchers who want EEGLAB-style workflows, Python
106
+ reproducibility, and agent-friendly automation without requiring MATLAB or an
107
+ EEGLAB checkout at runtime.
108
+
109
+ **Documentation:** [sccn.github.io/eegprep](https://sccn.github.io/eegprep/) |
110
+ **Issue tracker:** [github.com/sccn/eegprep/issues](https://github.com/sccn/eegprep/issues)
111
+
112
+ ## Why EEGPrep?
113
+
114
+ - **Familiar to EEGLAB users.** Function names, data structures, menus, history
115
+ commands, and GUI workflows follow EEGLAB where that helps users move between
116
+ tools.
117
+ - **Python-native and standalone.** Runtime code lives in the `eegprep` package
118
+ and works without calling MATLAB or reading the vendored EEGLAB reference tree.
119
+ - **GUI and console share one workspace.** Launch `eegprep-console` and switch
120
+ between the Qt GUI and Python commands while `EEG`, `ALLEEG`, `CURRENTSET`,
121
+ `LASTCOM`, `ALLCOM`, `STUDY`, and `CURRENTSTUDY` stay synchronized.
122
+ - **Scriptable from day one.** The same `pop_*` workflows can be used from the
123
+ GUI, Python scripts, and the command-line interface.
124
+ - **Designed for reproducible research.** CLI commands support structured JSON,
125
+ manifests, pipeline validation, stable error codes, and bundled agent guidance.
126
+ - **Validated against EEGLAB.** Numerical parity tests and visual parity checks
127
+ compare EEGPrep behavior with EEGLAB for deterministic workflows.
128
+
129
+ ## Install
130
+
131
+ EEGPrep uses `uv` for development and CI. For a published release, install the
132
+ lean package with:
133
+
134
+ ```bash
135
+ uv add eegprep
136
+ ```
137
+
138
+ To install all optional extras, including GUI, console, docs, and classifier
139
+ dependencies, use:
140
+
141
+ ```bash
142
+ uv add "eegprep[all]"
143
+ ```
144
+
145
+ If you are installing into a non-`uv` environment, `pip install eegprep` remains
146
+ supported for published releases:
147
+
148
+ ```bash
149
+ pip install eegprep
150
+ ```
151
+
152
+ For a source checkout:
153
+
154
+ ```bash
155
+ git clone https://github.com/sccn/eegprep.git
156
+ cd eegprep
157
+ uv sync --group dev
158
+ ```
159
+
160
+ The complete install can pull in large optional binaries on some platforms,
161
+ especially for ICLabel/PyTorch support. You can install a lightweight CPU-only
162
+ PyTorch build manually if that better matches your system.
163
+
164
+ ## Quick Start
165
+
166
+ The repository includes tutorial data in `sample_data/`, named after EEGLAB's
167
+ sample-data convention.
168
+
169
+ ### Shared GUI and Python Console
170
+
171
+ Launch EEGPrep with the main GUI and a synchronized IPython workspace:
172
+
173
+ ```bash
174
+ uv run eegprep-console --full
175
+ ```
176
+
177
+ Then use the GUI to load `sample_data/eeglab_data.set`, run preprocessing
178
+ actions from the menus, and inspect the same state from the console:
179
+
180
+ ```python
181
+ EEG["setname"], EEG["srate"], EEG["nbchan"], EEG["pnts"]
182
+ CURRENTSET
183
+ LASTCOM
184
+ eegh()
185
+ ```
186
+
187
+ You can also run `pop_*` commands directly:
188
+
189
+ ```python
190
+ pop_resample(EEG, 64)
191
+ pop_reref(EEG, [])
192
+ ```
193
+
194
+ GUI actions and console commands append to the same history, so workflows can be
195
+ replayed or moved into scripts.
196
+
197
+ ### GUI Only
198
+
199
+ ```bash
200
+ uv run eegprep-gui --full
201
+ ```
202
+
203
+ Use this when you want the EEGLAB-style menu workflow without an attached
204
+ console.
205
+
206
+ ### Agent-Friendly CLI
207
+
208
+ The `eegprep` command is intended for headless pipelines, batch processing, and
209
+ AI agents that need machine-readable output.
210
+
211
+ ```bash
212
+ uv run eegprep inspect sample_data/eeglab_data.set --json
213
+ uv run eegprep validate sample_data/eeglab_data.set --json
214
+ uv run eegprep capabilities --json
215
+ uv run eegprep skills get eegprep-cli
216
+ ```
217
+
218
+ Transform commands use the same EEGPrep processing functions as the Python API
219
+ and write manifests for reproducibility:
220
+
221
+ ```bash
222
+ uv run eegprep resample sample_data/eeglab_data.set \
223
+ --freq 64 \
224
+ --output sample_data/eeglab_data_64hz.set \
225
+ --manifest sample_data/eeglab_data_64hz_manifest.json \
226
+ --json
227
+ ```
228
+
229
+ ### Python API
230
+
231
+ ```python
232
+ from pathlib import Path
233
+
234
+ from eegprep import pop_eegfiltnew, pop_loadset, pop_resample, pop_saveset
235
+
236
+ input_file = Path("sample_data") / "eeglab_data.set"
237
+ output_file = Path("sample_data") / "eeglab_data_quickstart.set"
238
+
239
+ EEG = pop_loadset(input_file)
240
+ EEG, filter_com = pop_eegfiltnew(
241
+ EEG,
242
+ locutoff=1.0,
243
+ hicutoff=40.0,
244
+ plotfreqz=False,
245
+ return_com=True,
246
+ )
247
+ EEG, resample_com = pop_resample(EEG, 64, return_com=True)
248
+ pop_saveset(EEG, output_file)
249
+
250
+ print(filter_com)
251
+ print(resample_com)
252
+ ```
253
+
254
+ `return_com=True` returns the updated dataset and the replayable command string
255
+ that EEGPrep records in GUI and console history.
256
+
257
+ ## For EEGLAB Users
258
+
259
+ | EEGLAB concept | EEGPrep equivalent |
260
+ | --- | --- |
261
+ | `eeglab` GUI | `uv run eegprep-gui --full` or `uv run eegprep-console --full` |
262
+ | `EEG`, `ALLEEG`, `CURRENTSET` | Shared `EEGPrepSession` state in the GUI and console |
263
+ | MATLAB command history | `LASTCOM`, `ALLCOM`, and `eegh()` in `eegprep-console` |
264
+ | `pop_*` wrappers | Python `eegprep.pop_*` functions with `return_com=True` |
265
+ | EEGBrowser / scrolling review | EEGPrep EEGBrowser and `pop_eegplot` workflows |
266
+ | clean_rawdata, ICLabel, FIRFilt, DIPFIT, EEG-BIDS | Bundled EEGPrep plugin ports and menu integrations |
267
+ | STUDY workflows | Python STUDY structures, GUI paths, and `std_*` helpers |
268
+ | MATLAB scripts | Python scripts, CLI pipelines, and history-derived commands |
269
+
270
+ EEGPrep follows EEGLAB's one-based user-facing indices where researchers expect
271
+ them, while using zero-based Python indices internally. Continuous data is
272
+ channel-major, usually `(nbchan, pnts)`, and epoched data is usually
273
+ `(nbchan, pnts, trials)`.
274
+
275
+ ## What Is Included
276
+
277
+ - EEGLAB `.set` loading/saving, BIDS import/export, and common EEG file I/O.
278
+ - BIDS derivative workflows intended to interoperate with EEGPrep, EEGLAB,
279
+ FieldTrip, Brainstorm, MNE, and other EEG analysis tools.
280
+ - Dataset, event, channel-location, epoch, and history workflows.
281
+ - Filtering, resampling, rereferencing, cleaning, rejection, interpolation, ICA,
282
+ component review, ICLabel, DIPFIT, topographies, spectra, time-frequency, and
283
+ statistics workflows.
284
+ - EEGBrowser-style scrolling inspection, marking, and rejection.
285
+ - STUDY and group-level workflow support.
286
+ - Extension SDK, plugin discovery, extension validation, and agent-facing
287
+ extension authoring guidance.
288
+ - Sphinx documentation, API reference, examples, and a structured CLI.
289
+
290
+ ## Documentation
291
+
292
+ Start with the [online documentation](https://sccn.github.io/eegprep/):
293
+
294
+ - [Quick Start](https://sccn.github.io/eegprep/user_guide/quickstart.html)
295
+ - [GUI and Console Session](https://sccn.github.io/eegprep/user_guide/gui_console_session.html)
296
+ - [Scripting Workflows](https://sccn.github.io/eegprep/user_guide/scripting_workflows.html)
297
+ - [EEGBrowser](https://sccn.github.io/eegprep/user_guide/eegbrowser.html)
298
+ - [Extensions](https://sccn.github.io/eegprep/user_guide/extensions.html)
299
+ - [API Reference](https://sccn.github.io/eegprep/api/index.html)
300
+
301
+ Repository documentation helpers are kept in [`docs/`](docs/). The docs
302
+ workflow publishes the Sphinx site to GitHub Pages.
303
+
304
+ ## Project Status
305
+
306
+ EEGPrep is in active pre-release development. It is intended to become a
307
+ standalone Python counterpart for core EEGLAB preprocessing workflows. Current
308
+ development emphasizes EEGLAB parity, GUI and console usability, BIDS support,
309
+ extension support, and reproducible headless workflows.
310
+
311
+ Use EEGPrep with the same care you would apply to any research preprocessing
312
+ software: validate pipelines on representative data, inspect intermediate
313
+ outputs, and record the exact version and command history used for analysis.
314
+
315
+ ## Numerical Parity
316
+
317
+ EEGPrep is developed against EEGLAB as a parity oracle. The MATLAB and Python
318
+ implementations are tested for close numerical agreement, including default
319
+ preprocessing pipeline comparisons that target accuracy down to `1e-5` uV where
320
+ the algorithms are deterministic. They have also been compared using the first
321
+ two subjects from the BIDS datasets
322
+ [ds003061](https://nemar.org/dataexplorer/detail?dataset_id=ds003061) and
323
+ [ds002680](https://nemar.org/dataexplorer/detail?dataset_id=ds002680) on NEMAR.
324
+ Observed differences were very small, with the largest reported HighpassFilter
325
+ difference below `0.002`, indicating strong numerical consistency for the tested
326
+ workflows.
327
+
328
+ <img width="1744" height="1049" alt="MATLAB and Python implementation comparison" src="https://github.com/user-attachments/assets/79c17151-e2e3-4acc-b144-accdf34ae4c5" />
329
+
330
+ ## Development
331
+
332
+ Run tests from the project root with:
333
+
334
+ ```bash
335
+ uv run pytest tests
336
+ ```
337
+
338
+ For quick local iteration:
339
+
340
+ ```bash
341
+ uv run pytest -m "not slow"
342
+ ```
343
+
344
+ The repo uses `ruff`, `ty`, and `pre-commit.py` for linting, formatting, and
345
+ type-checking:
346
+
347
+ ```bash
348
+ ./pre-commit.py --changed-from origin/develop
349
+ uv run --no-sync ruff check .
350
+ uv run --no-sync ruff format --check .
351
+ uv run --no-sync ty check
352
+ ```
353
+
354
+ MATLAB parity tests require MATLAB Engine for Python. Install the engine from
355
+ your MATLAB installation, for example on macOS:
356
+
357
+ ```bash
358
+ uv pip install /Applications/MATLAB_R2025a.app/extern/engines/python
359
+ ```
360
+
361
+ Check the installation:
362
+
363
+ ```python
364
+ import matlab.engine
365
+
366
+ engine = matlab.engine.start_matlab()
367
+ engine.eval("disp('hello world');", nargout=0)
368
+ ```
369
+
370
+ The MATLAB comparison entry point is `tests/matlab/main_compare.m`.
371
+
372
+ ## Cite
373
+
374
+ If EEGPrep contributes to your research, please cite EEGPrep and the EEGLAB
375
+ methods it ports. For EEGLAB, cite:
376
+
377
+ Delorme, A., & Makeig, S. (2004). EEGLAB: an open source toolbox for analysis
378
+ of single-trial EEG dynamics including independent component analysis. *Journal
379
+ of Neuroscience Methods*, 134(1), 9-21.
380
+
381
+ ## Core Maintainers
382
+
383
+ - Arnaud Delorme, UCSD, CA, USA
384
+ - Suraj Ranganath, UCSD, CA, USA
385
+ - Christian Kothe, Intheon, CA, USA
386
+ - Bruno Aristimunha Pinto, Inria, France
387
+
388
+ <details>
389
+ <summary>Maintainer release notes</summary>
390
+
391
+ ### Release Process
392
+
393
+ Releases are published by `.github/workflows/release.yml` when a `v*` tag is
394
+ pushed. That is the only path to PyPI. Full instructions, including the dry run,
395
+ are in [docs/source/releasing.rst](docs/source/releasing.rst).
396
+
397
+ The version lives in `src/eegprep/__init__.py` (`__version__`); `pyproject.toml`
398
+ reads it via `dynamic = ["version"]`, so there is nothing to edit there.
399
+
400
+ ```bash
401
+ # dry run first: everything except publishing
402
+ gh workflow run release.yml --ref master -f dry_run=true
403
+
404
+ # bump __version__, land it on master, then tag to release
405
+ git commit -am "release: 0.3.0"
406
+ git push origin develop:master
407
+ git tag -a v0.3.0 -m "Release version 0.3.0" && git push origin v0.3.0
408
+ ```
409
+
410
+ The workflow lints, type-checks, runs the test suite, builds, verifies the
411
+ artifacts, publishes to PyPI with Trusted Publishing (no stored token), and
412
+ creates the GitHub release.
413
+
414
+ CI does not build Docker images. After the tag is published:
415
+
416
+ ```bash
417
+ docker login
418
+ uv run python scripts/build_docker.py
419
+ ```
420
+
421
+ That builds and pushes `arnodelorme/eegprep:<version>` and updates the image pin
422
+ in `tools/hpc/main.pbs`; commit the pin.
423
+
424
+ Verify the published release:
425
+
426
+ ```bash
427
+ uv pip install eegprep==X.Y.Z
428
+ ```
429
+
430
+ Packaging follows the Python Packaging User Guide:
431
+ <https://packaging.python.org/en/latest/tutorials/packaging-projects/>.
432
+
433
+ </details>
434
+
435
+ <details>
436
+ <summary>Docker notes for SCCN power users</summary>
437
+
438
+ ```bash
439
+ docker build -t eegprep:0.2.9 -f DOCKERFILE .
440
+ docker tag eegprep:0.2.9 arnodelorme/eegprep:0.2.9
441
+ docker push arnodelorme/eegprep:0.2.9
442
+ ```
443
+
444
+ Check the project on Docker Hub: <https://hub.docker.com/>.
445
+
446
+ Mounted folders are available in `/usr/src/project`.
447
+
448
+ </details>