pEEGy 1.6.4__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 (231) hide show
  1. peegy-1.6.4/.gitattributes +0 -0
  2. peegy-1.6.4/.gitignore +6 -0
  3. peegy-1.6.4/.gitlab-ci.yml +119 -0
  4. peegy-1.6.4/CODE_OF_CONDUCT.md +132 -0
  5. peegy-1.6.4/CONTRIBUTING.md +57 -0
  6. peegy-1.6.4/LICENSE.txt +15 -0
  7. peegy-1.6.4/MANIFEST.in +1 -0
  8. peegy-1.6.4/PKG-INFO +58 -0
  9. peegy-1.6.4/Readme.md +67 -0
  10. peegy-1.6.4/__init__.py +0 -0
  11. peegy-1.6.4/examples/README.txt +4 -0
  12. peegy-1.6.4/examples/__init__.py +0 -0
  13. peegy-1.6.4/examples/example_abr_peak_detection.py +227 -0
  14. peegy-1.6.4/examples/example_acc_average_per_epochs.py +152 -0
  15. peegy-1.6.4/examples/example_acc_eog_removal_template_.py +385 -0
  16. peegy-1.6.4/examples/example_acc_peak_detection.py +289 -0
  17. peegy-1.6.4/examples/example_acc_peak_detection_bootstrap.py +220 -0
  18. peegy-1.6.4/examples/example_acc_peak_detection_filters.py +263 -0
  19. peegy-1.6.4/examples/example_acc_video.py +283 -0
  20. peegy-1.6.4/examples/example_acc_weighted_average.py +277 -0
  21. peegy-1.6.4/examples/example_acc_weighted_vs_standard_average.py +246 -0
  22. peegy-1.6.4/examples/example_assr_dss_frequency_domain_bias_test.py +355 -0
  23. peegy-1.6.4/examples/example_assr_dss_time_domain_bias_test.py +270 -0
  24. peegy-1.6.4/examples/example_assr_f_test.py +213 -0
  25. peegy-1.6.4/examples/example_assr_ht2_test.py +246 -0
  26. peegy-1.6.4/examples/example_assr_ht2_test_weighted_average.py +258 -0
  27. peegy-1.6.4/examples/example_assr_ht2_test_wrong_bias_frequnecy.py +192 -0
  28. peegy-1.6.4/examples/example_assr_no_layout.py +157 -0
  29. peegy-1.6.4/examples/example_assr_phase_locking_value_test.py +157 -0
  30. peegy-1.6.4/examples/example_ffr_artifact_removal.py +258 -0
  31. peegy-1.6.4/examples/example_using_own_data_trials.py +177 -0
  32. peegy-1.6.4/examples/example_using_own_raw_data.py +175 -0
  33. peegy-1.6.4/examples/non_example_reading_itd_fr_pipeline.pyy +132 -0
  34. peegy-1.6.4/peegy/__init__.py +0 -0
  35. peegy-1.6.4/peegy/definitions/__init__.py +0 -0
  36. peegy-1.6.4/peegy/definitions/channel_definitions.py +44 -0
  37. peegy-1.6.4/peegy/definitions/default_paths.py +4 -0
  38. peegy-1.6.4/peegy/definitions/edf_bdf_reader.py +622 -0
  39. peegy-1.6.4/peegy/definitions/eegReaderAbstractClasses.py +1117 -0
  40. peegy-1.6.4/peegy/definitions/eeg_definitions.py +216 -0
  41. peegy-1.6.4/peegy/definitions/events.py +372 -0
  42. peegy-1.6.4/peegy/definitions/tables.py +40 -0
  43. peegy-1.6.4/peegy/directories/__init__.py +0 -0
  44. peegy-1.6.4/peegy/directories/tools.py +98 -0
  45. peegy-1.6.4/peegy/io/__init__.py +0 -0
  46. peegy-1.6.4/peegy/io/data_repositories/dropbox/tools.py +115 -0
  47. peegy-1.6.4/peegy/io/eeg/__init__.py +0 -0
  48. peegy-1.6.4/peegy/io/eeg/reader.py +212 -0
  49. peegy-1.6.4/peegy/io/exporters/__init__.py +0 -0
  50. peegy-1.6.4/peegy/io/exporters/bids_tools.py +597 -0
  51. peegy-1.6.4/peegy/io/exporters/edf_bdf_writer.py +394 -0
  52. peegy-1.6.4/peegy/io/exporters/wav_writer.py +36 -0
  53. peegy-1.6.4/peegy/io/external_tools/__init__.py +0 -0
  54. peegy-1.6.4/peegy/io/external_tools/aep_gui/__init__.py +0 -0
  55. peegy-1.6.4/peegy/io/external_tools/aep_gui/aep_matlab_tools.py +126 -0
  56. peegy-1.6.4/peegy/io/external_tools/aep_gui/dataReadingTools.py +207 -0
  57. peegy-1.6.4/peegy/io/external_tools/aep_gui/extsys_tools.py +171 -0
  58. peegy-1.6.4/peegy/io/external_tools/aep_gui/medel_stimuli_reader.py +112 -0
  59. peegy-1.6.4/peegy/io/external_tools/file_tools.py +502 -0
  60. peegy-1.6.4/peegy/io/paths/defaults.py +2 -0
  61. peegy-1.6.4/peegy/io/readers/__init__.py +0 -0
  62. peegy-1.6.4/peegy/io/readers/cnt_reader.py +419 -0
  63. peegy-1.6.4/peegy/io/readers/eclipse_tools.py +47 -0
  64. peegy-1.6.4/peegy/io/readers/edf_bdf_reader.py +403 -0
  65. peegy-1.6.4/peegy/io/readers/generic_csv_reader.py +114 -0
  66. peegy-1.6.4/peegy/io/readers/synergy_reader.py +137 -0
  67. peegy-1.6.4/peegy/io/storage/__init__.py +0 -0
  68. peegy-1.6.4/peegy/io/storage/data_storage_reading_tools.py +777 -0
  69. peegy-1.6.4/peegy/io/storage/data_storage_tools.py +355 -0
  70. peegy-1.6.4/peegy/io/storage/plot_tools.py +1985 -0
  71. peegy-1.6.4/peegy/io/tools/__init__.py +0 -0
  72. peegy-1.6.4/peegy/io/tools/xml_tools.py +49 -0
  73. peegy-1.6.4/peegy/layouts/KIT-160.lay +162 -0
  74. peegy-1.6.4/peegy/layouts/__init__.py +0 -0
  75. peegy-1.6.4/peegy/layouts/biosemi128.lay +128 -0
  76. peegy-1.6.4/peegy/layouts/biosemi16.lay +16 -0
  77. peegy-1.6.4/peegy/layouts/biosemi160.lay +160 -0
  78. peegy-1.6.4/peegy/layouts/biosemi256.lay +256 -0
  79. peegy-1.6.4/peegy/layouts/biosemi32.lay +32 -0
  80. peegy-1.6.4/peegy/layouts/biosemi32_2_EXT.lay +34 -0
  81. peegy-1.6.4/peegy/layouts/biosemi32_fnirs_MP.lay +21 -0
  82. peegy-1.6.4/peegy/layouts/biosemi32_fnirs_jaime.lay +22 -0
  83. peegy-1.6.4/peegy/layouts/biosemi64.lay +64 -0
  84. peegy-1.6.4/peegy/layouts/biosemi64_2_EXT.lay +66 -0
  85. peegy-1.6.4/peegy/layouts/biosemi64_3_EXT.lay +67 -0
  86. peegy-1.6.4/peegy/layouts/brainvision64.bvef +458 -0
  87. peegy-1.6.4/peegy/layouts/emotive14.lay +14 -0
  88. peegy-1.6.4/peegy/layouts/layouts.py +164 -0
  89. peegy-1.6.4/peegy/layouts/neuroscan64.lay +64 -0
  90. peegy-1.6.4/peegy/plot/__init__.py +0 -0
  91. peegy-1.6.4/peegy/plot/eeg_ave_epochs_plot_tools.py +990 -0
  92. peegy-1.6.4/peegy/plot/eeg_plot_tools.py +90 -0
  93. peegy-1.6.4/peegy/processing/__init__.py +0 -0
  94. peegy-1.6.4/peegy/processing/events/__init__.py +0 -0
  95. peegy-1.6.4/peegy/processing/events/event_tools.py +117 -0
  96. peegy-1.6.4/peegy/processing/pipe/__init__.py +0 -0
  97. peegy-1.6.4/peegy/processing/pipe/attach.py +122 -0
  98. peegy-1.6.4/peegy/processing/pipe/bootstrap/__init__.py +0 -0
  99. peegy-1.6.4/peegy/processing/pipe/bootstrap/bootstrap.py +454 -0
  100. peegy-1.6.4/peegy/processing/pipe/definitions.py +754 -0
  101. peegy-1.6.4/peegy/processing/pipe/detection.py +34 -0
  102. peegy-1.6.4/peegy/processing/pipe/epoching/epoching.py +129 -0
  103. peegy-1.6.4/peegy/processing/pipe/epochs.py +625 -0
  104. peegy-1.6.4/peegy/processing/pipe/general.py +666 -0
  105. peegy-1.6.4/peegy/processing/pipe/interpolation.py +156 -0
  106. peegy-1.6.4/peegy/processing/pipe/io.py +446 -0
  107. peegy-1.6.4/peegy/processing/pipe/pipeline.py +139 -0
  108. peegy-1.6.4/peegy/processing/pipe/plot.py +307 -0
  109. peegy-1.6.4/peegy/processing/pipe/regression.py +128 -0
  110. peegy-1.6.4/peegy/processing/pipe/simulate.py +472 -0
  111. peegy-1.6.4/peegy/processing/pipe/spatial_filtering.py +719 -0
  112. peegy-1.6.4/peegy/processing/pipe/statistics.py +512 -0
  113. peegy-1.6.4/peegy/processing/pipe/storage.py +113 -0
  114. peegy-1.6.4/peegy/processing/pipe/time_frequency.py +222 -0
  115. peegy-1.6.4/peegy/processing/pipe/transform.py +285 -0
  116. peegy-1.6.4/peegy/processing/statistics/__init__.py +0 -0
  117. peegy-1.6.4/peegy/processing/statistics/definitions.py +204 -0
  118. peegy-1.6.4/peegy/processing/statistics/eeg_statistic_tools.py +312 -0
  119. peegy-1.6.4/peegy/processing/system/__init__.py +0 -0
  120. peegy-1.6.4/peegy/processing/system/memory.py +14 -0
  121. peegy-1.6.4/peegy/processing/system/progress.py +29 -0
  122. peegy-1.6.4/peegy/processing/tools/__init__.py +0 -0
  123. peegy-1.6.4/peegy/processing/tools/detection/__init__.py +0 -0
  124. peegy-1.6.4/peegy/processing/tools/detection/definitions.py +290 -0
  125. peegy-1.6.4/peegy/processing/tools/detection/time_domain_tools.py +218 -0
  126. peegy-1.6.4/peegy/processing/tools/eeg_epoch_operators.py +598 -0
  127. peegy-1.6.4/peegy/processing/tools/epoch_tools/transform.py +37 -0
  128. peegy-1.6.4/peegy/processing/tools/epochs_processing_tools.py +1341 -0
  129. peegy-1.6.4/peegy/processing/tools/filters/__init__.py +0 -0
  130. peegy-1.6.4/peegy/processing/tools/filters/eegFiltering.py +368 -0
  131. peegy-1.6.4/peegy/processing/tools/filters/eog_tools/__init__.py +0 -0
  132. peegy-1.6.4/peegy/processing/tools/filters/eog_tools/tools.py +397 -0
  133. peegy-1.6.4/peegy/processing/tools/filters/resampling.py +84 -0
  134. peegy-1.6.4/peegy/processing/tools/filters/spatial_filtering/__init__.py +0 -0
  135. peegy-1.6.4/peegy/processing/tools/filters/spatial_filtering/definitions.py +42 -0
  136. peegy-1.6.4/peegy/processing/tools/filters/spatial_filtering/spatial_filtering.py +147 -0
  137. peegy-1.6.4/peegy/processing/tools/fitting/__init__.py +0 -0
  138. peegy-1.6.4/peegy/processing/tools/fitting/fitting_functions.py +7 -0
  139. peegy-1.6.4/peegy/processing/tools/math_tools.py +11 -0
  140. peegy-1.6.4/peegy/processing/tools/multiprocessing/__init__.py +0 -0
  141. peegy-1.6.4/peegy/processing/tools/multiprocessing/multiprocessesing_filter.py +143 -0
  142. peegy-1.6.4/peegy/processing/tools/template_generator/__init__.py +0 -0
  143. peegy-1.6.4/peegy/processing/tools/template_generator/auditory_waveforms.py +288 -0
  144. peegy-1.6.4/peegy/processing/tools/template_generator/h0.json +4206 -0
  145. peegy-1.6.4/peegy/processing/tools/video/__init__.py +0 -0
  146. peegy-1.6.4/peegy/processing/tools/video/recording.py +38 -0
  147. peegy-1.6.4/peegy/processing/tools/weightedAverage.py +989 -0
  148. peegy-1.6.4/peegy/test/__init__.py +0 -0
  149. peegy-1.6.4/peegy/test/artifact_removal/__init__.py +0 -0
  150. peegy-1.6.4/peegy/test/artifact_removal/ir_test.py +85 -0
  151. peegy-1.6.4/peegy/test/artifact_removal/regression_artifact_removal.py +111 -0
  152. peegy-1.6.4/peegy/test/artifact_removal/xcorr_artifact_removal.py +111 -0
  153. peegy-1.6.4/peegy/test/test_data/eog_blinks_valderrama_et_al_2018.mat +0 -0
  154. peegy-1.6.4/peegy/test/test_io/bdf_downsampler_test.py +39 -0
  155. peegy-1.6.4/peegy/test/test_io/extract_json_files.py +17 -0
  156. peegy-1.6.4/peegy/test/test_io/peegy_test_read_layout.py +6 -0
  157. peegy-1.6.4/peegy/test/test_io/read_data_eclipse_test.py +26 -0
  158. peegy-1.6.4/peegy/test/test_io/read_data_test.py +33 -0
  159. peegy-1.6.4/peegy/test/test_io/rename_subject_id_bdf.py +17 -0
  160. peegy-1.6.4/peegy/test/test_io/split_bdfs_example.py +16 -0
  161. peegy-1.6.4/peegy/test/test_io/split_data_test.py +37 -0
  162. peegy-1.6.4/peegy/test/test_io/test_biosemi_class.py +33 -0
  163. peegy-1.6.4/peegy/test/test_io/test_biosemi_reader.py +19 -0
  164. peegy-1.6.4/peegy/test/test_io/test_cnt_reader.py +16 -0
  165. peegy-1.6.4/peegy/test/test_io/test_data_to_wav.py +41 -0
  166. peegy-1.6.4/peegy/test/test_io/test_edf_reader.py +36 -0
  167. peegy-1.6.4/peegy/test/test_io/test_generic_reader.py +12 -0
  168. peegy-1.6.4/peegy/test/test_io/test_parse_processing_chain.py +2 -0
  169. peegy-1.6.4/peegy/test/test_io/test_xml_to_dict.py +5 -0
  170. peegy-1.6.4/peegy/test/test_io/write_data_test.py +39 -0
  171. peegy-1.6.4/peegy/test/test_ploting/__init__.py +0 -0
  172. peegy-1.6.4/peegy/test/test_ploting/test_scrolling.py +122 -0
  173. peegy-1.6.4/peegy/test/test_processing/__init__.py +0 -0
  174. peegy-1.6.4/peegy/test/test_processing/test_averaging/__init__.py +0 -0
  175. peegy-1.6.4/peegy/test/test_processing/test_averaging/javerager_test.py +103 -0
  176. peegy-1.6.4/peegy/test/test_processing/test_averaging/test_assr_moving_average.py +108 -0
  177. peegy-1.6.4/peegy/test/test_processing/test_averaging/test_frequency_average_epochs.py +52 -0
  178. peegy-1.6.4/peegy/test/test_processing/test_averaging/test_w_average_epochs.py +239 -0
  179. peegy-1.6.4/peegy/test/test_processing/test_eog_removal/__init__.py +0 -0
  180. peegy-1.6.4/peegy/test/test_processing/test_eog_removal/test_eog_removal_correlation.py +70 -0
  181. peegy-1.6.4/peegy/test/test_processing/test_eog_removal/test_eog_template_removal.py +88 -0
  182. peegy-1.6.4/peegy/test/test_processing/test_eog_removal/test_eog_template_valderrama_20118.py +38 -0
  183. peegy-1.6.4/peegy/test/test_processing/test_filtering/__init__.py +0 -0
  184. peegy-1.6.4/peegy/test/test_processing/test_filtering/test_eeg_notch_filter.py +20 -0
  185. peegy-1.6.4/peegy/test/test_processing/test_filtering/test_filter.py +23 -0
  186. peegy-1.6.4/peegy/test/test_processing/test_filtering/test_fir_filter_mt.py +70 -0
  187. peegy-1.6.4/peegy/test/test_processing/test_filtering/test_fir_filter_ols.py +47 -0
  188. peegy-1.6.4/peegy/test/test_processing/test_filtering/test_fiter_mt.py +32 -0
  189. peegy-1.6.4/peegy/test/test_processing/test_multiprocessing/__init__.py +0 -0
  190. peegy-1.6.4/peegy/test/test_processing/test_multiprocessing/test_multiprocessing.py +31 -0
  191. peegy-1.6.4/peegy/test/test_processing/test_noise_tools/__init__.py +0 -0
  192. peegy-1.6.4/peegy/test/test_processing/test_noise_tools/test_noise_generator.py +59 -0
  193. peegy-1.6.4/peegy/test/test_processing/test_noise_tools/test_norm_corr.py +56 -0
  194. peegy-1.6.4/peegy/test/test_processing/test_peak_detection/__init__.py +0 -0
  195. peegy-1.6.4/peegy/test/test_processing/test_peak_detection/test_peakdetection.py +47 -0
  196. peegy-1.6.4/peegy/test/test_processing/test_resampling/__init__.py +0 -0
  197. peegy-1.6.4/peegy/test/test_processing/test_resampling/eeg_test_resampling.py +56 -0
  198. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/__init__.py +0 -0
  199. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/dss_unit_tests.py +51 -0
  200. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_et_tools.py +21 -0
  201. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_ica_average_epochs.py +43 -0
  202. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_spatial_filtering_example1.py +156 -0
  203. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_spatial_filtering_example6.py +39 -0
  204. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_spatial_filtering_freq_domain.py +169 -0
  205. peegy-1.6.4/peegy/test/test_processing/test_spatial_filtering/test_spatial_filtering_freq_domain_2.py +189 -0
  206. peegy-1.6.4/peegy/test/test_processing/test_statistics/__init__.py +0 -0
  207. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_bootstraping/__init__.py +0 -0
  208. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_bootstraping/test_bootstraping.py +35 -0
  209. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_freq_noise_estimation.py +149 -0
  210. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_freq_noise_estimation_plots.py +103 -0
  211. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_hotelling_t2.py +60 -0
  212. peegy-1.6.4/peegy/test/test_processing/test_statistics/test_pooled_freq_noise_estimation.py +162 -0
  213. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/__init__.py +0 -0
  214. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/peegy_test_phase_detection_morlet.py +134 -0
  215. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/test_average_spectrogram_power.py +72 -0
  216. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/test_magnitude_scaling.py +52 -0
  217. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/test_phase_detection.py +95 -0
  218. peegy-1.6.4/peegy/test/test_processing/test_time_frequency_transformation/test_phase_locking_value.py +80 -0
  219. peegy-1.6.4/peegy/tools/__init__.py +0 -0
  220. peegy-1.6.4/peegy/tools/aep_gui/__init__.py +0 -0
  221. peegy-1.6.4/peegy/tools/signal_generator/__init__.py +0 -0
  222. peegy-1.6.4/peegy/tools/signal_generator/noise_functions.py +150 -0
  223. peegy-1.6.4/peegy/tools/units/__init__.py +0 -0
  224. peegy-1.6.4/peegy/tools/units/unit_tools.py +21 -0
  225. peegy-1.6.4/pipelines/documentation.yml +39 -0
  226. peegy-1.6.4/pipelines/main.yml +141 -0
  227. peegy-1.6.4/pyproject.toml +58 -0
  228. peegy-1.6.4/requirements.txt +37 -0
  229. peegy-1.6.4/scripts/zenodo_from_toml.py +37 -0
  230. peegy-1.6.4/setup.py +61 -0
  231. peegy-1.6.4/zenodo.json +17 -0
