py-neuromodulation 0.0.3__tar.gz → 0.0.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 (225) hide show
  1. py_neuromodulation-0.0.4/.gitignore +175 -0
  2. py_neuromodulation-0.0.4/.readthedocs.yaml +25 -0
  3. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/PKG-INFO +182 -182
  4. py_neuromodulation-0.0.4/examples/README.rst +5 -0
  5. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
  6. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +34 -0
  7. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +106 -0
  8. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +119 -0
  9. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
  10. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
  11. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
  12. py_neuromodulation-0.0.4/py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
  13. py_neuromodulation-0.0.4/py_neuromodulation/data/README +6 -0
  14. py_neuromodulation-0.0.4/py_neuromodulation/data/dataset_description.json +8 -0
  15. py_neuromodulation-0.0.4/py_neuromodulation/data/participants.json +32 -0
  16. py_neuromodulation-0.0.4/py_neuromodulation/data/participants.tsv +2 -0
  17. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +5 -0
  18. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +11 -0
  19. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +11 -0
  20. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
  21. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +18 -0
  22. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +35 -0
  23. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +13 -0
  24. py_neuromodulation-0.0.4/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +2 -0
  25. py_neuromodulation-0.0.4/py_neuromodulation/grid_cortex.tsv +40 -0
  26. py_neuromodulation-0.0.4/py_neuromodulation/grid_subcortex.tsv +1429 -0
  27. py_neuromodulation-0.0.4/py_neuromodulation/nm_settings.json +338 -0
  28. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_stream_offline.py +7 -6
  29. py_neuromodulation-0.0.4/py_neuromodulation/plots/STN_surf.mat +0 -0
  30. py_neuromodulation-0.0.4/py_neuromodulation/plots/Vertices.mat +0 -0
  31. py_neuromodulation-0.0.4/py_neuromodulation/plots/faces.mat +0 -0
  32. py_neuromodulation-0.0.4/py_neuromodulation/plots/grid.mat +0 -0
  33. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/pyproject.toml +82 -102
  34. py_neuromodulation-0.0.4/requirements_rtd.txt +34 -0
  35. py_neuromodulation-0.0.4/tox.ini +16 -0
  36. py_neuromodulation-0.0.3/docs/build/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
  37. py_neuromodulation-0.0.3/docs/build/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -233
  38. py_neuromodulation-0.0.3/docs/build/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
  39. py_neuromodulation-0.0.3/docs/build/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
  40. py_neuromodulation-0.0.3/docs/build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
  41. py_neuromodulation-0.0.3/docs/build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -239
  42. py_neuromodulation-0.0.3/docs/build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
  43. py_neuromodulation-0.0.3/docs/build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
  44. py_neuromodulation-0.0.3/docs/build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
  45. py_neuromodulation-0.0.3/docs/build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
  46. py_neuromodulation-0.0.3/docs/build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
  47. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/0d0d0a76e8f648d5d3cbc47da6351932/plot_real_time_demo.py +0 -97
  48. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -240
  49. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/5d73cadc59a8805c47e3b84063afc157/plot_example_BIDS.py +0 -233
  50. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/7660317fa5a6bfbd12fcca9961457fc4/plot_example_rmap_computing.py +0 -63
  51. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
  52. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/839e5b319379f7fd9e867deb00fd797f/plot_example_gridPointProjection.py +0 -210
  53. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/ae8be19afe5e559f011fc9b138968ba0/plot_first_demo.py +0 -192
  54. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/b8b06cacc17969d3725a0b6f1d7741c5/plot_example_sharpwave_analysis.py +0 -219
  55. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/c31a86c0b68cb4167d968091ace8080d/plot_example_add_feature.py +0 -68
  56. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
  57. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -189
  58. py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
  59. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_0_first_demo.py +0 -189
  60. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_1_example_BIDS.py +0 -240
  61. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_2_example_add_feature.py +0 -76
  62. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_3_example_sharpwave_analysis.py +0 -219
  63. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_4_example_gridPointProjection.py +0 -210
  64. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_5_example_rmap_computing.py +0 -64
  65. py_neuromodulation-0.0.3/docs/source/auto_examples/plot_6_real_time_demo.py +0 -121
  66. py_neuromodulation-0.0.3/docs/source/conf.py +0 -105
  67. py_neuromodulation-0.0.3/examples/plot_0_first_demo.py +0 -189
  68. py_neuromodulation-0.0.3/examples/plot_1_example_BIDS.py +0 -240
  69. py_neuromodulation-0.0.3/examples/plot_2_example_add_feature.py +0 -76
  70. py_neuromodulation-0.0.3/examples/plot_3_example_sharpwave_analysis.py +0 -219
  71. py_neuromodulation-0.0.3/examples/plot_4_example_gridPointProjection.py +0 -210
  72. py_neuromodulation-0.0.3/examples/plot_5_example_rmap_computing.py +0 -64
  73. py_neuromodulation-0.0.3/examples/plot_6_real_time_demo.py +0 -121
  74. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/__init__.py +0 -4
  75. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/decoder.py +0 -104
  76. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/features.py +0 -163
  77. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/helpers.py +0 -15
  78. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/run_decoding.py +0 -345
  79. py_neuromodulation-0.0.3/packages/realtime_decoding/build/lib/realtime_decoding/trainer.py +0 -54
  80. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/__init__.py +0 -37
  81. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_formats/__init__.py +0 -36
  82. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_formats/lsl_stream_writer.py +0 -200
  83. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_file_writer.py +0 -496
  84. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_to_edf_converter.py +0 -236
  85. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_formats/xdf_file_writer.py +0 -977
  86. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_readers/__init__.py +0 -35
  87. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_readers/edf_reader.py +0 -116
  88. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_readers/poly5reader.py +0 -294
  89. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_readers/xdf_reader.py +0 -229
  90. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiFileFormats/file_writer.py +0 -102
  91. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/__init__.py +0 -2
  92. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/gui/__init__.py +0 -39
  93. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/gui/_plotter_gui.py +0 -234
  94. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/gui/plotting_gui.py +0 -440
  95. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/plotters/__init__.py +0 -44
  96. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/plotters/hd_emg_plotter.py +0 -446
  97. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/plotters/impedance_plotter.py +0 -589
  98. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiPlotters/plotters/signal_plotter.py +0 -1326
  99. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/__init__.py +0 -54
  100. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/device.py +0 -588
  101. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/__init__.py +0 -34
  102. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/saga/TMSi_Device_API.py +0 -1764
  103. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/saga/__init__.py +0 -34
  104. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_device.py +0 -1366
  105. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_types.py +0 -520
  106. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/devices/saga/xml_saga_config.py +0 -165
  107. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/error.py +0 -95
  108. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/sample_data.py +0 -63
  109. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/sample_data_server.py +0 -99
  110. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/settings.py +0 -45
  111. py_neuromodulation-0.0.3/packages/tmsi/build/lib/TMSiSDK/tmsi_device.py +0 -111
  112. py_neuromodulation-0.0.3/packages/tmsi/build/lib/__init__.py +0 -4
  113. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/__init__.py +0 -34
  114. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/__init__.py +0 -41
  115. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API.py +0 -1009
  116. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_enums.py +0 -239
  117. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_structures.py +0 -668
  118. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_device.py +0 -1611
  119. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_dongle.py +0 -38
  120. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_event_reader.py +0 -57
  121. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_channel.py +0 -44
  122. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_config.py +0 -150
  123. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_const.py +0 -36
  124. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_impedance_channel.py +0 -48
  125. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_info.py +0 -108
  126. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/dongle_info.py +0 -39
  127. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/download_measurement.py +0 -77
  128. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/eeg_measurement.py +0 -150
  129. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/impedance_measurement.py +0 -129
  130. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/threads/conversion_thread.py +0 -59
  131. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/threads/sampling_thread.py +0 -57
  132. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_channel.py +0 -83
  133. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_device.py +0 -201
  134. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_device_enums.py +0 -103
  135. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_dongle.py +0 -43
  136. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_event_reader.py +0 -50
  137. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/device/tmsi_measurement.py +0 -118
  138. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/sample_data_server/__init__.py +0 -33
  139. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/sample_data_server/event_data.py +0 -44
  140. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data.py +0 -50
  141. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data_server.py +0 -136
  142. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_errors/error.py +0 -126
  143. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_sdk.py +0 -113
  144. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/apex/apex_structure_generator.py +0 -134
  145. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/decorators.py +0 -60
  146. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/logger_filter.py +0 -42
  147. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/singleton.py +0 -42
  148. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/support_functions.py +0 -72
  149. py_neuromodulation-0.0.3/packages/tmsi/build/lib/apex_sdk/tmsi_utilities/tmsi_logger.py +0 -98
  150. py_neuromodulation-0.0.3/py_neuromodulation.egg-info/PKG-INFO +0 -182
  151. py_neuromodulation-0.0.3/py_neuromodulation.egg-info/SOURCES.txt +0 -191
  152. py_neuromodulation-0.0.3/py_neuromodulation.egg-info/dependency_links.txt +0 -1
  153. py_neuromodulation-0.0.3/py_neuromodulation.egg-info/requires.txt +0 -33
  154. py_neuromodulation-0.0.3/py_neuromodulation.egg-info/top_level.txt +0 -9
  155. py_neuromodulation-0.0.3/setup.cfg +0 -4
  156. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/LICENSE +0 -0
  157. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/README.rst +0 -0
  158. {py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1 → py_neuromodulation-0.0.4/examples}/plot_2_example_add_feature.py +0 -0
  159. {py_neuromodulation-0.0.3/docs/build/_downloads/7e92dd2e6cc86b239d14cafad972ae4f → py_neuromodulation-0.0.4/examples}/plot_3_example_sharpwave_analysis.py +0 -0
  160. {py_neuromodulation-0.0.3/docs/build/_downloads/eaa4305c75b19a1e2eea941f742a6331 → py_neuromodulation-0.0.4/examples}/plot_4_example_gridPointProjection.py +0 -0
  161. {py_neuromodulation-0.0.3/docs/build/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3 → py_neuromodulation-0.0.4/examples}/plot_5_example_rmap_computing.py +0 -0
  162. {py_neuromodulation-0.0.3/docs/source/_build/html/_downloads/c2db0bf2b334d541b00662b991682256 → py_neuromodulation-0.0.4/examples}/plot_6_real_time_demo.py +0 -0
  163. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/FieldTrip.py +0 -0
  164. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/__init__.py +0 -0
  165. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/_write_example_dataset_helper.py +0 -0
  166. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_EpochStream.py +0 -0
  167. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_IO.py +0 -0
  168. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_RMAP.py +0 -0
  169. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_across_patient_decoding.py +0 -0
  170. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_analysis.py +0 -0
  171. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_artifacts.py +0 -0
  172. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_bispectra.py +0 -0
  173. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_bursts.py +0 -0
  174. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_coherence.py +0 -0
  175. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_cohortwrapper.py +0 -0
  176. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_decode.py +0 -0
  177. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_define_nmchannels.py +0 -0
  178. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_eval_timing.py +0 -0
  179. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_features.py +0 -0
  180. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_features_abc.py +0 -0
  181. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_filter.py +0 -0
  182. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_filter_preprocessing.py +0 -0
  183. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_fooof.py +0 -0
  184. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_generator.py +0 -0
  185. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_hjorth_raw.py +0 -0
  186. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_kalmanfilter.py +0 -0
  187. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_linelength.py +0 -0
  188. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_mne_connectivity.py +0 -0
  189. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_nolds.py +0 -0
  190. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_normalization.py +0 -0
  191. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_oscillatory.py +0 -0
  192. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_plots.py +0 -0
  193. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_projection.py +0 -0
  194. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_rereference.py +0 -0
  195. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_resample.py +0 -0
  196. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_run_analysis.py +0 -0
  197. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_settings.py +0 -0
  198. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_sharpwaves.py +0 -0
  199. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_stats.py +0 -0
  200. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/nm_stream_abc.py +0 -0
  201. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/utils/__init__.py +0 -0
  202. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/py_neuromodulation/utils/_logging.py +0 -0
  203. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/__init__.py +0 -0
  204. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/conftest.py +0 -0
  205. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_all_examples.py +0 -0
  206. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_all_features.py +0 -0
  207. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_bispectra.py +0 -0
  208. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_bursts.py +0 -0
  209. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_feature_sampling_rates.py +0 -0
  210. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_fooof.py +0 -0
  211. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_initalization_offline_stream.py +0 -0
  212. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_multiprocessing.py +0 -0
  213. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_nan_values.py +0 -0
  214. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_nm_filter.py +0 -0
  215. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_nm_resample.py +0 -0
  216. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_normalization_settings.py +0 -0
  217. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_notch_filter.py +0 -0
  218. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_osc_features.py +0 -0
  219. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_preprocessing_filter.py +0 -0
  220. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_rereference.py +0 -0
  221. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_sampling.py +0 -0
  222. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_settings_change_after_init.py +0 -0
  223. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_sharpwave.py +0 -0
  224. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_target_channel_add.py +0 -0
  225. {py_neuromodulation-0.0.3 → py_neuromodulation-0.0.4}/tests/test_timing.py +0 -0
