py-neuromodulation 0.0.3__py3-none-any.whl → 0.0.5__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.
- py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
- py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +34 -0
- py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +95 -0
- py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +107 -0
- py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
- py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
- py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
- py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
- py_neuromodulation/FieldTrip.py +589 -589
- py_neuromodulation/__init__.py +74 -13
- py_neuromodulation/_write_example_dataset_helper.py +83 -65
- py_neuromodulation/data/README +6 -0
- py_neuromodulation/data/dataset_description.json +8 -0
- py_neuromodulation/data/participants.json +32 -0
- py_neuromodulation/data/participants.tsv +2 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +5 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +11 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +11 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +18 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +35 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +13 -0
- py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +2 -0
- py_neuromodulation/grid_cortex.tsv +40 -0
- py_neuromodulation/grid_subcortex.tsv +1429 -0
- py_neuromodulation/liblsl/libpugixml.so.1.12 +0 -0
- py_neuromodulation/liblsl/linux/bionic_amd64/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/linux/bookworm_amd64/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/linux/focal_amd46/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/linux/jammy_amd64/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/linux/jammy_x86/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/linux/noble_amd64/liblsl.1.16.2.so +0 -0
- py_neuromodulation/liblsl/macos/amd64/liblsl.1.16.2.dylib +0 -0
- py_neuromodulation/liblsl/macos/arm64/liblsl.1.16.0.dylib +0 -0
- py_neuromodulation/liblsl/windows/amd64/liblsl.1.16.2.dll +0 -0
- py_neuromodulation/liblsl/windows/x86/liblsl.1.16.2.dll +0 -0
- py_neuromodulation/nm_IO.py +413 -417
- py_neuromodulation/nm_RMAP.py +496 -531
- py_neuromodulation/nm_analysis.py +993 -1074
- py_neuromodulation/nm_artifacts.py +30 -25
- py_neuromodulation/nm_bispectra.py +154 -168
- py_neuromodulation/nm_bursts.py +292 -198
- py_neuromodulation/nm_coherence.py +251 -205
- py_neuromodulation/nm_database.py +149 -0
- py_neuromodulation/nm_decode.py +918 -992
- py_neuromodulation/nm_define_nmchannels.py +300 -302
- py_neuromodulation/nm_features.py +144 -116
- py_neuromodulation/nm_filter.py +219 -219
- py_neuromodulation/nm_filter_preprocessing.py +79 -91
- py_neuromodulation/nm_fooof.py +139 -159
- py_neuromodulation/nm_generator.py +45 -37
- py_neuromodulation/nm_hjorth_raw.py +52 -73
- py_neuromodulation/nm_kalmanfilter.py +71 -58
- py_neuromodulation/nm_linelength.py +21 -33
- py_neuromodulation/nm_logger.py +66 -0
- py_neuromodulation/nm_mne_connectivity.py +149 -112
- py_neuromodulation/nm_mnelsl_generator.py +90 -0
- py_neuromodulation/nm_mnelsl_stream.py +116 -0
- py_neuromodulation/nm_nolds.py +96 -93
- py_neuromodulation/nm_normalization.py +173 -214
- py_neuromodulation/nm_oscillatory.py +423 -448
- py_neuromodulation/nm_plots.py +585 -612
- py_neuromodulation/nm_preprocessing.py +83 -0
- py_neuromodulation/nm_projection.py +370 -394
- py_neuromodulation/nm_rereference.py +97 -95
- py_neuromodulation/nm_resample.py +59 -50
- py_neuromodulation/nm_run_analysis.py +325 -435
- py_neuromodulation/nm_settings.py +289 -68
- py_neuromodulation/nm_settings.yaml +244 -0
- py_neuromodulation/nm_sharpwaves.py +423 -401
- py_neuromodulation/nm_stats.py +464 -480
- py_neuromodulation/nm_stream.py +398 -0
- py_neuromodulation/nm_stream_abc.py +166 -218
- py_neuromodulation/nm_types.py +193 -0
- py_neuromodulation/plots/STN_surf.mat +0 -0
- py_neuromodulation/plots/Vertices.mat +0 -0
- py_neuromodulation/plots/faces.mat +0 -0
- py_neuromodulation/plots/grid.mat +0 -0
- {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.5.dist-info}/METADATA +185 -182
- py_neuromodulation-0.0.5.dist-info/RECORD +83 -0
- {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.5.dist-info}/WHEEL +1 -2
- {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.5.dist-info/licenses}/LICENSE +21 -21
- docs/build/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
- docs/build/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -233
- docs/build/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
- docs/build/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
- docs/build/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
- docs/build/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
- docs/build/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
- docs/build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
- docs/build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -239
- docs/build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
- docs/build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
- docs/build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
- docs/build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
- docs/build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
- docs/source/_build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -76
- docs/source/_build/html/_downloads/0d0d0a76e8f648d5d3cbc47da6351932/plot_real_time_demo.py +0 -97
- docs/source/_build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -240
- docs/source/_build/html/_downloads/5d73cadc59a8805c47e3b84063afc157/plot_example_BIDS.py +0 -233
- docs/source/_build/html/_downloads/7660317fa5a6bfbd12fcca9961457fc4/plot_example_rmap_computing.py +0 -63
- docs/source/_build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
- docs/source/_build/html/_downloads/839e5b319379f7fd9e867deb00fd797f/plot_example_gridPointProjection.py +0 -210
- docs/source/_build/html/_downloads/ae8be19afe5e559f011fc9b138968ba0/plot_first_demo.py +0 -192
- docs/source/_build/html/_downloads/b8b06cacc17969d3725a0b6f1d7741c5/plot_example_sharpwave_analysis.py +0 -219
- docs/source/_build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -121
- docs/source/_build/html/_downloads/c31a86c0b68cb4167d968091ace8080d/plot_example_add_feature.py +0 -68
- docs/source/_build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
- docs/source/_build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -189
- docs/source/_build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
- docs/source/auto_examples/plot_0_first_demo.py +0 -189
- docs/source/auto_examples/plot_1_example_BIDS.py +0 -240
- docs/source/auto_examples/plot_2_example_add_feature.py +0 -76
- docs/source/auto_examples/plot_3_example_sharpwave_analysis.py +0 -219
- docs/source/auto_examples/plot_4_example_gridPointProjection.py +0 -210
- docs/source/auto_examples/plot_5_example_rmap_computing.py +0 -64
- docs/source/auto_examples/plot_6_real_time_demo.py +0 -121
- docs/source/conf.py +0 -105
- examples/plot_0_first_demo.py +0 -189
- examples/plot_1_example_BIDS.py +0 -240
- examples/plot_2_example_add_feature.py +0 -76
- examples/plot_3_example_sharpwave_analysis.py +0 -219
- examples/plot_4_example_gridPointProjection.py +0 -210
- examples/plot_5_example_rmap_computing.py +0 -64
- examples/plot_6_real_time_demo.py +0 -121
- packages/realtime_decoding/build/lib/realtime_decoding/__init__.py +0 -4
- packages/realtime_decoding/build/lib/realtime_decoding/decoder.py +0 -104
- packages/realtime_decoding/build/lib/realtime_decoding/features.py +0 -163
- packages/realtime_decoding/build/lib/realtime_decoding/helpers.py +0 -15
- packages/realtime_decoding/build/lib/realtime_decoding/run_decoding.py +0 -345
- packages/realtime_decoding/build/lib/realtime_decoding/trainer.py +0 -54
- packages/tmsi/build/lib/TMSiFileFormats/__init__.py +0 -37
- packages/tmsi/build/lib/TMSiFileFormats/file_formats/__init__.py +0 -36
- packages/tmsi/build/lib/TMSiFileFormats/file_formats/lsl_stream_writer.py +0 -200
- packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_file_writer.py +0 -496
- packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_to_edf_converter.py +0 -236
- packages/tmsi/build/lib/TMSiFileFormats/file_formats/xdf_file_writer.py +0 -977
- packages/tmsi/build/lib/TMSiFileFormats/file_readers/__init__.py +0 -35
- packages/tmsi/build/lib/TMSiFileFormats/file_readers/edf_reader.py +0 -116
- packages/tmsi/build/lib/TMSiFileFormats/file_readers/poly5reader.py +0 -294
- packages/tmsi/build/lib/TMSiFileFormats/file_readers/xdf_reader.py +0 -229
- packages/tmsi/build/lib/TMSiFileFormats/file_writer.py +0 -102
- packages/tmsi/build/lib/TMSiPlotters/__init__.py +0 -2
- packages/tmsi/build/lib/TMSiPlotters/gui/__init__.py +0 -39
- packages/tmsi/build/lib/TMSiPlotters/gui/_plotter_gui.py +0 -234
- packages/tmsi/build/lib/TMSiPlotters/gui/plotting_gui.py +0 -440
- packages/tmsi/build/lib/TMSiPlotters/plotters/__init__.py +0 -44
- packages/tmsi/build/lib/TMSiPlotters/plotters/hd_emg_plotter.py +0 -446
- packages/tmsi/build/lib/TMSiPlotters/plotters/impedance_plotter.py +0 -589
- packages/tmsi/build/lib/TMSiPlotters/plotters/signal_plotter.py +0 -1326
- packages/tmsi/build/lib/TMSiSDK/__init__.py +0 -54
- packages/tmsi/build/lib/TMSiSDK/device.py +0 -588
- packages/tmsi/build/lib/TMSiSDK/devices/__init__.py +0 -34
- packages/tmsi/build/lib/TMSiSDK/devices/saga/TMSi_Device_API.py +0 -1764
- packages/tmsi/build/lib/TMSiSDK/devices/saga/__init__.py +0 -34
- packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_device.py +0 -1366
- packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_types.py +0 -520
- packages/tmsi/build/lib/TMSiSDK/devices/saga/xml_saga_config.py +0 -165
- packages/tmsi/build/lib/TMSiSDK/error.py +0 -95
- packages/tmsi/build/lib/TMSiSDK/sample_data.py +0 -63
- packages/tmsi/build/lib/TMSiSDK/sample_data_server.py +0 -99
- packages/tmsi/build/lib/TMSiSDK/settings.py +0 -45
- packages/tmsi/build/lib/TMSiSDK/tmsi_device.py +0 -111
- packages/tmsi/build/lib/__init__.py +0 -4
- packages/tmsi/build/lib/apex_sdk/__init__.py +0 -34
- packages/tmsi/build/lib/apex_sdk/device/__init__.py +0 -41
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API.py +0 -1009
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_enums.py +0 -239
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_structures.py +0 -668
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_device.py +0 -1611
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_dongle.py +0 -38
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_event_reader.py +0 -57
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_channel.py +0 -44
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_config.py +0 -150
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_const.py +0 -36
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_impedance_channel.py +0 -48
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_info.py +0 -108
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/dongle_info.py +0 -39
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/download_measurement.py +0 -77
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/eeg_measurement.py +0 -150
- packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/impedance_measurement.py +0 -129
- packages/tmsi/build/lib/apex_sdk/device/threads/conversion_thread.py +0 -59
- packages/tmsi/build/lib/apex_sdk/device/threads/sampling_thread.py +0 -57
- packages/tmsi/build/lib/apex_sdk/device/tmsi_channel.py +0 -83
- packages/tmsi/build/lib/apex_sdk/device/tmsi_device.py +0 -201
- packages/tmsi/build/lib/apex_sdk/device/tmsi_device_enums.py +0 -103
- packages/tmsi/build/lib/apex_sdk/device/tmsi_dongle.py +0 -43
- packages/tmsi/build/lib/apex_sdk/device/tmsi_event_reader.py +0 -50
- packages/tmsi/build/lib/apex_sdk/device/tmsi_measurement.py +0 -118
- packages/tmsi/build/lib/apex_sdk/sample_data_server/__init__.py +0 -33
- packages/tmsi/build/lib/apex_sdk/sample_data_server/event_data.py +0 -44
- packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data.py +0 -50
- packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data_server.py +0 -136
- packages/tmsi/build/lib/apex_sdk/tmsi_errors/error.py +0 -126
- packages/tmsi/build/lib/apex_sdk/tmsi_sdk.py +0 -113
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/apex/apex_structure_generator.py +0 -134
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/decorators.py +0 -60
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/logger_filter.py +0 -42
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/singleton.py +0 -42
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/support_functions.py +0 -72
- packages/tmsi/build/lib/apex_sdk/tmsi_utilities/tmsi_logger.py +0 -98
- py_neuromodulation/nm_EpochStream.py +0 -92
- py_neuromodulation/nm_across_patient_decoding.py +0 -927
- py_neuromodulation/nm_cohortwrapper.py +0 -435
- py_neuromodulation/nm_eval_timing.py +0 -239
- py_neuromodulation/nm_features_abc.py +0 -39
- py_neuromodulation/nm_stream_offline.py +0 -358
- py_neuromodulation/utils/_logging.py +0 -24
- py_neuromodulation-0.0.3.dist-info/RECORD +0 -188
- py_neuromodulation-0.0.3.dist-info/top_level.txt +0 -5
- tests/__init__.py +0 -0
- tests/conftest.py +0 -117
- tests/test_all_examples.py +0 -10
- tests/test_all_features.py +0 -63
- tests/test_bispectra.py +0 -70
- tests/test_bursts.py +0 -105
- tests/test_feature_sampling_rates.py +0 -143
- tests/test_fooof.py +0 -16
- tests/test_initalization_offline_stream.py +0 -41
- tests/test_multiprocessing.py +0 -58
- tests/test_nan_values.py +0 -29
- tests/test_nm_filter.py +0 -95
- tests/test_nm_resample.py +0 -63
- tests/test_normalization_settings.py +0 -146
- tests/test_notch_filter.py +0 -31
- tests/test_osc_features.py +0 -424
- tests/test_preprocessing_filter.py +0 -151
- tests/test_rereference.py +0 -171
- tests/test_sampling.py +0 -57
- tests/test_settings_change_after_init.py +0 -76
- tests/test_sharpwave.py +0 -165
- tests/test_target_channel_add.py +0 -100
- tests/test_timing.py +0 -80
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
from abc import ABC, abstractmethod
|
|
2
|
-
import numpy as np
|
|
3
|
-
from typing import Iterable
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Feature(ABC):
|
|
7
|
-
@abstractmethod
|
|
8
|
-
def __init__(
|
|
9
|
-
self, settings: dict, ch_names: Iterable[str], sfreq: int | float
|
|
10
|
-
) -> None:
|
|
11
|
-
pass
|
|
12
|
-
|
|
13
|
-
@staticmethod
|
|
14
|
-
@abstractmethod
|
|
15
|
-
def test_settings(
|
|
16
|
-
settings: dict,
|
|
17
|
-
ch_names: Iterable[str],
|
|
18
|
-
sfreq: int | float,
|
|
19
|
-
):
|
|
20
|
-
"""Method to check passed settings"""
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
@abstractmethod
|
|
24
|
-
def calc_feature(self, data: np.array, features_compute: dict) -> dict:
|
|
25
|
-
"""
|
|
26
|
-
Feature calculation method. Each method needs to loop through all channels
|
|
27
|
-
|
|
28
|
-
Parameters
|
|
29
|
-
----------
|
|
30
|
-
data : np.array
|
|
31
|
-
(channels, time)
|
|
32
|
-
features_compute : dict
|
|
33
|
-
ch_names : Iterable[str]
|
|
34
|
-
|
|
35
|
-
Returns
|
|
36
|
-
-------
|
|
37
|
-
dict
|
|
38
|
-
"""
|
|
39
|
-
pass
|
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
"""Module for offline data streams."""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
from joblib import Parallel, delayed
|
|
5
|
-
import numpy as np
|
|
6
|
-
import pandas as pd
|
|
7
|
-
from itertools import count
|
|
8
|
-
import logging
|
|
9
|
-
|
|
10
|
-
logger = logging.getLogger("PynmLogger")
|
|
11
|
-
|
|
12
|
-
import mne
|
|
13
|
-
|
|
14
|
-
from py_neuromodulation import (
|
|
15
|
-
nm_generator,
|
|
16
|
-
nm_IO,
|
|
17
|
-
nm_stream_abc,
|
|
18
|
-
nm_define_nmchannels,
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
_PathLike = str | os.PathLike
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class _OfflineStream(nm_stream_abc.PNStream):
|
|
25
|
-
"""Offline stream base class.
|
|
26
|
-
This class can be inhereted for different types of offline streams, e.g. epoch-based or continuous.
|
|
27
|
-
|
|
28
|
-
Parameters
|
|
29
|
-
----------
|
|
30
|
-
nm_stream_abc : nm_stream_abc.PNStream
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
def _add_target(
|
|
34
|
-
self, feature_series: pd.Series, data: np.ndarray
|
|
35
|
-
) -> pd.Series:
|
|
36
|
-
"""Add target channels to feature series.
|
|
37
|
-
|
|
38
|
-
Parameters
|
|
39
|
-
----------
|
|
40
|
-
feature_series : pd.Series
|
|
41
|
-
data : np.ndarray
|
|
42
|
-
Raw data with shape (n_channels, n_samples). Channels not for feature computation are also included
|
|
43
|
-
|
|
44
|
-
Returns
|
|
45
|
-
-------
|
|
46
|
-
pd.Series
|
|
47
|
-
feature series with target channels added
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
if self.nm_channels["target"].sum() > 0:
|
|
51
|
-
if not self.target_idx_initialized:
|
|
52
|
-
self.target_indexes = self.nm_channels[
|
|
53
|
-
self.nm_channels["target"] == 1
|
|
54
|
-
].index
|
|
55
|
-
self.target_names = self.nm_channels.loc[
|
|
56
|
-
self.target_indexes, "name"
|
|
57
|
-
].to_list()
|
|
58
|
-
self.target_idx_initialized = True
|
|
59
|
-
|
|
60
|
-
for target_idx, target_name in zip(
|
|
61
|
-
self.target_indexes, self.target_names
|
|
62
|
-
):
|
|
63
|
-
feature_series[target_name] = data[target_idx, -1]
|
|
64
|
-
return feature_series
|
|
65
|
-
|
|
66
|
-
def _add_timestamp(
|
|
67
|
-
self, feature_series: pd.Series, cnt_samples: int
|
|
68
|
-
) -> pd.Series:
|
|
69
|
-
"""Add time stamp in ms.
|
|
70
|
-
|
|
71
|
-
Due to normalization run_analysis needs to keep track of the counted
|
|
72
|
-
samples. These are accessed here for time conversion.
|
|
73
|
-
"""
|
|
74
|
-
feature_series["time"] = cnt_samples * 1000 / self.sfreq
|
|
75
|
-
|
|
76
|
-
if self.verbose:
|
|
77
|
-
logging.info(
|
|
78
|
-
str(np.round(feature_series["time"] / 1000, 2))
|
|
79
|
-
+ " seconds of data processed"
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
return feature_series
|
|
83
|
-
|
|
84
|
-
def _handle_data(self, data: np.ndarray | pd.DataFrame) -> np.ndarray:
|
|
85
|
-
names_expected = self.nm_channels["name"].to_list()
|
|
86
|
-
|
|
87
|
-
if isinstance(data, np.ndarray):
|
|
88
|
-
if not len(names_expected) == data.shape[0]:
|
|
89
|
-
raise ValueError(
|
|
90
|
-
"If data is passed as an array, the first dimension must"
|
|
91
|
-
" match the number of channel names in `nm_channels`. Got:"
|
|
92
|
-
f" Data columns: {data.shape[0]}, nm_channels.name:"
|
|
93
|
-
f" {len(names_expected)}."
|
|
94
|
-
)
|
|
95
|
-
return data
|
|
96
|
-
names_data = data.columns.to_list()
|
|
97
|
-
if not (
|
|
98
|
-
len(names_expected) == len(names_data)
|
|
99
|
-
and sorted(names_expected) == sorted(names_data)
|
|
100
|
-
):
|
|
101
|
-
raise ValueError(
|
|
102
|
-
"If data is passed as a DataFrame, the"
|
|
103
|
-
"columns must match the channel names in `nm_channels`. Got:"
|
|
104
|
-
f"Data columns: {names_data}, nm_channels.name: {names_data}."
|
|
105
|
-
)
|
|
106
|
-
return data.to_numpy()
|
|
107
|
-
|
|
108
|
-
def _check_settings_for_parallel(self):
|
|
109
|
-
"""Check specified settings and raise error if parallel processing is not possible.
|
|
110
|
-
|
|
111
|
-
Raises:
|
|
112
|
-
ValueError: depending on the settings, parallel processing is not possible
|
|
113
|
-
"""
|
|
114
|
-
|
|
115
|
-
if "raw_normalization" in self.settings["preprocessing"]:
|
|
116
|
-
raise ValueError(
|
|
117
|
-
"Parallel processing is not possible with raw_normalization normalization."
|
|
118
|
-
)
|
|
119
|
-
if self.settings["postprocessing"]["feature_normalization"] is True:
|
|
120
|
-
raise ValueError(
|
|
121
|
-
"Parallel processing is not possible with feature normalization."
|
|
122
|
-
)
|
|
123
|
-
if self.settings["features"]["bursts"] is True:
|
|
124
|
-
raise ValueError(
|
|
125
|
-
"Parallel processing is not possible with burst estimation."
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
def _process_batch(self, data_batch, cnt_samples):
|
|
129
|
-
feature_series = self.run_analysis.process(
|
|
130
|
-
data_batch.astype(np.float64)
|
|
131
|
-
)
|
|
132
|
-
feature_series = self._add_timestamp(feature_series, cnt_samples)
|
|
133
|
-
feature_series = self._add_target(
|
|
134
|
-
feature_series=feature_series, data=data_batch
|
|
135
|
-
)
|
|
136
|
-
return feature_series
|
|
137
|
-
|
|
138
|
-
def _run_offline(
|
|
139
|
-
self,
|
|
140
|
-
data: np.ndarray,
|
|
141
|
-
out_path_root: _PathLike | None = None,
|
|
142
|
-
folder_name: str = "sub",
|
|
143
|
-
parallel: bool = False,
|
|
144
|
-
n_jobs: int = -2,
|
|
145
|
-
) -> pd.DataFrame:
|
|
146
|
-
generator = nm_generator.raw_data_generator(
|
|
147
|
-
data=data,
|
|
148
|
-
settings=self.settings,
|
|
149
|
-
sfreq=self.sfreq,
|
|
150
|
-
)
|
|
151
|
-
|
|
152
|
-
sample_add = self.sfreq / self.run_analysis.sfreq_features
|
|
153
|
-
|
|
154
|
-
offset_time = self.settings["segment_length_features_ms"]
|
|
155
|
-
# offset_start = np.ceil(offset_time / 1000 * self.sfreq).astype(int)
|
|
156
|
-
offset_start = offset_time / 1000 * self.sfreq
|
|
157
|
-
|
|
158
|
-
if parallel:
|
|
159
|
-
l_features = Parallel(n_jobs=n_jobs, verbose=10)(
|
|
160
|
-
delayed(self._process_batch)(data_batch, cnt_samples)
|
|
161
|
-
for data_batch, cnt_samples in zip(
|
|
162
|
-
generator, count(offset_start, sample_add)
|
|
163
|
-
)
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
else:
|
|
167
|
-
l_features = []
|
|
168
|
-
cnt_samples = offset_start
|
|
169
|
-
while True:
|
|
170
|
-
data_batch = next(generator, None)
|
|
171
|
-
if data_batch is None:
|
|
172
|
-
break
|
|
173
|
-
feature_series = self.run_analysis.process(
|
|
174
|
-
data_batch.astype(np.float64)
|
|
175
|
-
)
|
|
176
|
-
feature_series = self._add_timestamp(
|
|
177
|
-
feature_series, cnt_samples
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
feature_series = self._add_target(
|
|
181
|
-
feature_series=feature_series, data=data_batch
|
|
182
|
-
)
|
|
183
|
-
|
|
184
|
-
l_features.append(feature_series)
|
|
185
|
-
|
|
186
|
-
cnt_samples += sample_add
|
|
187
|
-
feature_df = pd.DataFrame(l_features)
|
|
188
|
-
|
|
189
|
-
self.save_after_stream(out_path_root, folder_name, feature_df)
|
|
190
|
-
|
|
191
|
-
return feature_df
|
|
192
|
-
|
|
193
|
-
def plot_raw_signal(
|
|
194
|
-
self,
|
|
195
|
-
sfreq: float = None,
|
|
196
|
-
data: np.array = None,
|
|
197
|
-
lowpass: float = None,
|
|
198
|
-
highpass: float = None,
|
|
199
|
-
picks: list = None,
|
|
200
|
-
plot_time: bool = True,
|
|
201
|
-
plot_psd: bool = False,
|
|
202
|
-
) -> None:
|
|
203
|
-
"""Use MNE-RawArray Plot to investigate PSD or raw_signal plot.
|
|
204
|
-
|
|
205
|
-
Parameters
|
|
206
|
-
----------
|
|
207
|
-
sfreq : float
|
|
208
|
-
sampling frequency [Hz]
|
|
209
|
-
data : np.array, optional
|
|
210
|
-
data (n_channels, n_times), by default None
|
|
211
|
-
plot_time : bool, optional
|
|
212
|
-
mne.io.RawArray.plot(), by default True
|
|
213
|
-
plot_psd : bool, optional
|
|
214
|
-
mne.io.RawArray.plot(), by default True
|
|
215
|
-
|
|
216
|
-
Raises
|
|
217
|
-
------
|
|
218
|
-
ValueError
|
|
219
|
-
raise Exception when no data is passed
|
|
220
|
-
"""
|
|
221
|
-
if self.data is None and data is None:
|
|
222
|
-
raise ValueError("No data passed to plot_raw_signal function.")
|
|
223
|
-
|
|
224
|
-
if data is None and self.data is not None:
|
|
225
|
-
data = self.data
|
|
226
|
-
|
|
227
|
-
if sfreq is None:
|
|
228
|
-
sfreq = self.sfreq
|
|
229
|
-
|
|
230
|
-
if self.nm_channels is not None:
|
|
231
|
-
ch_names = self.nm_channels["name"].to_list()
|
|
232
|
-
ch_types = self.nm_channels["type"].to_list()
|
|
233
|
-
else:
|
|
234
|
-
ch_names = [f"ch_{i}" for i in range(data.shape[0])]
|
|
235
|
-
ch_types = ["ecog" for i in range(data.shape[0])]
|
|
236
|
-
|
|
237
|
-
# create mne.RawArray
|
|
238
|
-
info = mne.create_info(
|
|
239
|
-
ch_names=ch_names, sfreq=sfreq, ch_types=ch_types
|
|
240
|
-
)
|
|
241
|
-
raw = mne.io.RawArray(data, info)
|
|
242
|
-
|
|
243
|
-
if picks is not None:
|
|
244
|
-
raw = raw.pick(picks)
|
|
245
|
-
self.raw = raw
|
|
246
|
-
if plot_time:
|
|
247
|
-
raw.plot(highpass=highpass, lowpass=lowpass)
|
|
248
|
-
if plot_psd:
|
|
249
|
-
raw.compute_psd().plot()
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
class Stream(_OfflineStream):
|
|
253
|
-
def __init__(
|
|
254
|
-
self,
|
|
255
|
-
sfreq: int | float,
|
|
256
|
-
data: np.ndarray | pd.DataFrame = None,
|
|
257
|
-
nm_channels: pd.DataFrame | _PathLike = None,
|
|
258
|
-
settings: dict | _PathLike | None = None,
|
|
259
|
-
sampling_rate_features_hz: float = None,
|
|
260
|
-
line_noise: int | float | None = 50,
|
|
261
|
-
path_grids: _PathLike | None = None,
|
|
262
|
-
coord_names: list | None = None,
|
|
263
|
-
coord_list: list | None = None,
|
|
264
|
-
verbose: bool = True,
|
|
265
|
-
) -> None:
|
|
266
|
-
"""Stream initialization
|
|
267
|
-
|
|
268
|
-
Parameters
|
|
269
|
-
----------
|
|
270
|
-
sfreq : int | float
|
|
271
|
-
sampling frequency of data in Hertz
|
|
272
|
-
data : np.ndarray | pd.DataFrame | None, optional
|
|
273
|
-
data to be streamed with shape (n_channels, n_time), by default None
|
|
274
|
-
nm_channels : pd.DataFrame | _PathLike
|
|
275
|
-
parametrization of channels (see nm_define_channels.py for initialization)
|
|
276
|
-
settings : dict | _PathLike | None, optional
|
|
277
|
-
features settings can be a dictionary or path to the nm_settings.json, by default the py_neuromodulation/nm_settings.json are read
|
|
278
|
-
line_noise : int | float | None, optional
|
|
279
|
-
line noise, by default 50
|
|
280
|
-
sampling_rate_features_hz : int | float | None, optional
|
|
281
|
-
feature sampling rate, by default None
|
|
282
|
-
path_grids : _PathLike | None, optional
|
|
283
|
-
path to grid_cortex.tsv and/or gird_subcortex.tsv, by default Non
|
|
284
|
-
coord_names : list | None, optional
|
|
285
|
-
coordinate name in the form [coord_1_name, coord_2_name, etc], by default None
|
|
286
|
-
coord_list : list | None, optional
|
|
287
|
-
coordinates in the form [[coord_1_x, coord_1_y, coord_1_z], [coord_2_x, coord_2_y, coord_2_z],], by default None
|
|
288
|
-
verbose : bool, optional
|
|
289
|
-
log stream computation time information, by default True
|
|
290
|
-
"""
|
|
291
|
-
|
|
292
|
-
if nm_channels is None and data is not None:
|
|
293
|
-
nm_channels = nm_define_nmchannels.get_default_channels_from_data(
|
|
294
|
-
data
|
|
295
|
-
)
|
|
296
|
-
|
|
297
|
-
if nm_channels is None and data is None:
|
|
298
|
-
raise ValueError(
|
|
299
|
-
"Either `nm_channels` or `data` must be passed to `Stream`."
|
|
300
|
-
)
|
|
301
|
-
|
|
302
|
-
super().__init__(
|
|
303
|
-
sfreq,
|
|
304
|
-
nm_channels,
|
|
305
|
-
settings,
|
|
306
|
-
line_noise,
|
|
307
|
-
sampling_rate_features_hz,
|
|
308
|
-
path_grids,
|
|
309
|
-
coord_names,
|
|
310
|
-
coord_list,
|
|
311
|
-
verbose,
|
|
312
|
-
)
|
|
313
|
-
|
|
314
|
-
self.data = data
|
|
315
|
-
|
|
316
|
-
self.target_idx_initialized = False
|
|
317
|
-
|
|
318
|
-
def run(
|
|
319
|
-
self,
|
|
320
|
-
data: np.ndarray | pd.DataFrame = None,
|
|
321
|
-
out_path_root: _PathLike | None = None,
|
|
322
|
-
folder_name: str = "sub",
|
|
323
|
-
parallel: bool = False,
|
|
324
|
-
n_jobs: int = -2,
|
|
325
|
-
) -> pd.DataFrame:
|
|
326
|
-
"""Call run function for offline stream.
|
|
327
|
-
|
|
328
|
-
Parameters
|
|
329
|
-
----------
|
|
330
|
-
data : np.ndarray | pd.DataFrame
|
|
331
|
-
shape (n_channels, n_time)
|
|
332
|
-
out_path_root : _PathLike | None, optional
|
|
333
|
-
Full path to store estimated features, by default None
|
|
334
|
-
If None, data is simply returned and not saved
|
|
335
|
-
folder_name : str, optional
|
|
336
|
-
folder output name, commonly subject or run name, by default "sub"
|
|
337
|
-
|
|
338
|
-
Returns
|
|
339
|
-
-------
|
|
340
|
-
pd.DataFrame
|
|
341
|
-
feature DataFrame
|
|
342
|
-
"""
|
|
343
|
-
|
|
344
|
-
super().run() # reinitialize the stream
|
|
345
|
-
|
|
346
|
-
if data is not None:
|
|
347
|
-
data = self._handle_data(data)
|
|
348
|
-
elif self.data is not None:
|
|
349
|
-
data = self._handle_data(self.data)
|
|
350
|
-
elif self.data is None and data is None:
|
|
351
|
-
raise ValueError("No data passed to run function.")
|
|
352
|
-
|
|
353
|
-
if parallel is True:
|
|
354
|
-
self._check_settings_for_parallel()
|
|
355
|
-
|
|
356
|
-
return self._run_offline(
|
|
357
|
-
data, out_path_root, folder_name, parallel=parallel, n_jobs=n_jobs
|
|
358
|
-
)
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
# include the filename in the log output
|
|
4
|
-
# Configure the logger
|
|
5
|
-
logger = logging.getLogger("PynmLogger")
|
|
6
|
-
logger.setLevel(logging.INFO)
|
|
7
|
-
|
|
8
|
-
# Create a file handler and set its level to DEBUG
|
|
9
|
-
file_handler = logging.FileHandler("logfile_pynm.log")
|
|
10
|
-
file_handler.setLevel(logging.INFO)
|
|
11
|
-
|
|
12
|
-
# console_handler = logging.StreamHandler()
|
|
13
|
-
# console_handler.setLevel(logging.DEBUG)
|
|
14
|
-
|
|
15
|
-
# Create a formatter and add it to the handler
|
|
16
|
-
formatter = logging.Formatter(
|
|
17
|
-
"%(asctime)s:%(levelname)s:%(name)s:%(filename)s:%(message)s"
|
|
18
|
-
)
|
|
19
|
-
file_handler.setFormatter(formatter)
|
|
20
|
-
# console_handler.setFormatter(formatter)
|
|
21
|
-
|
|
22
|
-
# Add the file handler to the logger
|
|
23
|
-
logger.addHandler(file_handler)
|
|
24
|
-
# logger.addHandler(console_handler)
|
|
@@ -1,188 +0,0 @@
|
|
|
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,,
|
tests/__init__.py
DELETED
|
File without changes
|