File without changes
peegy-1.6.4/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ /build
2
+ *.pyc
3
+ /dist
4
+ *-info
5
+ .idea
6
+ /venv
@@ -0,0 +1,119 @@
1
+ image: python:3.12
2
+ variables:
3
+ QT_QPA_PLATFORM: 'offscreen'
4
+ XDG_RUNTIME_DIR: '/tmp/runtime-root'
5
+ TWINE_USERNAME: '__token__'
6
+ TWINE_PYPI_TEST: $PYPI_TEST_TOKEN
7
+ TWINE_PYPI: $PYPI_TOKEN
8
+
9
+ make_doc:
10
+ stage: test
11
+ script:
12
+ - echo "$XDG_RUNTIME_DIR"
13
+ - apt-get update
14
+ - apt-get -y install graphviz
15
+ - apt-get -y install libgl1 libglx-mesa0
16
+ - pip install -U sphinx sphinx-gallery memory_profiler sphinx-multiversion twine build wheel setuptools
17
+ - pip install -r requirements.txt
18
+ - cd doc
19
+ - sphinx-build . ../public
20
+ artifacts:
21
+ paths:
22
+ - public
23
+ only:
24
+ - branches
25
+ except:
26
+ - master
27
+ - stable
28
+
29
+ check_pip8:
30
+ stage: test
31
+ script:
32
+ - pip install -U flake8
33
+ - flake8 --max-line-length 120 peegy
34
+ only:
35
+ - branches
36
+ except:
37
+ - master
38
+ - stable
39
+
40
+ code_speller_check:
41
+ stage: test
42
+ script:
43
+ - pip install codespell
44
+ - codespell peegy
45
+ only:
46
+ - branches
47
+ except:
48
+ - master
49
+ - stable
50
+
51
+ make_wheel:
52
+ stage: test
53
+ script:
54
+ - echo "$XDG_RUNTIME_DIR"
55
+ - apt-get update
56
+ - apt-get -y install graphviz
57
+ - apt-get -y install libgl1 libglx-mesa0
58
+ - pip install -U sphinx sphinx-gallery memory_profiler sphinx-multiversion twine build wheel setuptools
59
+ - pip install -r requirements.txt
60
+ - python3 -m build
61
+ only:
62
+ - branches
63
+ except:
64
+ - master
65
+ - stable
66
+
67
+ pages:
68
+ stage: deploy
69
+ script:
70
+ - echo "$XDG_RUNTIME_DIR"
71
+ - apt-get update
72
+ - apt-get -y install graphviz
73
+ - apt-get -y install libgl1 libglx-mesa0
74
+ - pip install -U sphinx sphinx-gallery memory_profiler sphinx-multiversion twine build wheel setuptools
75
+ - pip install -r requirements.txt
76
+ - cd doc
77
+ - sphinx-build . ../public
78
+ - cd ..
79
+ - python3 -m build
80
+ artifacts:
81
+ paths:
82
+ - public
83
+ only:
84
+ - master
85
+
86
+ stable:
87
+ stage: deploy
88
+ script:
89
+ - echo "$XDG_RUNTIME_DIR"
90
+ - apt-get update
91
+ - apt-get -y install graphviz
92
+ - apt-get -y install libgl1 libglx-mesa0
93
+ - pip install -U sphinx sphinx-gallery memory_profiler sphinx-multiversion twine build wheel setuptools
94
+ - pip install -r requirements.txt
95
+ - cd doc
96
+ - sphinx-build . ../public
97
+ - cd ..
98
+ - python3 -m build
99
+ - python3 -m twine upload --repository testpypi dist/* -u $TWINE_USERNAME -p $TWINE_PYPI_TEST
100
+ - pip install -i https://test.pypi.org/simple/ peegy
101
+ - python3 -m twine upload dist/* -u $TWINE_USERNAME -p $TWINE_PYPI
102
+ artifacts:
103
+ paths:
104
+ - dist
105
+ only:
106
+ - stable
107
+
108
+
109
+ publish_zenodo:
110
+ stage: deploy
111
+ rules:
112
+ - if: '$CI_COMMIT_TAG'
113
+ before_script:
114
+ - pip install gitlab2zenodo
115
+ script:
116
+ - ARCHIVE="${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.zip"
117
+ - git archive --format=zip --output="$ARCHIVE" "$CI_COMMIT_TAG"
118
+ - python scripts/zenodo_from_toml.py
119
+ - g2z-send --publish --metadata zenodo.json "$ARCHIVE"
@@ -0,0 +1,132 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ [jaime.undurraga@gmail.com](mailto:jaime.undurraga@gmail.com).
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series of
86
+ actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or permanent
93
+ ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within the
113
+ community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.1, available at
119
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120
+
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
+
124
+ For answers to common questions about this code of conduct, see the FAQ at
125
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
+ [https://www.contributor-covenant.org/translations][translations].
127
+
128
+ [homepage]: https://www.contributor-covenant.org
129
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
+ [Mozilla CoC]: https://github.com/mozilla/diversity
131
+ [FAQ]: https://www.contributor-covenant.org/faq
132
+ [translations]: https://www.contributor-covenant.org/translations
@@ -0,0 +1,57 @@
1
+ # Contributing to pEEGy
2
+
3
+ Thanks for taking the time to contribute to pEEGy!
4
+
5
+ The following document is a set of guidelines for contributing to pEEGy hosted in [Gitlab](https://gitlab.com/jundurraga/peegy).
6
+ These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
7
+
8
+ ## Code of Conduct
9
+
10
+ This project and everyone participating in it is governed by the [pEEGy Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [jaime.undurraga@gmail.com](mailto:jaime.undurraga@gmail.com).
11
+
12
+ ## How Can I Contribute?
13
+
14
+ ### Reporting Bugs
15
+
16
+ This section provides a guideline for submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
17
+
18
+ At the moment of creating a bug report, please include as many details as possible.
19
+
20
+ #### Before Submitting A Bug Report
21
+
22
+ * Check if you can find the cause of the problem and fix things yourself. Next, generate a pull request with the solution.
23
+ * Check if you can reproduce the problem.
24
+
25
+ #### How Do I Submit A Bug Report?
26
+
27
+ Bugs are tracked as [pEEGy issues](https://gitlab.com/jundurraga/peegy/-/issues). Create an issue and provide the following information.
28
+
29
+ Explain the problem and include additional details to help maintainers reproduce the problem:
30
+
31
+ * **Use a clear and descriptive title** for the issue to identify the problem.
32
+ * **Describe the exact steps which reproduce the problem** in as many details as possible. When listing steps, **don't just say what you did, but explain how you did it**.
33
+ * **Provide specific examples to demonstrate the steps**.
34
+ * **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
35
+ * **Explain which behavior you expected to see instead and why.**
36
+
37
+ ### Suggesting Enhancements
38
+
39
+ When providing an enhancement suggestion for pEEGy (new features or minor improvements to existing functionality), please include as many details as possible.
40
+ This will help maintainers and the community understand your suggestion and find related suggestions.
41
+
42
+
43
+ ### Pull Requests
44
+
45
+ 1. Please create your own branch and develop your contributions there.
46
+ 2. Once you have performed your modifications (a new feature or a fix), ensure to include a test script using your contribution.
47
+ This will allow to validate and ensure the quality of the code.
48
+ 3. Describe the parameters of your modifications/contributions in a meaningful way so others can understand what it is, what it does, what it is needed, and how to use it.
49
+
50
+ ### Git Commit Messages
51
+
52
+ * Use the present tense ("Add feature" not "Added feature")
53
+ * Use the imperative mood ("Plot waveform ..." not "Plots waveform...")
54
+ * Consider starting the commit message with an applicable text:
55
+ * feat: when adding a new feature
56
+ * fix: when fixing a bug
57
+ * doc: When changing documentation
@@ -0,0 +1,15 @@
1
+ Copyright 2022
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
4
+ documentation files (the "Software"), to deal in the Software without restriction, including without limitation
5
+ the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
6
+ permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
9
+ Software.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
12
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
13
+ OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
14
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15
+
@@ -0,0 +1 @@
1
+ include peegy/layouts/*.lay
peegy-1.6.4/PKG-INFO ADDED
@@ -0,0 +1,58 @@
1
+ Metadata-Version: 2.4
2
+ Name: pEEGy
3
+ Version: 1.6.4
4
+ Summary: A python software for analysing EEG data and generate pipelines in python.
5
+ Project-URL: Homepage, https://gitlab.com/open-source-brain/peegy/
6
+ Project-URL: Examples, https://open-source-brain.gitlab.io/peegy/
7
+ Project-URL: Issues, https://gitlab.com/open-source-brain/peegy/-/issues
8
+ Author-email: "Undurraga, Jaime" <jaime.undurraga@gmail.com>
9
+ License: MIT
10
+ License-File: LICENSE.txt
11
+ Keywords: EEG,neuroscience,pipelines,signal-processing
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: MacOS :: MacOS X
17
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
21
+ Requires-Python: >=3.9
22
+ Requires-Dist: astropy>=5.2.1
23
+ Requires-Dist: bidshandler>=0.2.1
24
+ Requires-Dist: cython>=0.29.33
25
+ Requires-Dist: dropbox>=12.0.2
26
+ Requires-Dist: fire>=0.5.0
27
+ Requires-Dist: gitpython>=3.1.31
28
+ Requires-Dist: graphviz>=0.20.1
29
+ Requires-Dist: h5py>=3.8.0
30
+ Requires-Dist: joblib>=1.2.0
31
+ Requires-Dist: lxml>=4.9.2
32
+ Requires-Dist: matplotlib<=3.9.0
33
+ Requires-Dist: numba-progress>=0.0.4
34
+ Requires-Dist: numba>=0.56.4
35
+ Requires-Dist: numpy<=2.3.5,>=2.0.0
36
+ Requires-Dist: opencv-python-headless>=4.12.0.88
37
+ Requires-Dist: pandas>=2.3.3
38
+ Requires-Dist: pillow>=9.4.0
39
+ Requires-Dist: prettytable>=3.7.0
40
+ Requires-Dist: psutil>=5.9.5
41
+ Requires-Dist: pydot>=1.4.2
42
+ Requires-Dist: pyedflib>=0.1.32
43
+ Requires-Dist: pyfftw>=0.13.1
44
+ Requires-Dist: pyqt5-stubs>=5.15.6.0
45
+ Requires-Dist: pyqt5>=5.15.9
46
+ Requires-Dist: pyqtgraph>=0.13.3
47
+ Requires-Dist: pywavelets>=1.4.1
48
+ Requires-Dist: qt5-py>=0.1.0
49
+ Requires-Dist: ray>=2.0.1
50
+ Requires-Dist: scikit-learn>=1.2.2
51
+ Requires-Dist: scipy>=1.16.3
52
+ Requires-Dist: seaborn>=0.13.2
53
+ Requires-Dist: soundfile>=0.12.1
54
+ Requires-Dist: sqlalchemy>=2.0.45
55
+ Requires-Dist: ssqueezepy>=0.6.4
56
+ Requires-Dist: tabulate>=0.9.0
57
+ Requires-Dist: toml>=0.10.2
58
+ Requires-Dist: tqdm>=4.64.1
peegy-1.6.4/Readme.md ADDED
@@ -0,0 +1,67 @@
1
+ # pEEGy
2
+ ![](doc/_static/peegy.png)
3
+
4
+ A python software for analysing EEG data and generate pipelines in python.
5
+ At the moment we work with EDF, BDF, and CNT files, but you can also read whatever data you have and plug it into a pipeline.
6
+
7
+ The pEEGy steps are basically:
8
+ 1) Load BDF/EDF files (raw data)
9
+ 2) Define your pipeline for EEG-Analysis (Referencing EEG using predefined EEG Cap Layouts,
10
+ creating Epochs based on trigger events, down-sampling, removing artifacts, defining Regions
11
+ of Interest, Statistics to run on the epochs, or plot the data)
12
+ 3) Define in which database you want to save the results
13
+ 4) Run the above steps.
14
+
15
+ Examples can be found in [pEEGy](https://open-source-brain.gitlab.io/peegy/) website.
16
+
17
+ ## Installation
18
+ This software requires Python >= 3.9
19
+
20
+ Standard installation of stable release can be obtained from the official repository
21
+ ```commandline
22
+ pip install peegy
23
+ ```
24
+ ### Windows enviroment
25
+ The easiest and painless installation is via [Anaconda](https://www.anaconda.com/products/distribution).
26
+ Once you have installed Anaconda, create a new python environment and launch the terminal in this environment.
27
+ In the terminal run:
28
+ ```commandline
29
+ pip install peegy
30
+ ```
31
+ pEEGy will be installed in that new environment.
32
+
33
+
34
+ ## Pipeline diagrams
35
+ To generate pipeline diagrams, you will need to install [Graphviz](https://graphviz.org/download/)
36
+
37
+ ## Development version
38
+ The development version can be obtained from our official Gitlab repository
39
+
40
+ ```commandline
41
+ git clone https://gitlab.com/open-source-brain/peegy.git
42
+ ```
43
+
44
+ This will clone into the folder 'pEEGy'.
45
+
46
+ To be able to look in the (generated) sql-databases, we recommend using DB Browser (https://sqlitebrowser.org/)
47
+
48
+ ### For Windows
49
+
50
+ Precompiled PyFFTW is easier to install via conda.
51
+ If you are using window, this is the easiest way to have PyFFT running.
52
+
53
+ ```commandline
54
+ conda install -c conda-forge pyfftw
55
+ ```
56
+
57
+ ## Examples
58
+ Please have a look at the 'examples' folder for different EEG analysis examples in the time or frequency domain.
59
+
60
+ ## Sidekicks
61
+ We have also created other tools for EEG experiments.
62
+ - If you have a [Biosemi](https://www.biosemi.com/) EEG system, you can use [BiosemiRealtime](https://gitlab.com/jundurraga/biosemi_real_time)
63
+ to allow realtime processing in the time- and frequency-domain.
64
+ - If use are running auditory EEG experiments such as auditory brainstem responses (ABRs), auditory steady-state
65
+ responses (ASSRs), frequency-following responses (FFRs), auditory change complex (ACC), and other auditory evoked
66
+ responses. We have a matlab toolbox [AEP_GUI](https://gitlab.com/jundurraga/ucl-matlab) to generate and present
67
+ these stimuli in a reliable way.
File without changes
@@ -0,0 +1,4 @@
1
+ .. _general_examples:
2
+
3
+ Examples
4
+ =========
File without changes