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.
- eegprep-0.3.0/MANIFEST.in +2 -0
- eegprep-0.3.0/PKG-INFO +448 -0
- eegprep-0.3.0/README.md +363 -0
- eegprep-0.3.0/pyproject.toml +223 -0
- eegprep-0.3.0/src/eegprep/__init__.py +412 -0
- eegprep-0.3.0/src/eegprep/cli/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/cli/__main__.py +5 -0
- eegprep-0.3.0/src/eegprep/cli/commands/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/cli/commands/batch.py +138 -0
- eegprep-0.3.0/src/eegprep/cli/commands/bids.py +376 -0
- eegprep-0.3.0/src/eegprep/cli/commands/migrate.py +261 -0
- eegprep-0.3.0/src/eegprep/cli/commands/pipeline.py +649 -0
- eegprep-0.3.0/src/eegprep/cli/commands/qc.py +436 -0
- eegprep-0.3.0/src/eegprep/cli/commands/report.py +104 -0
- eegprep-0.3.0/src/eegprep/cli/commands/transforms.py +845 -0
- eegprep-0.3.0/src/eegprep/cli/core.py +293 -0
- eegprep-0.3.0/src/eegprep/cli/dataset.py +225 -0
- eegprep-0.3.0/src/eegprep/cli/discovery.py +379 -0
- eegprep-0.3.0/src/eegprep/cli/main.py +254 -0
- eegprep-0.3.0/src/eegprep/cli/reporting.py +148 -0
- eegprep-0.3.0/src/eegprep/extension_catalog.py +341 -0
- eegprep-0.3.0/src/eegprep/extension_catalog_validation.py +699 -0
- eegprep-0.3.0/src/eegprep/extension_runtime.py +279 -0
- eegprep-0.3.0/src/eegprep/extension_testing.py +180 -0
- eegprep-0.3.0/src/eegprep/extensions.py +1135 -0
- eegprep-0.3.0/src/eegprep/functions/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/console.py +1462 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_checkset.py +547 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_options.py +52 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_retrieve.py +41 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeg_store.py +50 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eegh.py +83 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeglab.py +115 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/eeglabcompat.py +530 -0
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/adminfunc}/git.py +10 -15
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/adminfunc}/logs.py +29 -27
- eegprep-0.3.0/src/eegprep/functions/adminfunc/plugin_menu.py +934 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/pop_delset.py +24 -0
- eegprep-0.3.0/src/eegprep/functions/adminfunc/pop_editoptions.py +17 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/adminfunc}/pymat.py +33 -177
- eegprep-0.3.0/src/eegprep/functions/adminfunc/storage.py +381 -0
- eegprep-0.3.0/src/eegprep/functions/eegobj/__init__.py +5 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/eegobj}/eegobj.py +80 -54
- eegprep-0.3.0/src/eegprep/functions/guifunc/__init__.py +30 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/coregister.py +449 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/eegbrowser.py +1462 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/eeglab_menu.py +389 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/inputgui.py +21 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/listdlg2.py +199 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/long_task.py +166 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/main_window.py +888 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/menu_actions.py +1866 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/menu_placeholders.py +47 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/menu_spec.py +113 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/pophelp.py +167 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/qt.py +1469 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/select_multiple_datasets.py +62 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/session.py +486 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/spec.py +63 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/tf_cycle_calc_dialog.py +70 -0
- eegprep-0.3.0/src/eegprep/functions/guifunc/theme.py +90 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_eeg2mne.py +30 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_mne2eeg.py +69 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_mne2eeg_epochs.py +198 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/eeg_ms2f.py +40 -0
- eegprep-0.3.0/src/eegprep/functions/miscfunc/event_utils.py +59 -0
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/functions/miscfunc}/misc.py +154 -77
- eegprep-0.3.0/src/eegprep/functions/miscfunc/numdim.py +34 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/miscfunc}/pinv.py +19 -17
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/miscfunc}/save_struct_as_hdf5.py +28 -24
- eegprep-0.3.0/src/eegprep/functions/miscfunc/value_parsing.py +138 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_chanutils.py +51 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_coming_soon.py +12 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_eegplot_rejection.py +527 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_event_utils.py +113 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_file_io.py +343 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_ica_utils.py +61 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_pop_utils.py +115 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_property_browser.py +70 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/_rejection.py +451 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_amica.py +143 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_compare.py +367 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_decodechan.py +22 -10
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_eegrej.py +148 -110
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_emptyset.py +54 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_findboundaries.py +25 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_getica.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_interp.py +518 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_lat2point.py +15 -8
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_multieegplot.py +180 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_picard.py +80 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/eeg_point2lat.py +16 -10
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_pv.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_pvaf.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_rejsuperpose.py +140 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/eeg_runica.py +56 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/plot_utils.py +357 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_adjustevents.py +338 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_autorej.py +218 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_averef.py +24 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_biosig.py +27 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chancenter.py +88 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chancoresp.py +150 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chanedit.py +450 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chanevent.py +169 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_chansel.py +163 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_comments.py +131 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_compareerps.py +57 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_comperp.py +463 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_copyset.py +78 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_crossf.py +42 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editeventfield.py +359 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editeventvals.py +324 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_editset.py +608 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegfilt.py +156 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegplot.py +318 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eegthresh.py +232 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_envtopo.py +162 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_epoch.py +648 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_erpimage.py +521 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_eventstat.py +166 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_expevents.py +23 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_expica.py +28 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_export.py +248 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fileio.py +74 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fileio_brainvision_mat.py +34 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_findmatchingcomps.py +108 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_fusechanrej.py +54 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_headplot.py +702 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_icathresh.py +115 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importdata.py +84 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importepoch.py +60 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importerplab.py +37 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importevent.py +128 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_importpres.py +37 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_interp.py +365 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_jointprob.py +209 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_load_frombids.py +724 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_loadbci.py +85 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_loadset.py +196 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/popfunc}/pop_loadset_h5.py +82 -51
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_mergeset.py +237 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newcrossf.py +197 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newset.py +285 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_newtimef.py +291 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_plotdata.py +96 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_plottopo.py +114 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_prop.py +183 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_readlocs.py +34 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejchan.py +155 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejchanspec.py +135 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejcont.py +343 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejepoch.py +46 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejkurt.py +211 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejmenu.py +293 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejspec.py +240 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rejtrend.py +212 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_reref.py +850 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_resample.py +474 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rmbase.py +454 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_rmdat.py +182 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_runica.py +597 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_runscript.py +27 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_saveh.py +26 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_saveset.py +530 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_select.py +778 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_selectcomps.py +111 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_selectevent.py +385 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_signalstat.py +113 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_snapread.py +44 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_spectopo.py +298 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_subcomp.py +295 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_timef.py +40 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_timtopo.py +116 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_topochansel.py +43 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_topoplot.py +455 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_writeeeg.py +22 -0
- eegprep-0.3.0/src/eegprep/functions/popfunc/pop_writelocs.py +36 -0
- eegprep-0.3.0/src/eegprep/functions/redefine_functions.py +135 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/cart2topo.py +58 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/chancenter.py +49 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/compvar.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/convertlocs.py +212 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/coregister.py +532 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/eegplot.py +995 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/sigprocfunc}/eegrej.py +55 -43
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/eegthresh.py +54 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/entropy_rej.py +68 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/envtopo.py +117 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/functions/sigprocfunc}/epoch.py +27 -21
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/erpimage.py +112 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/floatread.py +71 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/floatwrite.py +31 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/headplot.py +729 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/ica_helpers.py +308 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icaact.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icaproj.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/icavar.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/jointprob.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/kurt.py +25 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/plottopo.py +153 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/readegilocs.py +49 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/readlocs.py +414 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/realproba.py +44 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rejkurt.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rejtrend.py +50 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/reref.py +175 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/rmbase.py +98 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/runamica.py +867 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/runica.py +1373 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/signalstat.py +187 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/snapread.py +73 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/spectopo.py +509 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/spher.py +34 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/timtopo.py +228 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/topoplot.py +437 -0
- eegprep-0.3.0/src/eegprep/functions/sigprocfunc/writelocs.py +88 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/__init__.py +73 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/_core.py +45 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/_shared.py +224 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/anova1_cell.py +41 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/anova1rm_cell.py +45 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/anova2_cell.py +53 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/anova2rm_cell.py +81 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/concatdata.py +49 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/corrcoef_cell.py +30 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/fdr.py +76 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/stat_surrogate_ci.py +54 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/stat_surrogate_pvals.py +45 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/statcond.py +262 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/surrogdistrib.py +133 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/teststat.py +53 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/ttest2_cell.py +57 -0
- eegprep-0.3.0/src/eegprep/functions/statistics/ttest_cell.py +30 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_cluster_kmeans.py +62 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_cluster_utils.py +286 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_limo_limitations.py +20 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_source_limitations.py +20 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_std_measureplot.py +260 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/_study_utils.py +562 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/optimal_kmeans.py +80 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_addindepvar.py +99 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_chanplot.py +416 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_clust.py +168 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_clustedit.py +319 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_importgroupvar.py +110 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_limo.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_limoresults.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_listfactors.py +118 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_loadstudy.py +91 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_preclust.py +322 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_precomp.py +221 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_savestudy.py +118 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_study.py +348 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studydesign.py +225 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studyerp.py +19 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/pop_studywizard.py +22 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/robust_kmeans.py +94 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_addvarlevel.py +84 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_apcluster.py +99 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_builddesignmat.py +112 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_centroid.py +26 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkconsist.py +46 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkdatasession.py +40 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkdesign.py +27 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkfiles.py +55 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_checkset.py +38 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_clustplot.py +54 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_combtrialinfo.py +76 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_createclust.py +97 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_dipoleclusters.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_dipplot.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_editset.py +168 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_erpplot.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_erspplot.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findgroupvars.py +67 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findoutlierclust.py +36 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_findsameica.py +81 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_getindvar.py +148 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_gettrialsind.py +100 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_indvarmatch.py +72 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_interp.py +108 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_itcplot.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limo.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limodesign.py +203 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_limoresults.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_makedesign.py +224 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_maketrialinfo.py +92 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_mergeclust.py +86 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_movecomp.py +110 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_moveoutlier.py +99 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_pac.py +512 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_pacplot.py +116 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_preclust.py +320 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_precomp.py +714 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_prepare_neighbors.py +172 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readdata.py +437 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readfilelimo.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_readpac.py +5 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rebuilddesign.py +50 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rejectoutliers.py +68 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_renameclust.py +80 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rmalldatafields.py +38 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_rmdat.py +254 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_savedat.py +43 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_saveindvar.py +21 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selectdataset.py +109 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selectdesign.py +22 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_selsubject.py +60 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_specplot.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_substudy.py +167 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_uniformfiles.py +24 -0
- eegprep-0.3.0/src/eegprep/functions/studyfunc/std_uniformsetinds.py +37 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/__init__.py +62 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/_bootstrap.py +125 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/_pac_support.py +624 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/angtimewarp.py +63 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/bootstat.py +98 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/correct_mc.py +80 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/correctfit.py +45 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/crossf.py +23 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt.py +37 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt2.py +67 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/dftfilt3.py +109 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newcrossf.py +381 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimef.py +615 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefbaseln.py +141 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefitc.py +36 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimefpowerunit.py +30 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/newtimeftrialbaseln.py +70 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/pac.py +20 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/pac_cont.py +15 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsadjust.py +38 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsfit.py +98 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rsget.py +25 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rspdfsolv.py +57 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/rspfunc.py +17 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/tf_cycle_calc.py +161 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timef.py +22 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timefreq.py +489 -0
- eegprep-0.3.0/src/eegprep/functions/timefreqfunc/timewarp.py +82 -0
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/__init__.py +1 -0
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids.py +78 -49
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids_list_eeg_files.py +39 -32
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/bids_preproc.py +574 -346
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/bids_tools.py +68 -0
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS}/coords.py +59 -42
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/menu.py +76 -0
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/montage.py +211 -0
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/pop_exportbids.py +66 -0
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/pop_importbids.py +32 -0
- eegprep-0.3.0/src/eegprep/plugins/EEG_BIDS/raw.py +349 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/ICL_feature_extractor.py +30 -19
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/_prop_browser.py +778 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/_prop_numerics.py +474 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_autocorr.py +58 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/eeg_autocorr_fftw.py +30 -37
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_autocorr_welch.py +84 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_icalabelstat.py +150 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/eeg_icflag.py +63 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/eeg_rpsd.py +33 -26
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/iclabel.py +53 -34
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/iclabel_net.py +173 -43
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/menu.py +39 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_icflag.py +168 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_iclabel.py +79 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_prop_extended.py +189 -0
- eegprep-0.3.0/src/eegprep/plugins/ICLabel/pop_viewprops.py +207 -0
- eegprep-0.3.0/src/eegprep/plugins/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/__init__.py +36 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/asr_calibrate.py +303 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/asr_process.py +272 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/clean_artifacts.py +314 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_asr.py +79 -36
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_channels.py +57 -69
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_channels_nolocs.py +26 -51
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_drifts.py +16 -16
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_flatlines.py +11 -17
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata}/clean_windows.py +35 -54
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/menu.py +15 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/pop_clean_rawdata.py +283 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/__init__.py +1 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/channel_removal.py +42 -0
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private}/covariance.py +25 -22
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/masks.py +15 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/ransac.py +152 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/sigproc.py +165 -0
- eegprep-0.2.22/src/eegprep/utils/spatial.py → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/sphericalSplineInterpolate.py +35 -31
- {eegprep-0.2.22/src/eegprep/utils → eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private}/stats.py +52 -46
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/private/yulewalk.py +149 -0
- eegprep-0.3.0/src/eegprep/plugins/clean_rawdata/vis_artifacts.py +146 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/__init__.py +10 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/_coordinates.py +533 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/_fieldtrip_workflows.py +730 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/_fitting.py +529 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/_mri.py +133 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/_utils.py +219 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_gridsearch.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_nonlinear.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/dipfit_reject.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/electroderealign.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/headcoordinates.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/load_afni_atlas.py +94 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/menu.py +57 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/mni2tal.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_batch.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_gridsearch.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_headmodel.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_loreta.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_manual.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_nonlinear.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipfit_settings.py +232 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_dipplot.py +322 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_leadfield.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/pop_multifit.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/dipfit/sph2spm.py +8 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/__init__.py +44 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/_filtering.py +479 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/_pop_common.py +172 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/design.py +107 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/findboundaries.py +27 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/fir_filterdcpadded.py +60 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/firfiltreport.py +82 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/firfiltsplit.py +70 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/firgauss.py +18 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/firws.py +142 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/firwsord.py +62 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/invfirwsord.py +36 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/invkaiserbeta.py +26 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/kaiserbeta.py +18 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/menu.py +15 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/minphaserceps.py +24 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/plotfresp.py +111 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_eegfiltnew.py +191 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firma.py +93 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firpm.py +173 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firpmord.py +86 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firws.py +244 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_firwsord.py +84 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_kaiserbeta.py +53 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/pop_xfirws.py +206 -0
- eegprep-0.3.0/src/eegprep/plugins/firfilt/windows.py +74 -0
- eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/README.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/standard_mri_license.txt +9 -0
- eegprep-0.3.0/src/eegprep/resources/dipfit/standard_BEM/standard_mri_mni.npz +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/eeg_options_64bit.m +1 -1
- eegprep-0.3.0/src/eegprep/resources/extension_catalog.json +5 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/Standard-10-5-Cap385.sfp +348 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh.mat +0 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh.xyz +3 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/colin27headmesh_license.txt +1 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.mat +0 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.transform +4 -0
- eegprep-0.3.0/src/eegprep/resources/headplot/mheadnew.xyz +75 -0
- eegprep-0.3.0/src/eegprep/resources/help/clean_artifacts.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/coregister.md +23 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpadmin.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpgui.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helphelp.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpmenu.md +25 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpmisc.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helppop.md +21 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpsigproc.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpstatistics.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helpstudy.md +40 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_helptimefreq.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_icalabelstat.md +31 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_multieegplot.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/eeg_rejsuperpose.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/eegplot.md +42 -0
- eegprep-0.3.0/src/eegprep/resources/help/eegprep.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pac.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pac_cont.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/plugin_menu.md +38 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_addindepvar.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_adjustevents.md +22 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_autorej.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_averef.md +9 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_biosig.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chancenter.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chancoresp.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chanedit.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chanevent.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chanplot.md +29 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_chansel.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_clean_rawdata.md +61 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_clust.md +21 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_clustedit.md +26 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_comments.md +24 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_compareerps.md +8 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_comperp.md +31 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_copyset.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_crossf.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_delset.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_batch.md +5 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_gridsearch.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_headmodel.md +5 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_loreta.md +5 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_manual.md +5 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_nonlinear.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipfit_settings.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_dipplot.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_editeventfield.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_editeventvals.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_editoptions.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_editset.md +43 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eegfilt.md +24 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eegfiltnew.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eegplot.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eegthresh.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_envtopo.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_epoch.md +39 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_erpimage.md +39 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eventinfo.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_eventstat.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_expevents.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_expica.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_export.md +32 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_exportbids.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_brainvision.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_brainvision_mat.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_cnt.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_eeg.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fileio_mff.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_findmatchingcomps.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_firma.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_firpm.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_firpmord.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_firws.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_firwsord.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_fusechanrej.md +9 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_headplot.md +44 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_icathresh.md +9 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_icflag.md +32 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_iclabel.md +38 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importbids.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importdata.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importepoch.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importerplab.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importevent.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importgroupvar.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_importpres.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_interp.md +36 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_jointprob.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_kaiserbeta.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_leadfield.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_limo.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_limoresults.md +9 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_listfactors.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_load_frombids.md +24 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_loadbci.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_loadset.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_loadset_h5.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_loadstudy.md +25 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_mergeset.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_multifit.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_newcrossf.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_newset.md +23 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_newtimef.md +28 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_participantinfo.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_plotdata.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_plottopo.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_preclust.md +20 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_precomp.md +29 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_prop.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_prop_extended.md +40 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_readlocs.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejchan.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejchanspec.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejcont.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejepoch.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejkurt.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejmenu.md +13 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejspec.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rejtrend.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_reref.md +42 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_resample.md +39 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rmbase.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_rmdat.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_runica.md +66 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_runscript.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_saveh.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_saveset.md +24 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_savestudy.md +25 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_select.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_selectcomps.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_selectevent.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_signalstat.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_snapread.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_spectopo.md +30 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_study.md +28 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_studydesign.md +22 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_studyerp.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_studywizard.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_subcomp.md +28 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_taskinfo.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_timef.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_timtopo.md +12 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_topochansel.md +9 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_topoplot.md +25 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_viewprops.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_writeeeg.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_writelocs.md +16 -0
- eegprep-0.3.0/src/eegprep/resources/help/pop_xfirws.md +18 -0
- eegprep-0.3.0/src/eegprep/resources/help/reref.md +30 -0
- eegprep-0.3.0/src/eegprep/resources/help/select_multiple_datasets.md +7 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_interp.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_limodesign.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_pac.md +15 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_pacplot.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_prepare_neighbors.md +10 -0
- eegprep-0.3.0/src/eegprep/resources/help/std_readpac.md +11 -0
- eegprep-0.3.0/src/eegprep/resources/help/tf_cycle_calc.md +17 -0
- eegprep-0.3.0/src/eegprep/resources/help/troubleshooting_data_formats.md +19 -0
- eegprep-0.3.0/src/eegprep/resources/help/vis_artifacts.md +14 -0
- eegprep-0.3.0/src/eegprep/resources/skills/eegprep-cli.md +97 -0
- eegprep-0.3.0/src/eegprep/utils/__init__.py +1 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/utils/testing.py +99 -27
- eegprep-0.3.0/src/eegprep.egg-info/PKG-INFO +448 -0
- eegprep-0.3.0/src/eegprep.egg-info/SOURCES.txt +787 -0
- eegprep-0.3.0/src/eegprep.egg-info/entry_points.txt +5 -0
- eegprep-0.3.0/src/eegprep.egg-info/requires.txt +45 -0
- eegprep-0.3.0/tests/test_ICL_feature_extractor.py +690 -0
- eegprep-0.3.0/tests/test_ICL_feature_extractor_parity.py +242 -0
- eegprep-0.3.0/tests/test_bids_gen_derived_fpath.py +52 -0
- eegprep-0.3.0/tests/test_bids_load_frombids_helpers.py +91 -0
- eegprep-0.3.0/tests/test_bids_preproc.py +254 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_bids_preproc_old.py +15 -14
- eegprep-0.3.0/tests/test_cart2topo.py +39 -0
- eegprep-0.3.0/tests/test_clean_artifacts.py +993 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_asr.py +132 -34
- eegprep-0.3.0/tests/test_clean_drifts.py +256 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_flatlines.py +106 -109
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_rawdata.py +93 -71
- eegprep-0.3.0/tests/test_clean_rawdata_channel_removal.py +34 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_clean_windows.py +207 -173
- eegprep-0.3.0/tests/test_cli_bids_migrate_commands.py +296 -0
- eegprep-0.3.0/tests/test_cli_main.py +282 -0
- eegprep-0.3.0/tests/test_cli_pipeline_qc_report.py +317 -0
- eegprep-0.3.0/tests/test_cli_transforms.py +301 -0
- eegprep-0.3.0/tests/test_console_workspace.py +1806 -0
- eegprep-0.3.0/tests/test_dipfit_workflows.py +473 -0
- eegprep-0.3.0/tests/test_eeg_amica.py +432 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr.py +157 -95
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr_fftw.py +96 -86
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_autocorr_welch.py +141 -79
- eegprep-0.3.0/tests/test_eeg_checkset.py +652 -0
- eegprep-0.3.0/tests/test_eeg_checkset_eventconsistency.py +172 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_compare.py +188 -209
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_decodechan.py +2 -1
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_eeg2mne.py +114 -127
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_eegrej.py +188 -128
- eegprep-0.3.0/tests/test_eeg_emptyset.py +13 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_interp.py +293 -309
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_lat2point.py +4 -4
- eegprep-0.3.0/tests/test_eeg_mne2eeg.py +577 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_mne2eeg_epochs.py +196 -159
- eegprep-0.3.0/tests/test_eeg_ms2f.py +53 -0
- eegprep-0.3.0/tests/test_eeg_picard.py +453 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eeg_point2lat.py +53 -50
- eegprep-0.3.0/tests/test_eeg_retrieve.py +59 -0
- eegprep-0.3.0/tests/test_eeg_rpsd_parity.py +232 -0
- eegprep-0.3.0/tests/test_eeg_runica.py +191 -0
- eegprep-0.3.0/tests/test_eeg_store.py +94 -0
- eegprep-0.3.0/tests/test_eeg_store_storedisk.py +132 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegfindboundaries.py +82 -93
- eegprep-0.3.0/tests/test_eegh.py +50 -0
- eegprep-0.3.0/tests/test_eeglab.py +85 -0
- eegprep-0.3.0/tests/test_eeglab_final_parity_matrix.py +197 -0
- eegprep-0.3.0/tests/test_eeglab_parity_matrix.py +172 -0
- eegprep-0.3.0/tests/test_eeglabcompat.py +368 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegobj.py +79 -77
- eegprep-0.3.0/tests/test_eegplot.py +586 -0
- eegprep-0.3.0/tests/test_eegplot_gui.py +589 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_eegrej.py +12 -5
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_epoch.py +52 -34
- eegprep-0.3.0/tests/test_extension_authoring_toolkit.py +208 -0
- eegprep-0.3.0/tests/test_extension_catalog.py +467 -0
- eegprep-0.3.0/tests/test_extension_docs.py +85 -0
- eegprep-0.3.0/tests/test_extension_integration.py +556 -0
- eegprep-0.3.0/tests/test_extension_runtime.py +760 -0
- eegprep-0.3.0/tests/test_extension_testing.py +195 -0
- eegprep-0.3.0/tests/test_extensions.py +703 -0
- eegprep-0.3.0/tests/test_file_menu_pop_functions.py +371 -0
- eegprep-0.3.0/tests/test_firfilt_helpers.py +218 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_fixtures.py +108 -66
- eegprep-0.3.0/tests/test_gui_long_task.py +157 -0
- eegprep-0.3.0/tests/test_gui_main_window.py +1829 -0
- eegprep-0.3.0/tests/test_gui_pop_adjustevents.py +71 -0
- eegprep-0.3.0/tests/test_gui_pop_clean_rawdata.py +239 -0
- eegprep-0.3.0/tests/test_gui_pop_comments.py +45 -0
- eegprep-0.3.0/tests/test_gui_pop_editset.py +82 -0
- eegprep-0.3.0/tests/test_gui_pop_firfilt.py +274 -0
- eegprep-0.3.0/tests/test_gui_pop_icflag.py +111 -0
- eegprep-0.3.0/tests/test_gui_pop_iclabel.py +80 -0
- eegprep-0.3.0/tests/test_gui_pop_prop_extended.py +277 -0
- eegprep-0.3.0/tests/test_gui_pop_reref.py +194 -0
- eegprep-0.3.0/tests/test_gui_pop_resample.py +77 -0
- eegprep-0.3.0/tests/test_gui_pop_runica.py +453 -0
- eegprep-0.3.0/tests/test_gui_pop_select.py +236 -0
- eegprep-0.3.0/tests/test_gui_pop_study.py +139 -0
- eegprep-0.3.0/tests/test_gui_pop_subcomp.py +176 -0
- eegprep-0.3.0/tests/test_gui_rejection_dialogs.py +356 -0
- eegprep-0.3.0/tests/test_guifunc_pophelp_chansel.py +150 -0
- eegprep-0.3.0/tests/test_iclabel.py +71 -0
- eegprep-0.3.0/tests/test_iclabel_features.py +179 -0
- eegprep-0.3.0/tests/test_iclabel_statistics.py +126 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_import_edf.py +4 -9
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_logs.py +13 -17
- eegprep-0.3.0/tests/test_matlab_path.py +79 -0
- eegprep-0.3.0/tests/test_menu_placeholder_inventory.py +76 -0
- eegprep-0.3.0/tests/test_numdim.py +69 -0
- eegprep-0.3.0/tests/test_pac_time_frequency_helpers.py +251 -0
- eegprep-0.3.0/tests/test_package_exports.py +135 -0
- eegprep-0.3.0/tests/test_parity_rng.py +335 -0
- eegprep-0.3.0/tests/test_phase1b_file_edit_pop_functions.py +588 -0
- eegprep-0.3.0/tests/test_phase2_file_channel_location.py +280 -0
- eegprep-0.3.0/tests/test_phase4_plot_wrappers.py +1792 -0
- eegprep-0.3.0/tests/test_phase4_timefreq_statistics.py +1078 -0
- eegprep-0.3.0/tests/test_phase7_long_tail_helpers.py +241 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pinv.py +77 -77
- eegprep-0.3.0/tests/test_pipeline.py +316 -0
- eegprep-0.3.0/tests/test_plugin_menu.py +603 -0
- eegprep-0.3.0/tests/test_pop_adjustevents.py +165 -0
- eegprep-0.3.0/tests/test_pop_comments.py +108 -0
- eegprep-0.3.0/tests/test_pop_delset.py +21 -0
- eegprep-0.3.0/tests/test_pop_editeventvals.py +146 -0
- eegprep-0.3.0/tests/test_pop_editset.py +413 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_epoch.py +593 -159
- eegprep-0.3.0/tests/test_pop_firfilt.py +385 -0
- eegprep-0.3.0/tests/test_pop_interp.py +395 -0
- eegprep-0.3.0/tests/test_pop_loadset.py +94 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_loadset_h5.py +140 -129
- eegprep-0.3.0/tests/test_pop_newset.py +253 -0
- eegprep-0.3.0/tests/test_pop_prop_extended.py +201 -0
- eegprep-0.3.0/tests/test_pop_reref.py +1022 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_resample.py +32 -19
- eegprep-0.3.0/tests/test_pop_resample_python.py +95 -0
- eegprep-0.3.0/tests/test_pop_rmbase.py +307 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_saveset.py +111 -21
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pop_select.py +160 -106
- eegprep-0.3.0/tests/test_pop_topoplot.py +322 -0
- eegprep-0.3.0/tests/test_pop_utils.py +90 -0
- eegprep-0.3.0/tests/test_processing_logging_contract.py +70 -0
- eegprep-0.3.0/tests/test_public_api_examples.py +114 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_pymat.py +202 -247
- eegprep-0.3.0/tests/test_rejection_workflows.py +791 -0
- eegprep-0.3.0/tests/test_runamica.py +385 -0
- eegprep-0.3.0/tests/test_runica.py +727 -0
- eegprep-0.3.0/tests/test_runtime_eeglab_independence.py +34 -0
- eegprep-0.3.0/tests/test_sample_data_pop_functions.py +745 -0
- eegprep-0.3.0/tests/test_session_contracts.py +164 -0
- eegprep-0.3.0/tests/test_sigproc_eegrej.py +56 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_spatial.py +57 -81
- eegprep-0.3.0/tests/test_spectopo_parity.py +91 -0
- eegprep-0.3.0/tests/test_spher.py +44 -0
- eegprep-0.3.0/tests/test_statistics_package.py +436 -0
- eegprep-0.3.0/tests/test_storage.py +134 -0
- eegprep-0.3.0/tests/test_study_clustering.py +571 -0
- eegprep-0.3.0/tests/test_study_end_to_end.py +284 -0
- eegprep-0.3.0/tests/test_study_long_tail_helpers.py +239 -0
- eegprep-0.3.0/tests/test_study_measures.py +566 -0
- eegprep-0.3.0/tests/test_study_metadata.py +368 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_topoplot.py +308 -226
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_asr.py +520 -236
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_covariance.py +117 -126
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_ransac.py +195 -179
- {eegprep-0.2.22 → eegprep-0.3.0}/tests/test_utils_testing.py +51 -39
- eegprep-0.3.0/tests/test_visual_parity.py +725 -0
- eegprep-0.2.22/PKG-INFO +0 -208
- eegprep-0.2.22/README.md +0 -142
- eegprep-0.2.22/pyproject.toml +0 -75
- eegprep-0.2.22/src/eegprep/__init__.py +0 -44
- eegprep-0.2.22/src/eegprep/clean_artifacts.py +0 -310
- eegprep-0.2.22/src/eegprep/eeg_autocorr.py +0 -61
- eegprep-0.2.22/src/eegprep/eeg_autocorr_welch.py +0 -61
- eegprep-0.2.22/src/eegprep/eeg_checkset.py +0 -227
- eegprep-0.2.22/src/eegprep/eeg_compare.py +0 -241
- eegprep-0.2.22/src/eegprep/eeg_eeg2mne.py +0 -39
- eegprep-0.2.22/src/eegprep/eeg_findboundaries.py +0 -57
- eegprep-0.2.22/src/eegprep/eeg_interp.py +0 -479
- eegprep-0.2.22/src/eegprep/eeg_mne2eeg.py +0 -77
- eegprep-0.2.22/src/eegprep/eeg_mne2eeg_epochs.py +0 -187
- eegprep-0.2.22/src/eegprep/eeg_options.py +0 -48
- eegprep-0.2.22/src/eegprep/eeg_picard.py +0 -109
- eegprep-0.2.22/src/eegprep/eeglabcompat.py +0 -365
- eegprep-0.2.22/src/eegprep/iclabel_net_load_py_measures.py +0 -137
- eegprep-0.2.22/src/eegprep/pop_epoch.py +0 -279
- eegprep-0.2.22/src/eegprep/pop_load_frombids.py +0 -1010
- eegprep-0.2.22/src/eegprep/pop_loadset.py +0 -115
- eegprep-0.2.22/src/eegprep/pop_reref.py +0 -54
- eegprep-0.2.22/src/eegprep/pop_reref_helper.py +0 -22
- eegprep-0.2.22/src/eegprep/pop_resample.py +0 -322
- eegprep-0.2.22/src/eegprep/pop_rmbase.py +0 -241
- eegprep-0.2.22/src/eegprep/pop_saveset.py +0 -257
- eegprep-0.2.22/src/eegprep/pop_select.py +0 -508
- eegprep-0.2.22/src/eegprep/redefine_functions.py +0 -93
- eegprep-0.2.22/src/eegprep/topoplot.py +0 -194
- eegprep-0.2.22/src/eegprep/utils/__init__.py +0 -2
- eegprep-0.2.22/src/eegprep/utils/asr.py +0 -568
- eegprep-0.2.22/src/eegprep/utils/ransac.py +0 -76
- eegprep-0.2.22/src/eegprep/utils/sigproc.py +0 -394
- eegprep-0.2.22/src/eegprep.egg-info/PKG-INFO +0 -208
- eegprep-0.2.22/src/eegprep.egg-info/SOURCES.txt +0 -128
- eegprep-0.2.22/src/eegprep.egg-info/requires.txt +0 -24
- eegprep-0.2.22/tests/test_ICL_feature_extractor.py +0 -530
- eegprep-0.2.22/tests/test_bids_preproc.py +0 -157
- eegprep-0.2.22/tests/test_clean_artifacts.py +0 -868
- eegprep-0.2.22/tests/test_clean_drifts.py +0 -366
- eegprep-0.2.22/tests/test_eeg_mne2eeg.py +0 -610
- eegprep-0.2.22/tests/test_eeg_picard.py +0 -422
- eegprep-0.2.22/tests/test_eeglabcompat.py +0 -452
- eegprep-0.2.22/tests/test_iclabel.py +0 -26
- eegprep-0.2.22/tests/test_pipeline.py +0 -55
- eegprep-0.2.22/tests/test_pop_reref.py +0 -315
- eegprep-0.2.22/tests/test_pop_rmbase.py +0 -144
- {eegprep-0.2.22 → eegprep-0.3.0}/LICENSE +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/setup.cfg +0 -0
- {eegprep-0.2.22/src/eegprep → eegprep-0.3.0/src/eegprep/plugins/ICLabel}/netICL.mat +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/README.md +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-128.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-128v1.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-128v2.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/biosemi-sccn-256v1.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/egi-gsn-hydrocell-129.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/egi-gsn-hydrocell-257.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep/resources/montages/standard-10-5-342ch.locs +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep.egg-info/dependency_links.txt +0 -0
- {eegprep-0.2.22 → eegprep-0.3.0}/src/eegprep.egg-info/top_level.txt +0 -0
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
|
+
[](https://github.com/sccn/eegprep/actions/workflows/test.yml)
|
|
93
|
+
[](https://github.com/sccn/eegprep/actions/workflows/docs.yml)
|
|
94
|
+
[](https://www.python.org/)
|
|
95
|
+
[](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>
|