py-neuromodulation 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl

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 (206) hide show
  1. docs/build/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +68 -0
  2. docs/build/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +233 -0
  3. docs/build/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +219 -0
  4. docs/build/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +97 -0
  5. docs/build/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +64 -0
  6. docs/build/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +192 -0
  7. docs/build/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +210 -0
  8. docs/build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +68 -0
  9. docs/build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +239 -0
  10. docs/build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +219 -0
  11. docs/build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +97 -0
  12. docs/build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +64 -0
  13. docs/build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +192 -0
  14. docs/build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +210 -0
  15. docs/source/_build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +76 -0
  16. docs/source/_build/html/_downloads/0d0d0a76e8f648d5d3cbc47da6351932/plot_real_time_demo.py +97 -0
  17. docs/source/_build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +240 -0
  18. docs/source/_build/html/_downloads/5d73cadc59a8805c47e3b84063afc157/plot_example_BIDS.py +233 -0
  19. docs/source/_build/html/_downloads/7660317fa5a6bfbd12fcca9961457fc4/plot_example_rmap_computing.py +63 -0
  20. docs/source/_build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +219 -0
  21. docs/source/_build/html/_downloads/839e5b319379f7fd9e867deb00fd797f/plot_example_gridPointProjection.py +210 -0
  22. docs/source/_build/html/_downloads/ae8be19afe5e559f011fc9b138968ba0/plot_first_demo.py +192 -0
  23. docs/source/_build/html/_downloads/b8b06cacc17969d3725a0b6f1d7741c5/plot_example_sharpwave_analysis.py +219 -0
  24. docs/source/_build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +121 -0
  25. docs/source/_build/html/_downloads/c31a86c0b68cb4167d968091ace8080d/plot_example_add_feature.py +68 -0
  26. docs/source/_build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +64 -0
  27. docs/source/_build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +189 -0
  28. docs/source/_build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +210 -0
  29. docs/source/auto_examples/plot_0_first_demo.py +189 -0
  30. docs/source/auto_examples/plot_1_example_BIDS.py +240 -0
  31. docs/source/auto_examples/plot_2_example_add_feature.py +76 -0
  32. docs/source/auto_examples/plot_3_example_sharpwave_analysis.py +219 -0
  33. docs/source/auto_examples/plot_4_example_gridPointProjection.py +210 -0
  34. docs/source/auto_examples/plot_5_example_rmap_computing.py +64 -0
  35. docs/source/auto_examples/plot_6_real_time_demo.py +121 -0
  36. docs/source/conf.py +105 -0
  37. examples/plot_0_first_demo.py +189 -0
  38. examples/plot_1_example_BIDS.py +240 -0
  39. examples/plot_2_example_add_feature.py +76 -0
  40. examples/plot_3_example_sharpwave_analysis.py +219 -0
  41. examples/plot_4_example_gridPointProjection.py +210 -0
  42. examples/plot_5_example_rmap_computing.py +64 -0
  43. examples/plot_6_real_time_demo.py +121 -0
  44. packages/realtime_decoding/build/lib/realtime_decoding/__init__.py +4 -0
  45. packages/realtime_decoding/build/lib/realtime_decoding/decoder.py +104 -0
  46. packages/realtime_decoding/build/lib/realtime_decoding/features.py +163 -0
  47. packages/realtime_decoding/build/lib/realtime_decoding/helpers.py +15 -0
  48. packages/realtime_decoding/build/lib/realtime_decoding/run_decoding.py +345 -0
  49. packages/realtime_decoding/build/lib/realtime_decoding/trainer.py +54 -0
  50. packages/tmsi/build/lib/TMSiFileFormats/__init__.py +37 -0
  51. packages/tmsi/build/lib/TMSiFileFormats/file_formats/__init__.py +36 -0
  52. packages/tmsi/build/lib/TMSiFileFormats/file_formats/lsl_stream_writer.py +200 -0
  53. packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_file_writer.py +496 -0
  54. packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_to_edf_converter.py +236 -0
  55. packages/tmsi/build/lib/TMSiFileFormats/file_formats/xdf_file_writer.py +977 -0
  56. packages/tmsi/build/lib/TMSiFileFormats/file_readers/__init__.py +35 -0
  57. packages/tmsi/build/lib/TMSiFileFormats/file_readers/edf_reader.py +116 -0
  58. packages/tmsi/build/lib/TMSiFileFormats/file_readers/poly5reader.py +294 -0
  59. packages/tmsi/build/lib/TMSiFileFormats/file_readers/xdf_reader.py +229 -0
  60. packages/tmsi/build/lib/TMSiFileFormats/file_writer.py +102 -0
  61. packages/tmsi/build/lib/TMSiPlotters/__init__.py +2 -0
  62. packages/tmsi/build/lib/TMSiPlotters/gui/__init__.py +39 -0
  63. packages/tmsi/build/lib/TMSiPlotters/gui/_plotter_gui.py +234 -0
  64. packages/tmsi/build/lib/TMSiPlotters/gui/plotting_gui.py +440 -0
  65. packages/tmsi/build/lib/TMSiPlotters/plotters/__init__.py +44 -0
  66. packages/tmsi/build/lib/TMSiPlotters/plotters/hd_emg_plotter.py +446 -0
  67. packages/tmsi/build/lib/TMSiPlotters/plotters/impedance_plotter.py +589 -0
  68. packages/tmsi/build/lib/TMSiPlotters/plotters/signal_plotter.py +1326 -0
  69. packages/tmsi/build/lib/TMSiSDK/__init__.py +54 -0
  70. packages/tmsi/build/lib/TMSiSDK/device.py +588 -0
  71. packages/tmsi/build/lib/TMSiSDK/devices/__init__.py +34 -0
  72. packages/tmsi/build/lib/TMSiSDK/devices/saga/TMSi_Device_API.py +1764 -0
  73. packages/tmsi/build/lib/TMSiSDK/devices/saga/__init__.py +34 -0
  74. packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_device.py +1366 -0
  75. packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_types.py +520 -0
  76. packages/tmsi/build/lib/TMSiSDK/devices/saga/xml_saga_config.py +165 -0
  77. packages/tmsi/build/lib/TMSiSDK/error.py +95 -0
  78. packages/tmsi/build/lib/TMSiSDK/sample_data.py +63 -0
  79. packages/tmsi/build/lib/TMSiSDK/sample_data_server.py +99 -0
  80. packages/tmsi/build/lib/TMSiSDK/settings.py +45 -0
  81. packages/tmsi/build/lib/TMSiSDK/tmsi_device.py +111 -0
  82. packages/tmsi/build/lib/__init__.py +4 -0
  83. packages/tmsi/build/lib/apex_sdk/__init__.py +34 -0
  84. packages/tmsi/build/lib/apex_sdk/device/__init__.py +41 -0
  85. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API.py +1009 -0
  86. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_enums.py +239 -0
  87. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_structures.py +668 -0
  88. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_device.py +1611 -0
  89. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_dongle.py +38 -0
  90. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_event_reader.py +57 -0
  91. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_channel.py +44 -0
  92. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_config.py +150 -0
  93. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_const.py +36 -0
  94. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_impedance_channel.py +48 -0
  95. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_info.py +108 -0
  96. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/dongle_info.py +39 -0
  97. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/download_measurement.py +77 -0
  98. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/eeg_measurement.py +150 -0
  99. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/impedance_measurement.py +129 -0
  100. packages/tmsi/build/lib/apex_sdk/device/threads/conversion_thread.py +59 -0
  101. packages/tmsi/build/lib/apex_sdk/device/threads/sampling_thread.py +57 -0
  102. packages/tmsi/build/lib/apex_sdk/device/tmsi_channel.py +83 -0
  103. packages/tmsi/build/lib/apex_sdk/device/tmsi_device.py +201 -0
  104. packages/tmsi/build/lib/apex_sdk/device/tmsi_device_enums.py +103 -0
  105. packages/tmsi/build/lib/apex_sdk/device/tmsi_dongle.py +43 -0
  106. packages/tmsi/build/lib/apex_sdk/device/tmsi_event_reader.py +50 -0
  107. packages/tmsi/build/lib/apex_sdk/device/tmsi_measurement.py +118 -0
  108. packages/tmsi/build/lib/apex_sdk/sample_data_server/__init__.py +33 -0
  109. packages/tmsi/build/lib/apex_sdk/sample_data_server/event_data.py +44 -0
  110. packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data.py +50 -0
  111. packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data_server.py +136 -0
  112. packages/tmsi/build/lib/apex_sdk/tmsi_errors/error.py +126 -0
  113. packages/tmsi/build/lib/apex_sdk/tmsi_sdk.py +113 -0
  114. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/apex/apex_structure_generator.py +134 -0
  115. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/decorators.py +60 -0
  116. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/logger_filter.py +42 -0
  117. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/singleton.py +42 -0
  118. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/support_functions.py +72 -0
  119. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/tmsi_logger.py +98 -0
  120. py_neuromodulation/{helper.py → _write_example_dataset_helper.py} +1 -1
  121. py_neuromodulation/nm_EpochStream.py +2 -3
  122. py_neuromodulation/nm_IO.py +43 -70
  123. py_neuromodulation/nm_RMAP.py +308 -11
  124. py_neuromodulation/nm_analysis.py +1 -1
  125. py_neuromodulation/nm_artifacts.py +25 -0
  126. py_neuromodulation/nm_bispectra.py +168 -0
  127. py_neuromodulation/nm_bursts.py +43 -31
  128. py_neuromodulation/nm_coherence.py +2 -1
  129. py_neuromodulation/nm_define_nmchannels.py +1 -1
  130. py_neuromodulation/nm_features.py +6 -1
  131. py_neuromodulation/nm_filter.py +63 -32
  132. py_neuromodulation/nm_filter_preprocessing.py +91 -0
  133. py_neuromodulation/nm_fooof.py +47 -29
  134. py_neuromodulation/nm_generator.py +10 -10
  135. py_neuromodulation/nm_mne_connectivity.py +1 -1
  136. py_neuromodulation/nm_normalization.py +50 -74
  137. py_neuromodulation/nm_oscillatory.py +151 -31
  138. py_neuromodulation/nm_plots.py +13 -10
  139. py_neuromodulation/nm_rereference.py +10 -8
  140. py_neuromodulation/nm_run_analysis.py +28 -13
  141. py_neuromodulation/nm_sharpwaves.py +103 -136
  142. py_neuromodulation/nm_stats.py +44 -30
  143. py_neuromodulation/nm_stream_abc.py +18 -10
  144. py_neuromodulation/nm_stream_offline.py +185 -43
  145. py_neuromodulation/utils/_logging.py +24 -0
  146. {py_neuromodulation-0.0.1.dist-info → py_neuromodulation-0.0.3.dist-info}/METADATA +182 -131
  147. py_neuromodulation-0.0.3.dist-info/RECORD +188 -0
  148. {py_neuromodulation-0.0.1.dist-info → py_neuromodulation-0.0.3.dist-info}/WHEEL +2 -1
  149. py_neuromodulation-0.0.3.dist-info/top_level.txt +5 -0
  150. tests/__init__.py +0 -0
  151. tests/conftest.py +117 -0
  152. tests/test_all_examples.py +10 -0
  153. tests/test_all_features.py +63 -0
  154. tests/test_bispectra.py +70 -0
  155. tests/test_bursts.py +105 -0
  156. tests/test_feature_sampling_rates.py +143 -0
  157. tests/test_fooof.py +16 -0
  158. tests/test_initalization_offline_stream.py +41 -0
  159. tests/test_multiprocessing.py +58 -0
  160. tests/test_nan_values.py +29 -0
  161. tests/test_nm_filter.py +95 -0
  162. tests/test_nm_resample.py +63 -0
  163. tests/test_normalization_settings.py +146 -0
  164. tests/test_notch_filter.py +31 -0
  165. tests/test_osc_features.py +424 -0
  166. tests/test_preprocessing_filter.py +151 -0
  167. tests/test_rereference.py +171 -0
  168. tests/test_sampling.py +57 -0
  169. tests/test_settings_change_after_init.py +76 -0
  170. tests/test_sharpwave.py +165 -0
  171. tests/test_target_channel_add.py +100 -0
  172. tests/test_timing.py +80 -0
  173. py_neuromodulation/data/README +0 -6
  174. py_neuromodulation/data/dataset_description.json +0 -8
  175. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/MOV_aligned_features_ch_ECOG_RIGHT_0_all.png +0 -0
  176. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/all_feature_plt.pdf +0 -0
  177. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_FEATURES.csv +0 -182
  178. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_LM_ML_RES.p +0 -0
  179. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_SETTINGS.json +0 -273
  180. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_SIDECAR.json +0 -6
  181. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_decoding_performance.png +0 -0
  182. py_neuromodulation/data/derivatives/sub-testsub_ses-EphysMedOff_task-gripforce_run-0/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_nm_channels.csv +0 -11
  183. py_neuromodulation/data/participants.json +0 -32
  184. py_neuromodulation/data/participants.tsv +0 -2
  185. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +0 -5
  186. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +0 -11
  187. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +0 -11
  188. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
  189. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +0 -18
  190. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +0 -35
  191. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +0 -13
  192. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +0 -2
  193. py_neuromodulation/grid_cortex.tsv +0 -40
  194. py_neuromodulation/grid_subcortex.tsv +0 -1429
  195. py_neuromodulation/nm_settings.json +0 -261
  196. py_neuromodulation/plots/STN_surf.mat +0 -0
  197. py_neuromodulation/plots/Vertices.mat +0 -0
  198. py_neuromodulation/plots/faces.mat +0 -0
  199. py_neuromodulation/plots/grid.mat +0 -0
  200. py_neuromodulation/py_neuromodulation.egg-info/PKG-INFO +0 -104
  201. py_neuromodulation/py_neuromodulation.egg-info/dependency_links.txt +0 -1
  202. py_neuromodulation/py_neuromodulation.egg-info/requires.txt +0 -26
  203. py_neuromodulation/py_neuromodulation.egg-info/top_level.txt +0 -1
  204. py_neuromodulation-0.0.1.dist-info/RECORD +0 -72
  205. /py_neuromodulation/{py_neuromodulation.egg-info/SOURCES.txt → utils/__init__.py} +0 -0
  206. {py_neuromodulation-0.0.1.dist-info → py_neuromodulation-0.0.3.dist-info}/LICENSE +0 -0
