py-neuromodulation 0.0.6__tar.gz → 0.0.7__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.
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/.github/workflows/python-publish.yml +1 -1
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/.gitignore +3 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/PKG-INFO +10 -19
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/README.rst +6 -16
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/default_settings.yaml +1 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/bispectra.py +3 -7
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/coherence.py +11 -6
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/pyproject.toml +5 -3
- py_neuromodulation-0.0.7/tests/test_coherence.py +119 -0
- py_neuromodulation-0.0.6/sub_SETTINGS.yaml +0 -112
- py_neuromodulation-0.0.6/sub_SIDECAR.json +0 -6
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/.github/workflows/docs_pages.yml +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/.github/workflows/tests.yml +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/LICENSE +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/Makefile +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/make.bat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/CEBRA_embedding.png +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/RMAP_figure.png +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/css/RMAP_figure.png +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/css/project-template.css +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_templates/custom-class-template.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_templates/custom-module-template.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/api_documentation.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/conf.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/contributing.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/index.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/installation.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_IO.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_RMAP.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_analysis.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_bursts.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_coherence.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_decode.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_define_nmchannels.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_features.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_filter.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_fooof.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_generator.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_hjorth.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_kalmanfilter.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_linelength.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_mne_connectivity.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_nolds.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_normalization.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_oscillatory.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_plots.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_projection.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_rereference.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_resample.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_run_analysis.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_settings.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_sharpwaves.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_stats.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_stream.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/nm_stream_abc.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/usage.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/README.rst +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.html +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.ipynb +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/example_rmap.ipynb +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_2_example_add_feature.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_3_example_sharpwave_analysis.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_4_example_gridPointProjection.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_5_example_rmap_computing.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_6_real_time_demo.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_7_lsl_example.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_8_cebra_example.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/RMAP.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/decode.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/feature_reader.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/plots.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/stats.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/README +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/dataset_description.json +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.json +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/bandpower.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/bursts.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/feature_processor.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/fooof.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/hjorth_raw.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/linelength.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/mne_connectivity.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/nolds.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/oscillatory.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/sharpwaves.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/kalman_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/kalman_filter_external.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/mne_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/notch_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_cortex.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_subcortex.tsv +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/libpugixml.so.1.12 +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bionic_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bookworm_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/focal_amd46/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_x86/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/noble_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/amd64/liblsl.1.16.2.dylib +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/arm64/liblsl.1.16.0.dylib +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/amd64/liblsl.1.16.2.dll +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/x86/liblsl.1.16.2.dll +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/STN_surf.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/Vertices.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/faces.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/grid.mat +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/artifacts.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/data_preprocessor.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/filter_preprocessing.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/normalization.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/projection.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/rereference.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/resample.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/data_processor.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/generator.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/mnelsl_player.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/mnelsl_stream.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/settings.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/stream.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/channels.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/database.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/io.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/keyboard.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/logging.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/utils/types.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/__init__.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/conftest.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_all_examples.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_all_features.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_bispectra.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_bursts.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_database.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_feature_sampling_rates.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_fooof.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_initalization_offline_stream.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_lsl_stream.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_nan_values.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_nm_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_nm_resample.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_normalization_settings.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_notch_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_osc_features.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_preprocessing_filter.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_rereference.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_sampling.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_settings_change_after_init.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_sharpwave.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_target_channel_add.py +0 -0
- {py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_timing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: py_neuromodulation
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: Real-time analysis of intracranial neurophysiology recordings.
|
|
5
5
|
Project-URL: bugtracker, https://github.com/neuromodulation/py_neuromodulation/issues
|
|
6
6
|
Project-URL: repository, https://github.com/neuromodulation/py_neuromodulation
|
|
@@ -36,20 +36,21 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
36
36
|
Requires-Python: >=3.11
|
|
37
37
|
Requires-Dist: fooof
|
|
38
38
|
Requires-Dist: joblib>=1.3.2
|
|
39
|
+
Requires-Dist: llvmlite>=0.43.0
|
|
39
40
|
Requires-Dist: matplotlib>=3.9.0
|
|
40
41
|
Requires-Dist: mne
|
|
41
42
|
Requires-Dist: mne-bids>=0.8
|
|
42
43
|
Requires-Dist: mne-connectivity
|
|
43
44
|
Requires-Dist: mne-lsl>=1.2.0
|
|
44
45
|
Requires-Dist: mrmr-selection
|
|
45
|
-
Requires-Dist: nolds
|
|
46
|
+
Requires-Dist: nolds>=0.6.1
|
|
47
|
+
Requires-Dist: numba>=0.60.0
|
|
46
48
|
Requires-Dist: numpy>=1.21.2
|
|
47
49
|
Requires-Dist: pandas>=2.0.0
|
|
48
50
|
Requires-Dist: pyarrow>=14.0.2
|
|
49
51
|
Requires-Dist: pybispectra>=1.2.0
|
|
50
52
|
Requires-Dist: pydantic>=2.7.3
|
|
51
53
|
Requires-Dist: pyparrm
|
|
52
|
-
Requires-Dist: pyqt5
|
|
53
54
|
Requires-Dist: scikit-learn>=0.24.2
|
|
54
55
|
Requires-Dist: scikit-optimize
|
|
55
56
|
Requires-Dist: scipy>=1.7.1
|
|
@@ -108,7 +109,7 @@ The original intention for writing this toolbox was movement decoding from invas
|
|
|
108
109
|
The application however could be any neural decoding problem.
|
|
109
110
|
*py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
|
|
110
111
|
|
|
111
|
-
Find the documentation here
|
|
112
|
+
Find the documentation here neuromodulation.github.io/py_neuromodulation/ for example usage and parametrization.
|
|
112
113
|
|
|
113
114
|
Installation
|
|
114
115
|
============
|
|
@@ -119,25 +120,15 @@ py_neuromodulation requires at least python 3.10. For installation you can use p
|
|
|
119
120
|
|
|
120
121
|
pip install py-neuromodulation
|
|
121
122
|
|
|
122
|
-
Alternatively you can also
|
|
123
|
+
Alternatively you can also clone the pacakge and install it using `uv <https://docs.astral.sh/uv/>`_:
|
|
123
124
|
|
|
124
125
|
.. code-block::
|
|
125
126
|
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
uv python install 3.10
|
|
128
|
+
uv venv
|
|
129
|
+
. .venv/bin/activate
|
|
130
|
+
uv sync
|
|
128
131
|
|
|
129
|
-
Then install the packages listed in the `pyproject.toml`:
|
|
130
|
-
|
|
131
|
-
.. code-block::
|
|
132
|
-
|
|
133
|
-
pip install .
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
|
|
137
|
-
|
|
138
|
-
.. code-block::
|
|
139
|
-
|
|
140
|
-
ipython kernel install --user --name=pynm-test
|
|
141
132
|
|
|
142
133
|
Then *py_neuromodulation* can be imported via:
|
|
143
134
|
|
|
@@ -29,7 +29,7 @@ The original intention for writing this toolbox was movement decoding from invas
|
|
|
29
29
|
The application however could be any neural decoding problem.
|
|
30
30
|
*py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
|
|
31
31
|
|
|
32
|
-
Find the documentation here
|
|
32
|
+
Find the documentation here neuromodulation.github.io/py_neuromodulation/ for example usage and parametrization.
|
|
33
33
|
|
|
34
34
|
Installation
|
|
35
35
|
============
|
|
@@ -40,25 +40,15 @@ py_neuromodulation requires at least python 3.10. For installation you can use p
|
|
|
40
40
|
|
|
41
41
|
pip install py-neuromodulation
|
|
42
42
|
|
|
43
|
-
Alternatively you can also
|
|
43
|
+
Alternatively you can also clone the pacakge and install it using `uv <https://docs.astral.sh/uv/>`_:
|
|
44
44
|
|
|
45
45
|
.. code-block::
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
uv python install 3.10
|
|
48
|
+
uv venv
|
|
49
|
+
. .venv/bin/activate
|
|
50
|
+
uv sync
|
|
49
51
|
|
|
50
|
-
Then install the packages listed in the `pyproject.toml`:
|
|
51
|
-
|
|
52
|
-
.. code-block::
|
|
53
|
-
|
|
54
|
-
pip install .
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
|
|
58
|
-
|
|
59
|
-
.. code-block::
|
|
60
|
-
|
|
61
|
-
ipython kernel install --user --name=pynm-test
|
|
62
52
|
|
|
63
53
|
Then *py_neuromodulation* can be imported via:
|
|
64
54
|
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/bispectra.py
RENAMED
|
@@ -96,11 +96,8 @@ class Bispectra(NMFeature):
|
|
|
96
96
|
def calc_feature(self, data: np.ndarray) -> dict:
|
|
97
97
|
from pybispectra import compute_fft, WaveShape
|
|
98
98
|
|
|
99
|
-
# PyBispectra's compute_fft uses PQDM to parallelize the calculation per channel
|
|
100
|
-
# Is this necessary? Maybe the overhead of parallelization is not worth it
|
|
101
|
-
# considering that we incur in it once per batch of data
|
|
102
99
|
fft_coeffs, freqs = compute_fft(
|
|
103
|
-
data=np.expand_dims(data, axis=
|
|
100
|
+
data=np.expand_dims(data, axis=0),
|
|
104
101
|
sampling_freq=self.sfreq,
|
|
105
102
|
n_points=data.shape[1],
|
|
106
103
|
verbose=False,
|
|
@@ -127,12 +124,11 @@ class Bispectra(NMFeature):
|
|
|
127
124
|
f1s=tuple(self.settings.f1s), # type: ignore
|
|
128
125
|
f2s=tuple(self.settings.f2s), # type: ignore
|
|
129
126
|
)
|
|
127
|
+
waveshape = waveshape.results.get_results(copy=False) # can overwrite obj with array
|
|
130
128
|
|
|
131
129
|
feature_results = {}
|
|
132
130
|
for ch_idx, ch_name in enumerate(self.ch_names):
|
|
133
|
-
bispectrum = waveshape
|
|
134
|
-
ch_idx
|
|
135
|
-
] # Same as waveshape.results._data, skips a copy
|
|
131
|
+
bispectrum = waveshape[ch_idx]
|
|
136
132
|
|
|
137
133
|
for component in self.settings.components.get_enabled():
|
|
138
134
|
spectrum_ch = COMPONENT_DICT[component](bispectrum)
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/coherence.py
RENAMED
|
@@ -26,7 +26,7 @@ class CoherenceFeatures(BoolSelector):
|
|
|
26
26
|
mean_fband: bool = True
|
|
27
27
|
max_fband: bool = True
|
|
28
28
|
max_allfbands: bool = True
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
|
|
31
31
|
ListOfTwoStr = Annotated[list[str], Field(min_length=2, max_length=2)]
|
|
32
32
|
|
|
@@ -35,6 +35,7 @@ class CoherenceSettings(NMBaseModel):
|
|
|
35
35
|
features: CoherenceFeatures = CoherenceFeatures()
|
|
36
36
|
method: CoherenceMethods = CoherenceMethods()
|
|
37
37
|
channels: list[ListOfTwoStr] = []
|
|
38
|
+
nperseg: int = Field(default=128, ge=0)
|
|
38
39
|
frequency_bands: list[str] = Field(default=["high_beta"], min_length=1)
|
|
39
40
|
|
|
40
41
|
@field_validator("frequency_bands")
|
|
@@ -49,6 +50,7 @@ class CoherenceObject:
|
|
|
49
50
|
window: str,
|
|
50
51
|
fbands: list[FrequencyRange],
|
|
51
52
|
fband_names: list[str],
|
|
53
|
+
nperseg: int,
|
|
52
54
|
ch_1_name: str,
|
|
53
55
|
ch_2_name: str,
|
|
54
56
|
ch_1_idx: int,
|
|
@@ -65,6 +67,7 @@ class CoherenceObject:
|
|
|
65
67
|
self.ch_2 = ch_2_name
|
|
66
68
|
self.ch_1_idx = ch_1_idx
|
|
67
69
|
self.ch_2_idx = ch_2_idx
|
|
70
|
+
self.nperseg = nperseg
|
|
68
71
|
self.coh = coh
|
|
69
72
|
self.icoh = icoh
|
|
70
73
|
self.features_coh = features_coh
|
|
@@ -79,14 +82,15 @@ class CoherenceObject:
|
|
|
79
82
|
def get_coh(self, feature_results, x, y):
|
|
80
83
|
from scipy.signal import welch, csd
|
|
81
84
|
|
|
82
|
-
self.f, self.Pxx = welch(x, self.sfreq, self.window, nperseg=
|
|
83
|
-
self.Pyy = welch(y, self.sfreq, self.window, nperseg=
|
|
84
|
-
self.Pxy = csd(x, y, self.sfreq, self.window, nperseg=
|
|
85
|
+
self.f, self.Pxx = welch(x, self.sfreq, self.window, nperseg=self.nperseg)
|
|
86
|
+
self.Pyy = welch(y, self.sfreq, self.window, nperseg=self.nperseg)[1]
|
|
87
|
+
self.Pxy = csd(x, y, self.sfreq, self.window, nperseg=self.nperseg)[1]
|
|
85
88
|
|
|
86
89
|
if self.coh:
|
|
87
|
-
|
|
90
|
+
# XXX: gives different output to abs(Sxy) / sqrt(Sxx * Syy)
|
|
91
|
+
self.coh_val = np.abs(self.Pxy) ** 2 / (self.Pxx * self.Pyy)
|
|
88
92
|
if self.icoh:
|
|
89
|
-
self.icoh_val =
|
|
93
|
+
self.icoh_val = self.Pxy.imag / np.sqrt(self.Pxx * self.Pyy)
|
|
90
94
|
|
|
91
95
|
for coh_idx, coh_type in enumerate([self.coh, self.icoh]):
|
|
92
96
|
if coh_type:
|
|
@@ -180,6 +184,7 @@ class Coherence(NMFeature):
|
|
|
180
184
|
"hann",
|
|
181
185
|
fband_specs,
|
|
182
186
|
fband_names,
|
|
187
|
+
self.settings.nperseg,
|
|
183
188
|
ch_1_name,
|
|
184
189
|
ch_2_name,
|
|
185
190
|
ch_1_idx,
|
|
@@ -4,7 +4,7 @@ requires = ["hatchling"]
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "py_neuromodulation"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.7"
|
|
8
8
|
authors = [{ name = "Timon Merk", email = "timon.merk@charite.de" }]
|
|
9
9
|
classifiers = [
|
|
10
10
|
"Development Status :: 2 - Pre-Alpha",
|
|
@@ -35,7 +35,7 @@ dependencies = [
|
|
|
35
35
|
"mne-bids >= 0.8",
|
|
36
36
|
"mne-connectivity",
|
|
37
37
|
"mrmr_selection",
|
|
38
|
-
"nolds",
|
|
38
|
+
"nolds >= 0.6.1",
|
|
39
39
|
"numpy >= 1.21.2",
|
|
40
40
|
"pandas >= 2.0.0",
|
|
41
41
|
"scikit-learn >= 0.24.2",
|
|
@@ -46,9 +46,11 @@ dependencies = [
|
|
|
46
46
|
"pyarrow>=14.0.2",
|
|
47
47
|
"joblib>=1.3.2",
|
|
48
48
|
"mne-lsl>=1.2.0",
|
|
49
|
-
"pyqt5",
|
|
49
|
+
#"pyqt5",
|
|
50
50
|
"pydantic>=2.7.3",
|
|
51
51
|
"seaborn >= 0.11",
|
|
52
|
+
"llvmlite>=0.43.0",
|
|
53
|
+
"numba>=0.60.0",
|
|
52
54
|
]
|
|
53
55
|
|
|
54
56
|
[project.optional-dependencies]
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
from mne_connectivity import make_signals_in_freq_bands
|
|
3
|
+
|
|
4
|
+
import py_neuromodulation as nm
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_coherence():
|
|
8
|
+
"""Check that coherence features compute properly and match expected values."""
|
|
9
|
+
# Simulate connectivity data (interaction at specified frequency band)
|
|
10
|
+
sfreq = 500 # Hz
|
|
11
|
+
n_epochs = 1
|
|
12
|
+
n_times = sfreq * 2 # samples
|
|
13
|
+
fband = (15, 20) # frequency band of interaction, Hz
|
|
14
|
+
trans = 2 # transition bandwidth of signal, Hz
|
|
15
|
+
delay = 50 # samples
|
|
16
|
+
epochs = make_signals_in_freq_bands(
|
|
17
|
+
n_seeds=1,
|
|
18
|
+
n_targets=1,
|
|
19
|
+
freq_band=fband,
|
|
20
|
+
n_epochs=n_epochs,
|
|
21
|
+
n_times=n_times,
|
|
22
|
+
sfreq=sfreq,
|
|
23
|
+
trans_bandwidth=trans,
|
|
24
|
+
connection_delay=delay,
|
|
25
|
+
ch_names=["seed", "target"],
|
|
26
|
+
snr=0.7, # change here requires change in `signal/noise_con` vars below
|
|
27
|
+
rng_seed=44
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# Set up py_nm channels info
|
|
31
|
+
ch_names = epochs.ch_names
|
|
32
|
+
ch_types = epochs.get_channel_types()
|
|
33
|
+
channels = nm.utils.set_channels(
|
|
34
|
+
ch_names=ch_names,
|
|
35
|
+
ch_types=ch_types,
|
|
36
|
+
reference="default",
|
|
37
|
+
bads=None,
|
|
38
|
+
new_names="default",
|
|
39
|
+
used_types=tuple(np.unique(ch_types)),
|
|
40
|
+
target_keywords=None,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# Set up pn_nm processing settings
|
|
44
|
+
settings = nm.NMSettings.get_default()
|
|
45
|
+
settings.reset()
|
|
46
|
+
settings.features.coherence = True
|
|
47
|
+
|
|
48
|
+
# redefine freq. bands of interest
|
|
49
|
+
# (accounts for signal-noise transition bandwdith when defining frequencies)
|
|
50
|
+
settings.frequency_ranges_hz = {
|
|
51
|
+
"signal": { # strong connectivity expected
|
|
52
|
+
"frequency_low_hz": fband[0],
|
|
53
|
+
"frequency_high_hz": fband[1],
|
|
54
|
+
},
|
|
55
|
+
"noise_low": { # weak connectivity expected from 1 Hz to start of interaction
|
|
56
|
+
"frequency_low_hz": 1,
|
|
57
|
+
"frequency_high_hz": fband[0] - trans * 2,
|
|
58
|
+
},
|
|
59
|
+
"noise_high": { # weak connectivity expected from end of interaction to Nyquist
|
|
60
|
+
"frequency_low_hz": fband[1] + trans * 2,
|
|
61
|
+
"frequency_high_hz": sfreq // 2 - 1,
|
|
62
|
+
},
|
|
63
|
+
}
|
|
64
|
+
settings.coherence_settings.frequency_bands = ["signal", "noise_low", "noise_high"]
|
|
65
|
+
|
|
66
|
+
# only average within each band required
|
|
67
|
+
settings.coherence_settings.features = {
|
|
68
|
+
"mean_fband": True, "max_fband": False, "max_allfbands": False
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
# unique all-to-all connectivity indices, i.e.: ([0], [1])
|
|
72
|
+
# XXX: avoids pydantic ValidationError that lists are too short (length == 1)
|
|
73
|
+
settings.coherence_settings.channels = [ch_names]
|
|
74
|
+
|
|
75
|
+
# do not normalise features for this test!
|
|
76
|
+
# (normalisation changes interpretability of connectivity values, making it harder to
|
|
77
|
+
# define 'expected' connectivity values)
|
|
78
|
+
settings.postprocessing.feature_normalization = False
|
|
79
|
+
|
|
80
|
+
# Set up py_nm stream
|
|
81
|
+
stream = nm.Stream(
|
|
82
|
+
settings=settings,
|
|
83
|
+
channels=channels,
|
|
84
|
+
path_grids=None,
|
|
85
|
+
verbose=True,
|
|
86
|
+
sfreq=epochs.info["sfreq"],
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
# Compute connectivity
|
|
90
|
+
features = stream.run(
|
|
91
|
+
epochs.get_data(copy=False)[0], # extract first (and only) epoch from obj
|
|
92
|
+
out_dir="./test_data",
|
|
93
|
+
experiment_name="test_coherence",
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Aggregate results over windows
|
|
97
|
+
results = {key: None for key in features.keys()}
|
|
98
|
+
results.pop("time")
|
|
99
|
+
for key in results.keys():
|
|
100
|
+
# average over windows; take absolute before averaging icoh values
|
|
101
|
+
results[key] = np.abs(features[key].values).mean()
|
|
102
|
+
|
|
103
|
+
node_name = "seed_to_target"
|
|
104
|
+
for con_method in ["coh", "icoh"]:
|
|
105
|
+
# Define expected connectivity values for signal and noise frequencies
|
|
106
|
+
noise_con = 0.15
|
|
107
|
+
signal_con = 0.25
|
|
108
|
+
|
|
109
|
+
# Assert that frequencies of simulated interaction have strong connectivity
|
|
110
|
+
np.testing.assert_array_less(
|
|
111
|
+
signal_con, results[f"{con_method}_{node_name}_mean_fband_signal"]
|
|
112
|
+
)
|
|
113
|
+
# Assert that frequencies of noise have weak connectivity
|
|
114
|
+
np.testing.assert_array_less(
|
|
115
|
+
results[f"{con_method}_{node_name}_mean_fband_noise_low"], noise_con
|
|
116
|
+
)
|
|
117
|
+
np.testing.assert_array_less(
|
|
118
|
+
results[f"{con_method}_{node_name}_mean_fband_noise_high"], noise_con
|
|
119
|
+
)
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
bandpass_filter_settings:
|
|
2
|
-
bandpower_features: {activity: true, complexity: false, mobility: false}
|
|
3
|
-
kalman_filter: false
|
|
4
|
-
log_transform: true
|
|
5
|
-
segment_lengths_ms: {HFA: 100, alpha: 500, high_beta: 333, high_gamma: 100, low_beta: 333,
|
|
6
|
-
low_gamma: 100, theta: 1000}
|
|
7
|
-
bispectrum_settings:
|
|
8
|
-
bispectrum_features: {mean: true, sum: true, var: true}
|
|
9
|
-
components: {absolute: true, imag: true, phase: true, real: true}
|
|
10
|
-
compute_features_for_whole_fband_range: true
|
|
11
|
-
f1s: {frequency_high_hz: 35.0, frequency_low_hz: 5.0}
|
|
12
|
-
f2s: {frequency_high_hz: 35.0, frequency_low_hz: 5.0}
|
|
13
|
-
frequency_bands: [theta, alpha, low_beta, high_beta]
|
|
14
|
-
burst_settings:
|
|
15
|
-
burst_features: {amplitude: true, burst_rate_per_s: true, duration: true, in_burst: true}
|
|
16
|
-
frequency_bands: [low_beta, high_beta, low_gamma]
|
|
17
|
-
threshold: 75.0
|
|
18
|
-
time_duration_s: 30.0
|
|
19
|
-
coherence_settings:
|
|
20
|
-
channels: []
|
|
21
|
-
features: {max_allfbands: true, max_fband: true, mean_fband: true}
|
|
22
|
-
frequency_bands: [high_beta]
|
|
23
|
-
method: {coh: true, icoh: true}
|
|
24
|
-
feature_normalization_settings: {clip: 3.0, normalization_method: zscore, normalization_time_s: 30.0}
|
|
25
|
-
features: {bandpass_filter: false, bispectrum: false, bursts: false, coherence: false,
|
|
26
|
-
fft: false, fooof: false, linelength: false, mne_connectivity: false, nolds: false,
|
|
27
|
-
raw_hjorth: false, return_raw: false, sharpwave_analysis: true, stft: false, welch: false}
|
|
28
|
-
fft_settings:
|
|
29
|
-
features: {max: false, mean: true, median: false, std: false}
|
|
30
|
-
log_transform: true
|
|
31
|
-
return_spectrum: false
|
|
32
|
-
windowlength_ms: 1000
|
|
33
|
-
fooof_settings:
|
|
34
|
-
aperiodic: {exponent: true, knee: true, offset: true}
|
|
35
|
-
freq_range_hz: {frequency_high_hz: 40.0, frequency_low_hz: 2.0}
|
|
36
|
-
knee: true
|
|
37
|
-
max_n_peaks: 3
|
|
38
|
-
min_peak_height: 0.0
|
|
39
|
-
peak_threshold: 2.0
|
|
40
|
-
peak_width_limits: {frequency_high_hz: 12.0, frequency_low_hz: 0.5}
|
|
41
|
-
periodic: {band_width: false, center_frequency: false, height_over_ap: false}
|
|
42
|
-
windowlength_ms: 800.0
|
|
43
|
-
frequency_ranges_hz:
|
|
44
|
-
HFA: {frequency_high_hz: 400.0, frequency_low_hz: 200.0}
|
|
45
|
-
alpha: {frequency_high_hz: 12.0, frequency_low_hz: 8.0}
|
|
46
|
-
high_beta: {frequency_high_hz: 35.0, frequency_low_hz: 20.0}
|
|
47
|
-
high_gamma: {frequency_high_hz: 200.0, frequency_low_hz: 90.0}
|
|
48
|
-
low_beta: {frequency_high_hz: 20.0, frequency_low_hz: 13.0}
|
|
49
|
-
low_gamma: {frequency_high_hz: 80.0, frequency_low_hz: 60.0}
|
|
50
|
-
theta: {frequency_high_hz: 8.0, frequency_low_hz: 4.0}
|
|
51
|
-
kalman_filter_settings:
|
|
52
|
-
Tp: 0.1
|
|
53
|
-
frequency_bands: [theta, alpha, low_beta, high_beta, low_gamma, high_gamma, HFA]
|
|
54
|
-
sigma_v: 1.0
|
|
55
|
-
sigma_w: 0.7
|
|
56
|
-
mne_connectivity_settings: {method: plv, mode: multitaper}
|
|
57
|
-
mne_connectiviy_settings: {method: plv, mode: multitaper}
|
|
58
|
-
nolds_settings:
|
|
59
|
-
correlation_dimension: false
|
|
60
|
-
data:
|
|
61
|
-
frequency_bands: [low_beta]
|
|
62
|
-
raw: true
|
|
63
|
-
detrended_fluctutaion_analysis: false
|
|
64
|
-
features: {correlation_dimension: false, detrended_fluctuation_analysis: false,
|
|
65
|
-
hurst_exponent: false, lyapunov_exponent: true, sample_entropy: false}
|
|
66
|
-
frequency_bands: [low_beta]
|
|
67
|
-
hurst_exponent: false
|
|
68
|
-
lyapunov_exponent: true
|
|
69
|
-
raw: true
|
|
70
|
-
sample_entropy: false
|
|
71
|
-
postprocessing: {feature_normalization: false, project_cortex: false, project_subcortex: false}
|
|
72
|
-
preprocessing: []
|
|
73
|
-
preprocessing_filter:
|
|
74
|
-
bandpass_filter: true
|
|
75
|
-
bandpass_filter_settings: {frequency_high_hz: 200.0, frequency_low_hz: 3.0}
|
|
76
|
-
bandstop_filter: true
|
|
77
|
-
bandstop_filter_settings: {frequency_high_hz: 160.0, frequency_low_hz: 100.0}
|
|
78
|
-
highpass_filter: true
|
|
79
|
-
highpass_filter_cutoff_hz: 3.0
|
|
80
|
-
lowpass_filter: true
|
|
81
|
-
lowpass_filter_cutoff_hz: 200.0
|
|
82
|
-
project_cortex_settings: {max_dist_mm: 20.0}
|
|
83
|
-
project_subcortex_settings: {max_dist_mm: 5.0}
|
|
84
|
-
raw_normalization_settings: {clip: 3.0, normalization_method: zscore, normalization_time_s: 30.0}
|
|
85
|
-
raw_resampling_settings: {resample_freq_hz: 1000.0}
|
|
86
|
-
sampling_rate_features_hz: 10.0
|
|
87
|
-
segment_length_features_ms: 1000.0
|
|
88
|
-
sharpwave_analysis_settings:
|
|
89
|
-
apply_estimator_between_peaks_and_troughs: true
|
|
90
|
-
detect_peaks: {distance_peaks_ms: 10.0, distance_troughs_ms: 5.0, estimate: true}
|
|
91
|
-
detect_troughs: {distance_peaks_ms: 5.0, distance_troughs_ms: 10.0, estimate: true}
|
|
92
|
-
estimator:
|
|
93
|
-
max: [prominence, sharpness]
|
|
94
|
-
mean: [interval]
|
|
95
|
-
median: []
|
|
96
|
-
min: []
|
|
97
|
-
var: []
|
|
98
|
-
filter_ranges_hz:
|
|
99
|
-
- {frequency_high_hz: 80.0, frequency_low_hz: 5.0}
|
|
100
|
-
sharpwave_features: {decay_steepness: false, decay_time: false, interval: true,
|
|
101
|
-
num_peaks: false, peak_left: false, peak_right: false, prominence: true, rise_steepness: false,
|
|
102
|
-
rise_time: false, sharpness: true, slope_ratio: false, trough: false, width: false}
|
|
103
|
-
stft_settings:
|
|
104
|
-
features: {max: false, mean: true, median: false, std: false}
|
|
105
|
-
log_transform: true
|
|
106
|
-
return_spectrum: false
|
|
107
|
-
windowlength_ms: 500
|
|
108
|
-
welch_settings:
|
|
109
|
-
features: {max: false, mean: true, median: false, std: false}
|
|
110
|
-
log_transform: true
|
|
111
|
-
return_spectrum: false
|
|
112
|
-
windowlength_ms: 1000
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/CEBRA_embedding.png
RENAMED
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/css/RMAP_figure.png
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/docs/source/_static/css/project-template.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_2_example_add_feature.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_3_example_sharpwave_analysis.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_4_example_gridPointProjection.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/examples/plot_5_example_rmap_computing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/analysis/feature_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.json
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.tsv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/__init__.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/bandpower.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/hjorth_raw.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/linelength.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/oscillatory.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/features/sharpwaves.py
RENAMED
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/kalman_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/mne_filter.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/filter/notch_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/libpugixml.so.1.12
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/__init__.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/artifacts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/normalization.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/projection.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/rereference.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/processing/resample.py
RENAMED
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/data_processor.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/generator.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/mnelsl_player.py
RENAMED
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/py_neuromodulation/stream/mnelsl_stream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_initalization_offline_stream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py_neuromodulation-0.0.6 → py_neuromodulation-0.0.7}/tests/test_settings_change_after_init.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|