@@ -0,0 +1,175 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .pypirc/
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ pip-wheel-metadata/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ .python-version
87
+
88
+ # pipenv
89
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
91
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
92
+ # install all needed dependencies.
93
+ #Pipfile.lock
94
+
95
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
96
+ __pypackages__/
97
+
98
+ # Celery stuff
99
+ celerybeat-schedule
100
+ celerybeat.pid
101
+
102
+ # SageMath parsed files
103
+ *.sage.py
104
+
105
+ # Environments
106
+ .env
107
+ .venv
108
+ env/
109
+ venv/
110
+ ENV/
111
+ env.bak/
112
+ venv.bak/
113
+
114
+ # Visual Studio Code
115
+ .vscode
116
+
117
+ # PyCharm
118
+ .idea
119
+
120
+ # Spyder project settings
121
+ .spyderproject
122
+ .spyproject
123
+
124
+ # Rope project settings
125
+ .ropeproject
126
+
127
+ # mkdocs documentation
128
+ /site
129
+
130
+ # mypy
131
+ .mypy_cache/
132
+ .dmypy.json
133
+ dmypy.json
134
+
135
+ # Pyre type checker
136
+ .pyre/
137
+
138
+ # Ignore pickles
139
+ *.pkl
140
+ **/*.pkl
141
+ *.p
142
+
143
+ .pdf
144
+
145
+ sphinx/sub/*
146
+
147
+ docs/build/*
148
+ docs/source/_build/*
149
+ docs/previous/*
150
+ docs/source/auto_examples/*
151
+ docs/source/data/*
152
+
153
+ examples/data/derivatives/*
154
+ examples/other_examples/*
155
+
156
+ examples/sub/*
157
+ examples/utils/*
158
+
159
+ sub/
160
+
161
+ py_neuromodulation/data/derivatives/*
162
+
163
+ requirements.lock
164
+ requirements-dev.lock
165
+
166
+ .python-version
167
+
168
+ py_neuromodulation/ConnectivityDecoding/connectome_folder/*
169
+
170
+ plot_0_first_demo.py
171
+
172
+ requirements.lock
173
+ requirements-dev.lock
174
+
175
+ plot_1_example_BIDS.py
@@ -0,0 +1,25 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the version of Python and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.11"
13
+
14
+ # Build documentation in the docs/ directory with Sphinx
15
+ sphinx:
16
+ configuration: docs/source/conf.py
17
+ builder: html
18
+ fail_on_warning: false
19
+
20
+ # Optionally declare the Python requirements required to build your docs
21
+ python:
22
+ install:
23
+ - method: pip
24
+ path: .
25
+ - requirements: requirements_rtd.txt
@@ -1,182 +1,182 @@
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).
1
+ Metadata-Version: 2.3
2
+ Name: py_neuromodulation
3
+ Version: 0.0.4
4
+ Summary: Real-time analysis of intracranial neurophysiology recordings.
5
+ Project-URL: bugtracker, https://github.com/neuromodulation/py_neuromodulation/issues
6
+ Project-URL: repository, https://github.com/neuromodulation/py_neuromodulation
7
+ Author-email: Timon Merk <timon.merk@charite.de>
8
+ Maintainer: Timon Merk
9
+ License: MIT License
10
+
11
+ Copyright (c) 2021 Interventional Cognitive Neuromodulation - Neumann Lab Berlin
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in all
21
+ copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ SOFTWARE.
30
+ License-File: LICENSE
31
+ Keywords: dbs,deep-brain-stimulation,ecog,eeg,electrocorticography,ieeg,machine-learning,real-time
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
+ Requires-Dist: black>=24.2.0
38
+ Requires-Dist: filterpy>=1.4.5
39
+ Requires-Dist: fooof
40
+ Requires-Dist: hatch>=1.9.4
41
+ Requires-Dist: imbalanced-learn
42
+ Requires-Dist: ipython
43
+ Requires-Dist: joblib>=1.3.2
44
+ Requires-Dist: matplotlib>=3.3.4
45
+ Requires-Dist: mne
46
+ Requires-Dist: mne-bids>=0.8
47
+ Requires-Dist: mne-connectivity
48
+ Requires-Dist: mrmr-selection
49
+ Requires-Dist: nolds
50
+ Requires-Dist: notebook
51
+ Requires-Dist: numpy>=1.21.2
52
+ Requires-Dist: pandas>=1.2.2
53
+ Requires-Dist: pip
54
+ Requires-Dist: pyarrow>=14.0.2
55
+ Requires-Dist: pybids
56
+ Requires-Dist: pybispectra>=1.0.0
57
+ Requires-Dist: pynput
58
+ Requires-Dist: pyparrm
59
+ Requires-Dist: pytest>=8.0.2
60
+ Requires-Dist: scikit-image
61
+ Requires-Dist: scikit-learn>=0.24.2
62
+ Requires-Dist: scikit-optimize
63
+ Requires-Dist: scipy>=1.7.1
64
+ Requires-Dist: seaborn>=0.11
65
+ Requires-Dist: wget
66
+ Provides-Extra: dev
67
+ Requires-Dist: black; extra == 'dev'
68
+ Requires-Dist: pytest; extra == 'dev'
69
+ Requires-Dist: pytest-cov; extra == 'dev'
70
+ Description-Content-Type: text/x-rst
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,5 @@
1
+ .. _examples-index:
2
+
3
+ Examples
4
+ ========
5
+
@@ -0,0 +1,34 @@
1
+ addpath('C:\code\wjn_toolbox');
2
+ addpath(genpath('C:\code\leaddbs'));
3
+ addpath(genpath('C:\code\spm12'));
4
+
5
+
6
+ %%
7
+ ctx = wjn_mni_cortex();
8
+ downsample_ctx=ctx.vertices(1:20:end,:); %downsample by 10
9
+
10
+ save("downsampled_cortex.mat", "downsample_ctx")
11
+
12
+ figure;
13
+ scatter3(downsample_ctx(:,1), downsample_ctx(:,2), downsample_ctx(:,3), 'filled');
14
+ title('3D Scatter Plot Example');
15
+ xlabel('X-axis');
16
+ ylabel('Y-axis');
17
+ zlabel('Z-axis');
18
+ grid on;
19
+
20
+
21
+
22
+ PATH_OUT = "D:\Connectome_RMAP_OUT\ROIs";
23
+
24
+ for a =1:size(downsample_ctx,1)
25
+ disp(a)
26
+ roiname = fullfile(PATH_OUT, strcat('ROI-', string(a), '.nii'));
27
+ mni = [downsample_ctx(a, 1) downsample_ctx(a, 2) downsample_ctx(a, 3)];
28
+ wjn_spherical_roi(roiname,mni,4);
29
+ end
30
+
31
+
32
+
33
+
34
+