@@ -1,131 +1,182 @@
1
- Metadata-Version: 2.1
2
- Name: py_neuromodulation
3
- Version: 0.0.1
4
- Summary: Real-time analysis of intracranial neurophysiology recordings.
5
- Keywords: real-time,eeg,ieeg,dbs,ecog,electrocorticography,deep-brain-stimulation,machine-learning
6
- Author-email: Timon Merk <timon.merk@charite.de>
7
- Maintainer: Timon Merk
8
- Requires-Python: >=3.10
9
- Description-Content-Type: text/x-rst
10
- Classifier: Development Status :: 2 - Pre-Alpha
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Programming Language :: Python
13
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
- Requires-Dist: mne
15
- Requires-Dist: filterpy >= 1.4.5
16
- Requires-Dist: fooof
17
- Requires-Dist: imbalanced-learn
18
- Requires-Dist: matplotlib >= 3.3.4
19
- Requires-Dist: mne-bids >= 0.8
20
- Requires-Dist: mne-connectivity
21
- Requires-Dist: mrmr-selection
22
- Requires-Dist: nolds
23
- Requires-Dist: numpy >= 1.21.2
24
- Requires-Dist: pandas >= 1.2.2
25
- Requires-Dist: pip
26
- Requires-Dist: pynput
27
- Requires-Dist: pybids
28
- Requires-Dist: scikit-image
29
- Requires-Dist: scikit-learn >= 0.24.2
30
- Requires-Dist: scikit-optimize
31
- Requires-Dist: scipy >= 1.7.1
32
- Requires-Dist: seaborn >= 0.11
33
- Requires-Dist: notebook
34
- Requires-Dist: ipython
35
- Requires-Dist: black ; extra == "dev"
36
- Requires-Dist: pytest ; extra == "dev"
37
- Requires-Dist: pytest-cov ; extra == "dev"
38
- Project-URL: bugtracker, https://github.com/neuromodulation/py_neuromodulation/issues
39
- Project-URL: repository, https://github.com/neuromodulation/py_neuromodulation
40
- Provides-Extra: dev
41
-
42
- py_neuromodulation
43
- ==================
44
-
45
- Analyzing neural data can be a troublesome, trial and error prone,
46
- and beginner unfriendly process. *py_neuromodulation* allows using a simple
47
- interface for extraction of established neurophysiological features and includes commonly applied pre -and postprocessing methods.
48
-
49
- Only **time series data** with a corresponding **sampling frequency** are required for feature extraction.
50
-
51
- The output will be a `pandas.DataFrame <https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html>`_ including different time-resolved computed features. Internally a **stream** get's initialized,
52
- which resembles an *online* data-stream that can in theory also be be used with a hardware acquisition system.
53
-
54
- The following features are currently included:
55
-
56
- * oscillatory: fft, stft or bandpass filtered band power
57
- * `temporal waveform shape <https://www.sciencedirect.com/science/article/pii/S1364661316302182>`_
58
- * `fooof <https://fooof-tools.github.io/fooof/>`_
59
- * `mne_connectivity estimates <https://mne.tools/mne-connectivity/stable/index.html>`_
60
- * `Hjorth parameter <https://en.wikipedia.org/wiki/Hjorth_parameters>`_
61
- * `non-linear dynamical estimates <https://nolds.readthedocs.io/en/latest/>`_
62
- * various burst features
63
- * line length
64
- * and more...
65
-
66
-
67
- The original intention for writing this toolbox was movement decoding from invasive brain signals [1]_.
68
- The application however could be any neural decoding problem.
69
- *py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
70
-
71
- Find the documentation here http://py-neuromodulation.readthedocs.io for example usage and parametrization.
72
-
73
- Installation
74
- ============
75
-
76
- For installation, clone the repository and create a new virtual conda environment with at least python 3.10:
77
-
78
- .. code-block::
79
-
80
- conda create -n pynm-test python=3.10
81
- conda activate pynm-test
82
-
83
- Then install the packages listed in the `pyproject.toml` with.
84
-
85
- .. code-block::
86
-
87
- pip install .[dev]
88
-
89
-
90
- Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
91
-
92
- .. code-block::
93
-
94
- ipython kernel install --user --name=pynm-test
95
-
96
- Then *py_neuromodulation* can be imported via:
97
-
98
- .. code-block::
99
-
100
- import py_neuromodulation as py_nm
101
-
102
- Basic Usage
103
- ===========
104
-
105
- .. code-block:: python
106
-
107
- import py_neuromodulation as pn
108
- import numpy as np
109
-
110
- NUM_CHANNELS = 5
111
- NUM_DATA = 10000
112
- sfreq = 1000 # Hz
113
- feature_freq = 3 # Hz
114
-
115
- data = np.random.random([NUM_CHANNELS, NUM_DATA])
116
-
117
- stream = pn.Stream(sfreq=sfreq, data=data, sampling_rate_features_hz=sampling_rate_features_hz)
118
- features = stream.run()
119
-
120
- Check the `Usage <https://py-neuromodulation.readthedocs.io/en/latest/usage.html>`_ and `First examples <https://py-neuromodulation.readthedocs.io/en/latest/auto_examples/plot_first_demo.html>`_ for further introduction.
121
-
122
- Contact information
123
- -------------------
124
- For any question or suggestion please find my contact
125
- information at `my GitHub profile <https://github.com/timonmerk>`_.
126
-
127
- References
128
- ----------
129
-
130
- .. [1] Merk, T. et al. *Electrocorticography is superior to subthalamic local field potentials for movement decoding in Parkinson’s disease*. Elife 11, e75126, `https://doi.org/10.7554/eLife.75126` (2022).
131
-
1
+ Metadata-Version: 2.1
2
+ Name: py_neuromodulation
3
+ Version: 0.0.3
4
+ Summary: Real-time analysis of intracranial neurophysiology recordings.
5
+ Author-email: Timon Merk <timon.merk@charite.de>
6
+ Maintainer: Timon Merk
7
+ License: MIT License
8
+
9
+ Copyright (c) 2021 Interventional Cognitive Neuromodulation - Neumann Lab Berlin
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Project-URL: bugtracker, https://github.com/neuromodulation/py_neuromodulation/issues
30
+ Project-URL: repository, https://github.com/neuromodulation/py_neuromodulation
31
+ Keywords: real-time,eeg,ieeg,dbs,ecog,electrocorticography,deep-brain-stimulation,machine-learning
32
+ Classifier: Development Status :: 2 - Pre-Alpha
33
+ Classifier: License :: OSI Approved :: MIT License
34
+ Classifier: Programming Language :: Python
35
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
36
+ Requires-Python: >=3.10
37
+ Description-Content-Type: text/x-rst
38
+ License-File: LICENSE
39
+ Requires-Dist: mne
40
+ Requires-Dist: filterpy >=1.4.5
41
+ Requires-Dist: fooof
42
+ Requires-Dist: imbalanced-learn
43
+ Requires-Dist: matplotlib >=3.3.4
44
+ Requires-Dist: mne-bids >=0.8
45
+ Requires-Dist: mne-connectivity
46
+ Requires-Dist: mrmr-selection
47
+ Requires-Dist: nolds
48
+ Requires-Dist: numpy >=1.21.2
49
+ Requires-Dist: pandas >=1.2.2
50
+ Requires-Dist: pip
51
+ Requires-Dist: pynput
52
+ Requires-Dist: pybids
53
+ Requires-Dist: scikit-image
54
+ Requires-Dist: scikit-learn >=0.24.2
55
+ Requires-Dist: scikit-optimize
56
+ Requires-Dist: scipy >=1.7.1
57
+ Requires-Dist: seaborn >=0.11
58
+ Requires-Dist: notebook
59
+ Requires-Dist: ipython
60
+ Requires-Dist: pybispectra >=1.0.0
61
+ Requires-Dist: pyparrm
62
+ Requires-Dist: pyarrow >=14.0.2
63
+ Requires-Dist: joblib >=1.3.2
64
+ Requires-Dist: black >=24.2.0
65
+ Requires-Dist: pytest >=8.0.2
66
+ Requires-Dist: wget
67
+ Provides-Extra: dev
68
+ Requires-Dist: black ; extra == 'dev'
69
+ Requires-Dist: pytest ; extra == 'dev'
70
+ Requires-Dist: pytest-cov ; extra == 'dev'
71
+
72
+ py_neuromodulation
73
+ ==================
74
+
75
+ Analyzing neural data can be a troublesome, trial and error prone,
76
+ and beginner unfriendly process. *py_neuromodulation* allows using a simple
77
+ interface for extraction of established neurophysiological features and includes commonly applied pre -and postprocessing methods.
78
+
79
+ Only **time series data** with a corresponding **sampling frequency** are required for feature extraction.
80
+
81
+ The output will be a `pandas.DataFrame <https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html>`_ including different time-resolved computed features. Internally a **stream** get's initialized,
82
+ which resembles an *online* data-stream that can in theory also be be used with a hardware acquisition system.
83
+
84
+ The following features are currently included:
85
+
86
+ * oscillatory: fft, stft or bandpass filtered band power
87
+ * `temporal waveform shape <https://www.sciencedirect.com/science/article/pii/S1364661316302182>`_
88
+ * `fooof <https://fooof-tools.github.io/fooof/>`_
89
+ * `mne_connectivity estimates <https://mne.tools/mne-connectivity/stable/index.html>`_
90
+ * `Hjorth parameter <https://en.wikipedia.org/wiki/Hjorth_parameters>`_
91
+ * `non-linear dynamical estimates <https://nolds.readthedocs.io/en/latest/>`_
92
+ * various burst features
93
+ * line length
94
+ * and more...
95
+
96
+
97
+ Find here the preprint of **py_neuromodulation** called *"Invasive neurophysiology and whole brain connectomics for neural decoding in patients with brain implants"* [1]_.
98
+
99
+ The original intention for writing this toolbox was movement decoding from invasive brain signals [2]_.
100
+ The application however could be any neural decoding problem.
101
+ *py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
102
+
103
+ Find the documentation here http://py-neuromodulation.readthedocs.io for example usage and parametrization.
104
+
105
+ Installation
106
+ ============
107
+
108
+ py_neuromodulation requires at least python 3.10. For installation you can use pip:
109
+
110
+ .. code-block::
111
+
112
+ pip install py-neuromodulation
113
+
114
+
115
+ We recommend however installing the package using `rye <https://rye-up.com/guide/installation/>`_:
116
+
117
+ .. code-block::
118
+
119
+ git clone https://github.com/neuromodulation/py_neuromodulation.git
120
+ rye pin 3.11
121
+ rye sync
122
+
123
+ And then activating the virtual environment e.g. in Windows using:
124
+
125
+ .. code-block::
126
+
127
+ .\.venv\Scripts\activate
128
+
129
+ Alternatively you can also install the package in a conda environment:
130
+
131
+ conda create -n pynm-test python=3.11
132
+ conda activate pynm-test
133
+
134
+ Then install the packages listed in the `pyproject.toml`:
135
+
136
+ .. code-block::
137
+
138
+ pip install .
139
+
140
+
141
+ Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
142
+
143
+ .. code-block::
144
+
145
+ ipython kernel install --user --name=pynm-test
146
+
147
+ Then *py_neuromodulation* can be imported via:
148
+
149
+ .. code-block::
150
+
151
+ import py_neuromodulation as nm
152
+
153
+ Basic Usage
154
+ ===========
155
+
156
+ .. code-block:: python
157
+
158
+ import py_neuromodulation as nm
159
+ import numpy as np
160
+
161
+ NUM_CHANNELS = 5
162
+ NUM_DATA = 10000
163
+ sfreq = 1000 # Hz
164
+ sampling_rate_features_hz = 3 # Hz
165
+
166
+ data = np.random.random([NUM_CHANNELS, NUM_DATA])
167
+
168
+ stream = nm.Stream(sfreq=sfreq, data=data, sampling_rate_features_hz=sampling_rate_features_hz)
169
+ features = stream.run()
170
+
171
+ Check the `Usage <https://py-neuromodulation.readthedocs.io/en/latest/usage.html>`_ and `First examples <https://py-neuromodulation.readthedocs.io/en/latest/auto_examples/plot_0_first_demo.html>`_ for further introduction.
172
+
173
+ Contact information
174
+ -------------------
175
+ For any question or suggestion please find my contact
176
+ information at `my GitHub profile <https://github.com/timonmerk>`_.
177
+
178
+ References
179
+ ----------
180
+
181
+ .. [1] Merk, T. et al. *Invasive neurophysiology and whole brain connectomics for neural decoding in patients with brain implants*, `https://doi.org/10.21203/rs.3.rs-3212709/v1` (2023).
182
+ .. [2] Merk, T. et al. *Electrocorticography is superior to subthalamic local field potentials for movement decoding in Parkinson’s disease*. Elife 11, e75126, `https://doi.org/10.7554/eLife.75126` (2022).
@@ -0,0 +1,188 @@
1
+ docs/build/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py,sha256=lMwnMXL9HlCrL6JZf1UtRtLM2YrW1quZo2rtDH5Pg0k,2332
2
+ docs/build/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py,sha256=v1DmUQmA_99F0_WpLnPLXM5B7mV0RNi1HoYIj3E_yH8,6908
3
+ docs/build/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py,sha256=p66dwewIyX_gx4CAHtBh0qJy55QaLL95WGjXoS5Wwis,9620
4
+ docs/build/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py,sha256=bTHUteIHgZKbb43u3Y06Spx4YnZs4O3MuDX5m5CfBK8,4847
5
+ docs/build/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py,sha256=VWp8b7SUgkmGeLUpeIbAJCE5QkVVqSr-1_IX4QIWeqM,2844
6
+ docs/build/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py,sha256=G6cj82Z9meuh-SQ-U6h_TMsJCjdDUfIV076w5x_BSrI,7687
7
+ docs/build/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
8
+ docs/build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py,sha256=lMwnMXL9HlCrL6JZf1UtRtLM2YrW1quZo2rtDH5Pg0k,2332
9
+ docs/build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py,sha256=d_AFxEqezYCjTP7-34508qzQ8u53g_2gyuV2jW4ac_o,6937
10
+ docs/build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py,sha256=p66dwewIyX_gx4CAHtBh0qJy55QaLL95WGjXoS5Wwis,9620
11
+ docs/build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py,sha256=bTHUteIHgZKbb43u3Y06Spx4YnZs4O3MuDX5m5CfBK8,4847
12
+ docs/build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py,sha256=VWp8b7SUgkmGeLUpeIbAJCE5QkVVqSr-1_IX4QIWeqM,2844
13
+ docs/build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py,sha256=G6cj82Z9meuh-SQ-U6h_TMsJCjdDUfIV076w5x_BSrI,7687
14
+ docs/build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
15
+ docs/source/conf.py,sha256=-10zCfbUXqpeYqZKS8WEGiN2kLXYu9W5bwHmaKperfM,3109
16
+ docs/source/_build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py,sha256=GE9isYmHf8PmGQGYTsJakE0F3yMdoISnEjuW8z6h_aw,2353
17
+ docs/source/_build/html/_downloads/0d0d0a76e8f648d5d3cbc47da6351932/plot_real_time_demo.py,sha256=bTHUteIHgZKbb43u3Y06Spx4YnZs4O3MuDX5m5CfBK8,4847
18
+ docs/source/_build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py,sha256=Q8ASUBssHg6fd28dTRcRTmyaVxdWnhevngxIb8YsYbk,6967
19
+ docs/source/_build/html/_downloads/5d73cadc59a8805c47e3b84063afc157/plot_example_BIDS.py,sha256=QTntcJmIe67-zMgJ6J45GAgmSXb0KE202PzgJPKuNc0,6901
20
+ docs/source/_build/html/_downloads/7660317fa5a6bfbd12fcca9961457fc4/plot_example_rmap_computing.py,sha256=3_ZUJQHY0eH0NrmZsGvg403KmJvKqnSpLAABxdG_1xU,2859
21
+ docs/source/_build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py,sha256=p66dwewIyX_gx4CAHtBh0qJy55QaLL95WGjXoS5Wwis,9620
22
+ docs/source/_build/html/_downloads/839e5b319379f7fd9e867deb00fd797f/plot_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
23
+ docs/source/_build/html/_downloads/ae8be19afe5e559f011fc9b138968ba0/plot_first_demo.py,sha256=G6cj82Z9meuh-SQ-U6h_TMsJCjdDUfIV076w5x_BSrI,7687
24
+ docs/source/_build/html/_downloads/b8b06cacc17969d3725a0b6f1d7741c5/plot_example_sharpwave_analysis.py,sha256=DB9mGoliri-nvQGMfQmZo5DrnZLsYM7faE0oso-Hp_M,9640
25
+ docs/source/_build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py,sha256=QubNW2mbJ-HXDLx24Jd2oCykrlwHEaPt7mOuh5CHcbA,4938
26
+ docs/source/_build/html/_downloads/c31a86c0b68cb4167d968091ace8080d/plot_example_add_feature.py,sha256=lMwnMXL9HlCrL6JZf1UtRtLM2YrW1quZo2rtDH5Pg0k,2332
27
+ docs/source/_build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py,sha256=VWp8b7SUgkmGeLUpeIbAJCE5QkVVqSr-1_IX4QIWeqM,2844
28
+ docs/source/_build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py,sha256=NJHXQ2x4bZmLEFimo0hM13oWrAcA_pd8Dr3NL7v5Zc8,7650
29
+ docs/source/_build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
30
+ docs/source/auto_examples/plot_0_first_demo.py,sha256=NJHXQ2x4bZmLEFimo0hM13oWrAcA_pd8Dr3NL7v5Zc8,7650
31
+ docs/source/auto_examples/plot_1_example_BIDS.py,sha256=Q8ASUBssHg6fd28dTRcRTmyaVxdWnhevngxIb8YsYbk,6967
32
+ docs/source/auto_examples/plot_2_example_add_feature.py,sha256=GE9isYmHf8PmGQGYTsJakE0F3yMdoISnEjuW8z6h_aw,2353
33
+ docs/source/auto_examples/plot_3_example_sharpwave_analysis.py,sha256=p66dwewIyX_gx4CAHtBh0qJy55QaLL95WGjXoS5Wwis,9620
34
+ docs/source/auto_examples/plot_4_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
35
+ docs/source/auto_examples/plot_5_example_rmap_computing.py,sha256=VWp8b7SUgkmGeLUpeIbAJCE5QkVVqSr-1_IX4QIWeqM,2844
36
+ docs/source/auto_examples/plot_6_real_time_demo.py,sha256=QubNW2mbJ-HXDLx24Jd2oCykrlwHEaPt7mOuh5CHcbA,4938
37
+ examples/plot_0_first_demo.py,sha256=NJHXQ2x4bZmLEFimo0hM13oWrAcA_pd8Dr3NL7v5Zc8,7650
38
+ examples/plot_1_example_BIDS.py,sha256=Q8ASUBssHg6fd28dTRcRTmyaVxdWnhevngxIb8YsYbk,6967
39
+ examples/plot_2_example_add_feature.py,sha256=GE9isYmHf8PmGQGYTsJakE0F3yMdoISnEjuW8z6h_aw,2353
40
+ examples/plot_3_example_sharpwave_analysis.py,sha256=p66dwewIyX_gx4CAHtBh0qJy55QaLL95WGjXoS5Wwis,9620
41
+ examples/plot_4_example_gridPointProjection.py,sha256=AyVMbn7KPdI6TpUHxiUChCMH7HRTCvOp70b2E8OA4Is,8105
42
+ examples/plot_5_example_rmap_computing.py,sha256=VWp8b7SUgkmGeLUpeIbAJCE5QkVVqSr-1_IX4QIWeqM,2844
43
+ examples/plot_6_real_time_demo.py,sha256=QubNW2mbJ-HXDLx24Jd2oCykrlwHEaPt7mOuh5CHcbA,4938
44
+ packages/realtime_decoding/build/lib/realtime_decoding/__init__.py,sha256=ASzcT8ktbukMQ3T9PPoVAlcazknE-ACVFOuNw24rMPo,127
45
+ packages/realtime_decoding/build/lib/realtime_decoding/decoder.py,sha256=Sff2JWYCF2vFNEGtaReUrNX5LntV9wrbcg8tC1pozGA,3229
46
+ packages/realtime_decoding/build/lib/realtime_decoding/features.py,sha256=ZWLngSWuenXLaH-ks19fTUaqwMPA-MUB8-UNTQgmi-g,6021
47
+ packages/realtime_decoding/build/lib/realtime_decoding/helpers.py,sha256=nQFtybuvXpM7xDzfCWtw23pyQoGMJIDeZOMGd7KkK_U,337
48
+ packages/realtime_decoding/build/lib/realtime_decoding/run_decoding.py,sha256=ieKS134CxfZcL0yOh3Bvl8rKp4Bfu4s6SCohXx52bkI,11950
49
+ packages/realtime_decoding/build/lib/realtime_decoding/trainer.py,sha256=ICBnm4Up3K8a0ovaMGPFDNr8Y5vwLKVrI2knzvXrfxE,1536
50
+ packages/tmsi/build/lib/__init__.py,sha256=OFqnFN-GHeicZgsQx7-QtQIc7f8p3tOZSdxgu8DdbCg,145
51
+ packages/tmsi/build/lib/TMSiFileFormats/__init__.py,sha256=WTGDqaSJvjiX6lDZz7TC7FcNfgeE_WTxTiPesdKCDC4,1076
52
+ packages/tmsi/build/lib/TMSiFileFormats/file_writer.py,sha256=uvfh2TXmbrKo1jmfqFS_0KATL5GPKqzxdO08uvEUbvA,3482
53
+ packages/tmsi/build/lib/TMSiFileFormats/file_formats/__init__.py,sha256=QX-f7vQApRPyIlmmcjmhOPc4NkBcB_b4qrNNUKNQUHA,1136
54
+ packages/tmsi/build/lib/TMSiFileFormats/file_formats/lsl_stream_writer.py,sha256=SBD62cZmKSVacbPAkXqVyipZfx4-lCHwAPE5LymqRUM,6987
55
+ packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_file_writer.py,sha256=2zI-zLr4w8XAkv0vjaNdRSLbSR3tNqmidXbCLS4_kh8,17298
56
+ packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_to_edf_converter.py,sha256=anFbDwrBtc1RzkV4s1oW5vYf0oLN4nZE_--xZP2NU10,9221
57
+ packages/tmsi/build/lib/TMSiFileFormats/file_formats/xdf_file_writer.py,sha256=LLVRA_70gfMgou4hiT3v8IZ88LIYosMZ30BxsGCEWlo,39017
58
+ packages/tmsi/build/lib/TMSiFileFormats/file_readers/__init__.py,sha256=VmWAbvOR5bejE_Y69kJx-WngMeOXXu41fHgfuPR_fKY,1060
59
+ packages/tmsi/build/lib/TMSiFileFormats/file_readers/edf_reader.py,sha256=UylKmzea11Mq3RKfuXXbN5g1OkvCj96BdOocGb1r-XY,4090
60
+ packages/tmsi/build/lib/TMSiFileFormats/file_readers/poly5reader.py,sha256=2vGY1wxdd-9cFWBnEITKyn1dZ49dToP3LFs6SsPoX_4,10297
61
+ packages/tmsi/build/lib/TMSiFileFormats/file_readers/xdf_reader.py,sha256=bSrzvqaysfegtFOkYgmNora49lJyXQUNIeqz5-cluSM,8579
62
+ packages/tmsi/build/lib/TMSiPlotters/__init__.py,sha256=PGUQlRcrWFlpe7y7ld1yY26LAFt1Rhwc7xB9C7_OHhk,43
63
+ packages/tmsi/build/lib/TMSiPlotters/gui/__init__.py,sha256=R0nvhP4z9rspQWIIo-DqAdAt1pWU0s6wDeZFZgeC7uk,1219
64
+ packages/tmsi/build/lib/TMSiPlotters/gui/_plotter_gui.py,sha256=XXWoJXeI6nwg2O450taa5eXlKcxZgwyVdPhMoPyvUHk,10981
65
+ packages/tmsi/build/lib/TMSiPlotters/gui/plotting_gui.py,sha256=xgf2a1J9KEwdcs5wDIOHz3OBcXD9yneONlMCLX-RGN4,21679
66
+ packages/tmsi/build/lib/TMSiPlotters/plotters/__init__.py,sha256=yH_xWZGRUwUuPoVlE71KEkpH5aV15of92Um_X4uxTp8,1318
67
+ packages/tmsi/build/lib/TMSiPlotters/plotters/hd_emg_plotter.py,sha256=nJehvy5inr2Xf4pNP2X1FMFivTa3Hj7d3S8ldd6_HpM,20868
68
+ packages/tmsi/build/lib/TMSiPlotters/plotters/impedance_plotter.py,sha256=gMr4aebPmkqrlwxB_jNL-gkPTQmYGg0gvw-tZoG5JkI,28170
69
+ packages/tmsi/build/lib/TMSiPlotters/plotters/signal_plotter.py,sha256=Ek2BpdwqwQb8pIhRbafEATYwphRI6LDs6cV2qpzi7I4,56052
70
+ packages/tmsi/build/lib/TMSiSDK/__init__.py,sha256=ofaDxFC1LWaTBKOxSEhsG8TeSuby56vJP2s2MEUSpYE,1637
71
+ packages/tmsi/build/lib/TMSiSDK/device.py,sha256=8z00HY9GNiYBdugiPd8ctcLlGniWPLEtzEy7p4tM01Y,18540
72
+ packages/tmsi/build/lib/TMSiSDK/error.py,sha256=W2uMpRReYlRMw6jv7bVeAuK0GJLBe8I-gvs0I8DrDoQ,3969
73
+ packages/tmsi/build/lib/TMSiSDK/sample_data.py,sha256=ujSmF0xljVuFn71ls7A6XxWevheR3ux-ym9lx7qIHWE,2078
74
+ packages/tmsi/build/lib/TMSiSDK/sample_data_server.py,sha256=AQTC9Yk-ZISbISBqJWLrQRXNGAAQArKA32hP2fDnVu4,3179
75
+ packages/tmsi/build/lib/TMSiSDK/settings.py,sha256=f9wD8eTG4uSbudSSQ2dF0P9Ldset24qeD4F8vAcBjHQ,1303
76
+ packages/tmsi/build/lib/TMSiSDK/tmsi_device.py,sha256=g8PKBMDpCbdQ7lD-a0te1ovdhx_0Zr2WSjiHuYxG9XA,3872
77
+ packages/tmsi/build/lib/TMSiSDK/devices/__init__.py,sha256=qKBSReRCR9RP5iIprQ-2yR16c0C66PaQdhF_dLdLHhE,987
78
+ packages/tmsi/build/lib/TMSiSDK/devices/saga/TMSi_Device_API.py,sha256=lZxyMA-YKWaqVAHikBbL50a3gRJkAYEIoTyh1DM_tsc,64350
79
+ packages/tmsi/build/lib/TMSiSDK/devices/saga/__init__.py,sha256=hesQE4rGyBn_EIzk0V9OPzrvd82gVf8W4Qg9GZPMGv8,1104
80
+ packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_device.py,sha256=f7xayd5xEjjetPOde2B8LAHCHIML0tHE7lI9hrlxpUE,56014
81
+ packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_types.py,sha256=9AW78NbGVv7y3AOSubvK3-TEQcEu6iYGUqAw6U8Q4V0,19323
82
+ packages/tmsi/build/lib/TMSiSDK/devices/saga/xml_saga_config.py,sha256=AoRAyQa2duNd2OTpN1xUS2ohjWYJcknPkAtlzkQHk6A,5811
83
+ packages/tmsi/build/lib/apex_sdk/__init__.py,sha256=2HeK5m-t17JTkImtGgzxbKW_NTlcUM2VzftdvqP_VvY,1029
84
+ packages/tmsi/build/lib/apex_sdk/tmsi_sdk.py,sha256=KmOAer7XO2JihagQB3fUVNr6RDezPIMcYffm4UxawQc,4208
85
+ packages/tmsi/build/lib/apex_sdk/device/__init__.py,sha256=1J0v2m1dpzB6Z01bwzK_WKCM3y7lInB8UdPxQp08-hk,1317
86
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_channel.py,sha256=21WC_lo24kWJDOp-6Mg0mbKLGQcPOsDfyRZSJfjDNWE,2349
87
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_device.py,sha256=bueUoq5xDnZqk64CPivViBG_OddL0aBr7QZLWaYaJCk,7904
88
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_device_enums.py,sha256=ISm_Sgc8NlB5kZc4CLdvDRlnz7J0-SyAIKHzSy4sgmU,2182
89
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_dongle.py,sha256=tS7s8EyS4T4ES2D0c_LxGI8tmQLufKPWW-XPdoBr5RE,1207
90
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_event_reader.py,sha256=ChICOlqMV4g2cepKKakU4nYj6tOcxXFPlPMRLKw03a0,1475
91
+ packages/tmsi/build/lib/apex_sdk/device/tmsi_measurement.py,sha256=aklYuP8JujBPBU8FcoBb63zU2lSRdbd8ewpr5JqIoR0,3996
92
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API.py,sha256=ltOEnPy1PI0oKWOEbvPZP1CqRuHbOjaF__9VVm0xNz0,39789
93
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_enums.py,sha256=t_w8e-P9Pzex_XGWiOoLVt-aAWcmkTgyEkeKtAChMBw,6480
94
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_structures.py,sha256=UQv1xK3mIVnxzNjh0Kq1pLnKFvUf-HdA4KTIx8pgjcU,19330
95
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_device.py,sha256=98M7INyQnb688AhfZn12yjCcl430ouWpSMVY7SY8cc0,66903
96
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_dongle.py,sha256=uu3Pw6isEim73L5p9-UcPZMXrl3dM6sQkWYx7c9Bvo8,1094
97
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_event_reader.py,sha256=ks6i5ZRb6AA0g6iT0jhVQdwBY5rR3SoiNGpS89nDOD4,1847
98
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_channel.py,sha256=koUs_9rMsgXLh5482jeTjSRSOZjpaD556RbqXm2I074,1479
99
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_config.py,sha256=s7gvjnV3ZTUPzZC8wctWGbzrYV0OFmy3Ye85yDkmf7Y,5607
100
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_const.py,sha256=Kh0tyxtjb8wge8JllgFI69vOR04IRTw5OzaYaTg714E,1000
101
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_impedance_channel.py,sha256=ERbbvaH2SoqOSYnotfUygUv_u5pb7zibQkSfrVmPNd8,1616
102
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_info.py,sha256=bO0cyarC52Hj5DVwFDyjAxEPxxK7V16nTDeO-Ln-90U,3280
103
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/dongle_info.py,sha256=QMqVPsgPiHgBKWtpzVCOQvHuJdN3rs_K_g9yINbde54,1123
104
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/download_measurement.py,sha256=WqeJk_V8yRj6SSU7DDyD6XGrw5gk8nnDOfXUldYGAl4,2628
105
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/eeg_measurement.py,sha256=n8tIuF7KxvMj8r2SHrzoc80W8m2ahrUqFhBR6ufkI9g,6110
106
+ packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/impedance_measurement.py,sha256=GMu1Rda8PE-RDVisohKsAgbIXvGTgareDN6SAUy2jhI,5040
107
+ packages/tmsi/build/lib/apex_sdk/device/threads/conversion_thread.py,sha256=oPHKoOllOzrzzonNr96MLIMTK0EbFqUvTW5oxDEtjp8,1604
108
+ packages/tmsi/build/lib/apex_sdk/device/threads/sampling_thread.py,sha256=wgwO3piD9grcoo6aTsIt8W9NsqWFhpLIouYg6gfqX3s,1565
109
+ packages/tmsi/build/lib/apex_sdk/sample_data_server/__init__.py,sha256=6Di1HJjx6OgxS75GsVn6ILRCBHlV1JW4lSc2cq4dpDY,986
110
+ packages/tmsi/build/lib/apex_sdk/sample_data_server/event_data.py,sha256=XOTzgnAW_IVEu0XtqjApLv7PWamne-I0lZRQA-3cunQ,1180
111
+ packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data.py,sha256=FNuqQqdZDfTAZF3jP25rFsnnq3R7MiktiGCuHYJrLfI,1416
112
+ packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data_server.py,sha256=Yap6iqoJ7Opb6BFdK22CTreifXYGch5Ojx4Uig-Juog,4816
113
+ packages/tmsi/build/lib/apex_sdk/tmsi_errors/error.py,sha256=p0_VEr9W-sQ07b5KE5YFGkkr4jV0GBSRoBsMuaZi2Qg,5047
114
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/decorators.py,sha256=ce2M6Fr4YKvKcRicTCQuBUYVnfy5Z-Wf1aw33LpZP3U,1782
115
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/logger_filter.py,sha256=Xw1Vsf-aRyCwPG4W38V8IoTIiofmRGn7ARuS6JOurDw,1150
116
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/singleton.py,sha256=rotFF0Hh97tMN68gHm702yOuGscue3Qs73nu8N9ccko,1196
117
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/support_functions.py,sha256=ysuvPQejAIW3NFcb2XhC7qTWqFfSac_wXUULbTyrATQ,1949
118
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/tmsi_logger.py,sha256=vqcGHCg-bmKjlggFv_4j2q1TRjQIkIaHQ1tT6GqAdyw,3459
119
+ packages/tmsi/build/lib/apex_sdk/tmsi_utilities/apex/apex_structure_generator.py,sha256=aPpLmeYXtoMGNUGEGunF6gtk7Z6Q4UYPHixEm29s8MA,5414
120
+ py_neuromodulation/FieldTrip.py,sha256=cq4BIibMvcpyAHd7U8eEK4AhVSOTrRKXcywtgtc-Mg4,18597
121
+ py_neuromodulation/__init__.py,sha256=3aujkEqF4dzt8WKtK7gaolh782UsR5FFkqcg7fOtze4,296
122
+ py_neuromodulation/_write_example_dataset_helper.py,sha256=b-kG1JiuIhebVSNCrumTOgdXPTmxXkkduCpUFlmMlOg,2530
123
+ py_neuromodulation/nm_EpochStream.py,sha256=fqLNIQRVtcQOMtOyw-omu3KegEs6tWxZI-GQWqdAeG0,2595
124
+ py_neuromodulation/nm_IO.py,sha256=SFOsCMwu2XOYUjFaDauciVkZsq0YG-Vx4rrevqNDd4g,11688
125
+ py_neuromodulation/nm_RMAP.py,sha256=2wHHD9gwW6Y3XZnGUwmDrWHcz7HjwwLqcwwSjADA0-Q,15791
126
+ py_neuromodulation/nm_across_patient_decoding.py,sha256=9Mwu5o5cUAbtSP8BTx4c-BJfJZtk8wsMx_WH0VIegdI,38690
127
+ py_neuromodulation/nm_analysis.py,sha256=ZIuc1cqG5_2DvoTwvSDL88nyYa_XglANq90xUqeSEXM,38528
128
+ py_neuromodulation/nm_artifacts.py,sha256=KZZ68Q13P64vp05vRiLZ9CPmyWurhcB6K0ldY91axCI,692
129
+ py_neuromodulation/nm_bispectra.py,sha256=7XduXwvryckEMlNeRqKLioNK90rW8AZpvA_Z2I7gThI,6322
130
+ py_neuromodulation/nm_bursts.py,sha256=2xMJjluXttjeijm9e7EaaJJ2fcnnX1kLb600TiJvCzY,7710
131
+ py_neuromodulation/nm_coherence.py,sha256=Iy8FtYBb7qaRFGpzHwOK_IA6O4bvtrumcIyS_Umh0aY,7435
132
+ py_neuromodulation/nm_cohortwrapper.py,sha256=eJVCBW745DB5MX7OBVJh2ZAT1vy-3-_2MCHnjrsO9qI,16643
133
+ py_neuromodulation/nm_decode.py,sha256=d15D-l0RUAcW8FfXyDcPaNwRpS9wuq1XK-pWmImPHDg,35645
134
+ py_neuromodulation/nm_define_nmchannels.py,sha256=8rjZoDIwhsIgdqfSxScaJvY9tNGWNLecTLxEmvhHMuE,11074
135
+ py_neuromodulation/nm_eval_timing.py,sha256=JcnLYyxjH8hvNX7rbJ4PEj-NZzqs2NMGOhyuQQuGiYc,8800
136
+ py_neuromodulation/nm_features.py,sha256=IsfN6nFE_f0OPFaHPjFhjPxMO7pKc6pxkylt6V09LEk,3527
137
+ py_neuromodulation/nm_features_abc.py,sha256=6CX8NHbtpGDY-l9K4CUomlRJVZHPmo6KHJX4RJ1YolM,917
138
+ py_neuromodulation/nm_filter.py,sha256=dusgRby4xDxrj62uINuucm0juCwpGb7Lr3iN4IOs8R4,7542
139
+ py_neuromodulation/nm_filter_preprocessing.py,sha256=rR1QKaf9q_7sWB5J129rBTz5H2PO6rvGxMmU86-npi4,3366
140
+ py_neuromodulation/nm_fooof.py,sha256=rOpKyKzTTnMWBplujsw5kzHAvILBGuCjP0q0UozTIiM,6147
141
+ py_neuromodulation/nm_generator.py,sha256=YPa-1X5gCUVSpxTT9upbbY4kjqoVlRd5njQHBjgpAgk,1088
142
+ py_neuromodulation/nm_hjorth_raw.py,sha256=EvXOBr3k9Q5xypv1Gj8GFqa5EJ_wRYNDGgGnXCUekiM,2180
143
+ py_neuromodulation/nm_kalmanfilter.py,sha256=dgs7_XMBpLEE49l6aAVNA4d6ovTS63CZsAI472eG3JA,2006
144
+ py_neuromodulation/nm_linelength.py,sha256=0iZO7j6g7IeprvlEvWG6a_CaUL2p0sQKGiFgDrzYtxk,954
145
+ py_neuromodulation/nm_mne_connectivity.py,sha256=UCgLRQSrzl0OpOhHdUc1iqWr6fPiHZeU0zNeZfaplJE,3907
146
+ py_neuromodulation/nm_nolds.py,sha256=KZr3ZKqvKJkYKh2BMYuuUMkP8hhmJTUgtLZrE8l-DqQ,3660
147
+ py_neuromodulation/nm_normalization.py,sha256=9v3fiNT0HexD9ycp2gB6BPp_ch86kYez_YNI9yB3zGw,7574
148
+ py_neuromodulation/nm_oscillatory.py,sha256=dvxiytWXwd9_gsvroUhDQkQZBTIZzQEhl2XS2QzmOIQ,16476
149
+ py_neuromodulation/nm_plots.py,sha256=B5A91ejZwoxx2YRa3fB6G_fNamdCm27JSOInqF1OfWc,17869
150
+ py_neuromodulation/nm_projection.py,sha256=g8VersyOGiWj3PjR_U6dvLttsp6CHi_GCyYnu_ha8uc,15309
151
+ py_neuromodulation/nm_rereference.py,sha256=SApVkeWdMmMfD1sr77HSs7MW3eQwVHKEhfm-0zyBu9M,3381
152
+ py_neuromodulation/nm_resample.py,sha256=MSMu8gvmrYZ194fAVJdlB_4yEkuGKHgHrLd11zBDRY0,1122
153
+ py_neuromodulation/nm_run_analysis.py,sha256=kZKcVkAbeAhKzoXyFaNK4Vo_aJTTSAVZxxr8y3GMyCc,15046
154
+ py_neuromodulation/nm_settings.py,sha256=7d17vwSGrABxQJ7C6x3FqP8kdboUFpm5LrN4djoVlFA,1775
155
+ py_neuromodulation/nm_sharpwaves.py,sha256=mk6DYjO-834aCEk9-x24DP6b1rSA9gC1Jf6in8GPAgA,16891
156
+ py_neuromodulation/nm_stats.py,sha256=wgYk3jzrfSNEZEWdPSpxQcGcsdNs-vhfKvRhMptSbXM,16029
157
+ py_neuromodulation/nm_stream_abc.py,sha256=hQHFVOnCdZiVfq9NyS5npFQ4DFqJUsY4jbaegEhMvgk,7755
158
+ py_neuromodulation/nm_stream_offline.py,sha256=OCXUCgVzbXKnmyWJ8aeMBFFuoWwZozQEBxygaSzCkts,12366
159
+ py_neuromodulation/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ py_neuromodulation/utils/_logging.py,sha256=vADt0XAWSzDAvhuOfaOjyZRSZCA11Pym2wi0uvPIoTo,738
161
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ tests/conftest.py,sha256=u4p-GjX85YVITrUYxH35ZqKdjLWqMZQZm3J29OtjEYw,3107
163
+ tests/test_all_examples.py,sha256=t9DulIlDkhjSXw9oZ4B-CChB1Q3_V48fFUOaOowA1RE,285
164
+ tests/test_all_features.py,sha256=KyfR3HMxVUkuBibVp8lnnhG29aOiSO0gvY91wt2QUpo,1708
165
+ tests/test_bispectra.py,sha256=5llgbiDmYzxlUCvrmjPP5SYUcpLgASiiGOcrXI-IR4U,1599
166
+ tests/test_bursts.py,sha256=NRkG8AutSfgZlNBTriSWuiBGdktoVZKrV9VJgcCMULc,2806
167
+ tests/test_feature_sampling_rates.py,sha256=IJM_vQ9ykrInXGg1EyThaBu6WdquIVYxSFgy5hPDtsg,4377
168
+ tests/test_fooof.py,sha256=oOY9O44Icj4tDhG8G_QtTMcy24RgN7JP7nKZeAR2RBM,601
169
+ tests/test_initalization_offline_stream.py,sha256=iWr5xu6m5TfD-_EpK3Tk_OXAPKb97XOYdK_p5WJt0w8,1326
170
+ tests/test_multiprocessing.py,sha256=uuJZDPEAN_WriXB7boHU-Pukf88Oj9xokwNk1e8uglY,2020
171
+ tests/test_nan_values.py,sha256=-rVU4XyaTufAKu1lywiaHjpqeqAV2lRDbimYm-C5-7w,808
172
+ tests/test_nm_filter.py,sha256=tLyP8kV5On4BrkO5hC4GSYFmV_w9JYJ19WxdkEGjC5s,3050
173
+ tests/test_nm_resample.py,sha256=0MD_X5fbztOEqYG6NbR_0yEV_ztH7BcyqRAyzbVrFM0,2104
174
+ tests/test_normalization_settings.py,sha256=_-KcFdsJOgThL_DtY9BCFmoDhZ70nT-Cjtxi369sPeE,3981
175
+ tests/test_notch_filter.py,sha256=CQbuqIn9MhTzvs4st2z4dXpxTGU2b2N3vTb71EW3S-A,987
176
+ tests/test_osc_features.py,sha256=UHPtlRr7WMyT5xrWBs4TJe793QRQJtk_iPqknfrw_F4,13046
177
+ tests/test_preprocessing_filter.py,sha256=_i6IrFJMhTBO7TuvDQgchRv7led1MXg7n6Rv4Kvdunk,5622
178
+ tests/test_rereference.py,sha256=Hrx8zwsNJDE2AEcaMpgSWEMmBmO-jRYOtfOeaPdKA3Q,5174
179
+ tests/test_sampling.py,sha256=63Eu5NZrExZI7UdnlFq9b3FA8n6KxhW-zkqlaL6bMTQ,2000
180
+ tests/test_settings_change_after_init.py,sha256=joG6_urbu941dmF-zo1JQstgjpVlM0wdRnKe-aMTd-M,2262
181
+ tests/test_sharpwave.py,sha256=lyzo8hWMO19sMccR-1vl5FGRajl7hVZXrM46uS8Sfyg,5588
182
+ tests/test_target_channel_add.py,sha256=N15l4vW9H73RveEx3irwcYmKQEvBk9Nzysblc-Z0KI8,3045
183
+ tests/test_timing.py,sha256=o2Sxbx9LMEpG6jIvU2kI1D1_AhoVuz3_nphWbSbRqZM,2592
184
+ py_neuromodulation-0.0.3.dist-info/LICENSE,sha256=V6yfss2JKJxeY-TsaEVqVomfd8ttziMyB9ik5L-BI7o,1139
185
+ py_neuromodulation-0.0.3.dist-info/METADATA,sha256=YSRxaxhxOF8Mq_1rO67M4I9TMx3ut2Olvd2B-5_y94c,7229
186
+ py_neuromodulation-0.0.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
187
+ py_neuromodulation-0.0.3.dist-info/top_level.txt,sha256=RAWmR9vjiJ8zRtHRd0SlX4FrBkrgSujkFEJI1wU6GlQ,48
188
+ py_neuromodulation-0.0.3.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.9.0
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
+
@@ -0,0 +1,5 @@
1
+ docs
2
+ examples
3
+ packages
4
+ py_neuromodulation
5
+ tests
tests/__init__.py ADDED
File without changes