diff --git a/Examples/WSExampleSimulations.py b/Examples/WSExampleSimulations.py index 5d3582f..61025e9 100644 --- a/Examples/WSExampleSimulations.py +++ b/Examples/WSExampleSimulations.py @@ -202,7 +202,7 @@ #%% Plot an example timeseries (takes long) for trl in range(waveData.get_data("SimulatedData").shape[0]): ani = Plotting.animate_grid_data(waveData, DataBucketName="SimulatedData", dataInd=trl, probepositions=[(0,15), (5,15), (10,15), (15,15), (19,15), (19,15)]) - plot_file = output_path + "/SimulationAnimation_{trl}.gif" + plot_file = output_path + f"/SimulationAnimation_{trl}.gif" ani.save(plot_file) diff --git a/README.md b/README.md index 6dfdb7a..e91883d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# WaveSpace version 1.1.7 +# WaveSpace version 1.1.8 WaveSpace is a Python toolbox for simulating, detecting, and analyzing spatiotemporal traveling waves in neural sensor array data. It provides tools for generating synthetic datasets, and applying a range of wave analysis techniques such as optical flow, 2D FFT, circular-linear correlation and singular value decomposition. In addition, it contains pipelines to decompose multi-dimensional timeseries data into its frequency components to derive robust phase estimates. WaveSpace’s WaveData class provides a structured approach to managing complex datasets, while its plotting helpers facilitate intuitive visualization of spatiotemporal patterns. ## Documentation @@ -10,7 +10,7 @@ Download latest version from [here](https://github.com/kpetras/WaveSpace/tree/ma Open a terminal, navigate to the directory you downloaded to and install with ``` -pip install WaveSpace-1.1.7-py3-none-any.whl +pip install WaveSpace-1.1.8-py3-none-any.whl ``` ## Testing diff --git a/WaveSpace.egg-info/PKG-INFO b/WaveSpace.egg-info/PKG-INFO deleted file mode 100644 index 2bcb0f5..0000000 --- a/WaveSpace.egg-info/PKG-INFO +++ /dev/null @@ -1,111 +0,0 @@ -Metadata-Version: 2.2 -Name: WaveSpace -Version: 1.1.7 -Summary: A Python package for the analysis of cortical traveling waves -Home-page: https://github.com/kpetras/WaveSpace -Author: Kirsten Petras -Author-email: kerschden[at]gmail.com -License: GNU General Public License -Classifier: Development Status :: 4 - beta -Classifier: Intended Audience :: Science/Research -Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) -Classifier: Programming Language :: Python :: 3.9 -Classifier: Operating System :: OS Independent -Requires-Python: >=3.9, <3.10 -Description-Content-Type: text/markdown -Requires-Dist: numpy>=1.26.4 -Requires-Dist: matplotlib>=3.9.2 -Requires-Dist: scipy>=1.13.1 -Requires-Dist: plotly>=5.24.1 -Requires-Dist: pint>=0.24.4 -Requires-Dist: pyvista>=0.44.2 -Requires-Dist: chaospy>=4.3.19 -Requires-Dist: pandas>=2.2.3 -Requires-Dist: scikit-learn>=1.6.1 -Requires-Dist: scikit-image>=0.18.1 -Requires-Dist: tvb-gdist>=2.2.1 -Requires-Dist: emd>=0.8.0 -Requires-Dist: mne>=1.8.0 -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: description-content-type -Dynamic: home-page -Dynamic: license -Dynamic: requires-dist -Dynamic: requires-python -Dynamic: summary - -# WaveSpace version 1.1.7 -WaveSpace is a Python toolbox for simulating, detecting, and analyzing spatiotemporal traveling waves in neural sensor array data. It provides tools for generating synthetic datasets, and applying a range of wave analysis techniques such as optical flow, 2D FFT, circular-linear correlation and singular value decomposition. In addition, it contains pipelines to decompose multi-dimensional timeseries data into its frequency components to derive robust phase estimates. WaveSpace’s WaveData class provides a structured approach to managing complex datasets, while its plotting helpers facilitate intuitive visualization of spatiotemporal patterns. - -## Documentation -Access latest documentation from [here](https://wavespace.readthedocs.io/en/latest/) - -## Installation - -Download latest version from [here](https://github.com/kpetras/WaveSpace/tree/main/package/dist) - -Open a terminal, navigate to the directory you downloaded to and install with -``` -pip install WaveSpace-1.1.7-py3-none-any.whl -``` - -## Testing - * Run tests locally using Python's built-in `unittest` framework from the `UnitTest` folder: - - ```bash - python -m unittest discover UnitTest - -## Contributing -See https://github.com/kpetras/WaveSpace/blob/main/CONTRIBUTING.md - -## Modules -### Decomposition: -Implements various frequency decomposition techniques, such as Fourier and wavelet transforms, Empirical Mode Decomposition (EMD) - -### Preprocessing: -Provides functions for cleaning, normalizing, and filtering time series data. - -### Plotting Helpers: -Contains utilities for visualizing cortical traveling waves using matplotlib & pyvista, including time-frequency plots, phase maps, and spatial-temporal representations. - -### Simulation: -Tools for generating synthetic cortical traveling waves, aiding in model validation and hypothesis testing. - -### Spatial Arrangement: -Handles spatial organization of sensor positions. Includes interpolation options - -### Statistics: -Offers methods for computing null distributions. - -### Utils: -A collection of general-purpose helper functions used throughout the toolbox, including data manipulation and file I/O. -#### The `WaveData` Class - -The `WaveData` class serves as a container for time-series data related to cortical traveling waves. It provides functionalities for data storage, manipulation, and analysis, ensuring a structured workflow for handling multi-channel neural recordings. - -##### **Key Features** -- **Initialization (`__init__`)**: Stores channel positions, time vectors, sample rates, and maintains a structured dataset with multiple *DataBuckets* for flexible data handling. -- **Data Management**: - - Supports multiple datasets through *DataBuckets*, enabling users to store, retrieve, and manipulate data flexibly. - - Provides methods to add, delete, and check the existence of specific *DataBuckets*. - - Allows appending datasets and setting an active dataset for streamlined analysis. -- **Data Processing**: - - **Cropping**: Enables temporal cropping of data using specific time intervals. - - **Trial Pruning**: Removes unwanted trials from datasets while maintaining metadata consistency. -- **Metadata Handling**: - - Stores and retrieves spatial arrangements of recording channels (`set_channel_positions`, `get_channel_positions`). - - Maintains a history of operations for reproducibility (`log_history`). - - Supports storage and retrieval of simulation and trial metadata (`set_simInfo`, `get_trialInfo`). -- **I/O and Persistence**: - - Saves objects to files for later retrieval (`save_to_file`). - - Provides a structured string representation (`__repr__`) for quick dataset summaries. - -This class is essential for organizing and processing large-scale neural recordings, offering flexibility in data structuring, preprocessing, and visualization. Let me know if you’d like any refinements! - -### Wave Analysis: -Core module for detecting, characterizing, and quantifying cortical traveling waves using advanced signal processing techniques. - -![overview](JOSS/WaveSpace_overview_smaller.png) diff --git a/WaveSpace.egg-info/SOURCES.txt b/WaveSpace.egg-info/SOURCES.txt deleted file mode 100644 index 71fba6a..0000000 --- a/WaveSpace.egg-info/SOURCES.txt +++ /dev/null @@ -1,42 +0,0 @@ -setup.py -../WaveSpace.egg-info/PKG-INFO -../WaveSpace.egg-info/SOURCES.txt -../WaveSpace.egg-info/dependency_links.txt -../WaveSpace.egg-info/requires.txt -../WaveSpace.egg-info/top_level.txt -../WaveSpace/__init__.py -../WaveSpace.egg-info/PKG-INFO -../WaveSpace.egg-info/SOURCES.txt -../WaveSpace.egg-info/dependency_links.txt -../WaveSpace.egg-info/requires.txt -../WaveSpace.egg-info/top_level.txt -../WaveSpace/Decomposition/EMD.py -../WaveSpace/Decomposition/FFT.py -../WaveSpace/Decomposition/GenPhase.py -../WaveSpace/Decomposition/Hilbert.py -../WaveSpace/Decomposition/MEMD_Matlab_translation.py -../WaveSpace/Decomposition/Morlet.py -../WaveSpace/Decomposition/__init__.py -../WaveSpace/PlottingHelpers/Plotting.py -../WaveSpace/PlottingHelpers/__init__.py -../WaveSpace/Preprocessing/Filter.py -../WaveSpace/Preprocessing/__init__.py -../WaveSpace/Simulation/SimulationFuns.py -../WaveSpace/Simulation/__init__.py -../WaveSpace/SpatialArrangement/SensorLayout.py -../WaveSpace/SpatialArrangement/__init__.py -../WaveSpace/Statistics/NullDistributions.py -../WaveSpace/Statistics/__init__.py -../WaveSpace/Utils/HelperFuns.py -../WaveSpace/Utils/ImportHelpers.py -../WaveSpace/Utils/WaveData.py -../WaveSpace/Utils/WaveResult.py -../WaveSpace/Utils/__init__.py -../WaveSpace/Utils/generateFromLog.py -../WaveSpace/WaveAnalysis/ClusterGradient.py -../WaveSpace/WaveAnalysis/DistanceCorrelation.py -../WaveSpace/WaveAnalysis/OpticalFlow.py -../WaveSpace/WaveAnalysis/OpticalFlowIllustrationWithCircle.py -../WaveSpace/WaveAnalysis/WaveActivity.py -../WaveSpace/WaveAnalysis/WaveAnalysis.py -../WaveSpace/WaveAnalysis/__init__.py \ No newline at end of file diff --git a/WaveSpace.egg-info/dependency_links.txt b/WaveSpace.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/WaveSpace.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/WaveSpace.egg-info/requires.txt b/WaveSpace.egg-info/requires.txt deleted file mode 100644 index fa904ef..0000000 --- a/WaveSpace.egg-info/requires.txt +++ /dev/null @@ -1,13 +0,0 @@ -numpy>=1.26.4 -matplotlib>=3.9.2 -scipy>=1.13.1 -plotly>=5.24.1 -pint>=0.24.4 -pyvista>=0.44.2 -chaospy>=4.3.19 -pandas>=2.2.3 -scikit-learn>=1.6.1 -scikit-image>=0.18.1 -tvb-gdist>=2.2.1 -emd>=0.8.0 -mne>=1.8.0 diff --git a/WaveSpace.egg-info/top_level.txt b/WaveSpace.egg-info/top_level.txt deleted file mode 100644 index e495f11..0000000 --- a/WaveSpace.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -WaveSpace diff --git a/WaveSpace/Decomposition/__init__.py b/WaveSpace/Decomposition/__init__.py index 4686717..1dfb98c 100644 --- a/WaveSpace/Decomposition/__init__.py +++ b/WaveSpace/Decomposition/__init__.py @@ -2,6 +2,6 @@ from . import FFT from . import GenPhase from . import Hilbert -from . import MEMD_Matlab_translation +#from . import MEMD_Matlab_translation from . import Morlet diff --git a/package/WaveSpace.egg-info/PKG-INFO b/package/WaveSpace.egg-info/PKG-INFO index 2bcb0f5..2b6d56b 100644 --- a/package/WaveSpace.egg-info/PKG-INFO +++ b/package/WaveSpace.egg-info/PKG-INFO @@ -1,31 +1,30 @@ Metadata-Version: 2.2 Name: WaveSpace -Version: 1.1.7 +Version: 1.1.8 Summary: A Python package for the analysis of cortical traveling waves Home-page: https://github.com/kpetras/WaveSpace Author: Kirsten Petras -Author-email: kerschden[at]gmail.com +Author-email: kirsten.petras[at]u-paris.fr License: GNU General Public License Classifier: Development Status :: 4 - beta Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) Classifier: Programming Language :: Python :: 3.9 Classifier: Operating System :: OS Independent -Requires-Python: >=3.9, <3.10 +Requires-Python: >=3.9 Description-Content-Type: text/markdown -Requires-Dist: numpy>=1.26.4 -Requires-Dist: matplotlib>=3.9.2 -Requires-Dist: scipy>=1.13.1 -Requires-Dist: plotly>=5.24.1 -Requires-Dist: pint>=0.24.4 -Requires-Dist: pyvista>=0.44.2 -Requires-Dist: chaospy>=4.3.19 -Requires-Dist: pandas>=2.2.3 -Requires-Dist: scikit-learn>=1.6.1 -Requires-Dist: scikit-image>=0.18.1 -Requires-Dist: tvb-gdist>=2.2.1 -Requires-Dist: emd>=0.8.0 -Requires-Dist: mne>=1.8.0 +Requires-Dist: numpy +Requires-Dist: matplotlib +Requires-Dist: scipy +Requires-Dist: plotly +Requires-Dist: pint +Requires-Dist: pyvista +Requires-Dist: pandas +Requires-Dist: scikit-learn +Requires-Dist: scikit-image +Requires-Dist: tvb-gdist +Requires-Dist: emd +Requires-Dist: mne Dynamic: author Dynamic: author-email Dynamic: classifier diff --git a/package/WaveSpace.egg-info/requires.txt b/package/WaveSpace.egg-info/requires.txt index fa904ef..82f33f6 100644 --- a/package/WaveSpace.egg-info/requires.txt +++ b/package/WaveSpace.egg-info/requires.txt @@ -1,13 +1,12 @@ -numpy>=1.26.4 -matplotlib>=3.9.2 -scipy>=1.13.1 -plotly>=5.24.1 -pint>=0.24.4 -pyvista>=0.44.2 -chaospy>=4.3.19 -pandas>=2.2.3 -scikit-learn>=1.6.1 -scikit-image>=0.18.1 -tvb-gdist>=2.2.1 -emd>=0.8.0 -mne>=1.8.0 +numpy +matplotlib +scipy +plotly +pint +pyvista +pandas +scikit-learn +scikit-image +tvb-gdist +emd +mne diff --git a/package/dist/WaveSpace-1.1.7-py3-none-any.whl b/package/dist/WaveSpace-1.1.8-py3-none-any.whl similarity index 83% rename from package/dist/WaveSpace-1.1.7-py3-none-any.whl rename to package/dist/WaveSpace-1.1.8-py3-none-any.whl index a8ad35b..17ea72e 100644 Binary files a/package/dist/WaveSpace-1.1.7-py3-none-any.whl and b/package/dist/WaveSpace-1.1.8-py3-none-any.whl differ diff --git a/package/setup.py b/package/setup.py index b0f3e07..08e98ad 100644 --- a/package/setup.py +++ b/package/setup.py @@ -5,7 +5,7 @@ setup( name='WaveSpace', - version='1.1.7', + version='1.1.8', description='A Python package for the analysis of cortical traveling waves', package_dir={'': '../'}, packages=find_packages(where='../'), @@ -22,20 +22,19 @@ 'Programming Language :: Python :: 3.9', 'Operating System :: OS Independent', ], - python_requires='>=3.9, <3.10', + python_requires='>=3.9', install_requires=[ - "numpy>=1.26.4", - "matplotlib>=3.9.2", - "scipy>=1.13.1", - "plotly>=5.24.1", - "pint>=0.24.4", - "pyvista>=0.44.2", - "chaospy>=4.3.19", - "pandas>=2.2.3", - "scikit-learn>=1.6.1", - "scikit-image>=0.18.1", - "tvb-gdist>=2.2.1", - "emd>=0.8.0", - "mne>=1.8.0" + "numpy", + "matplotlib", + "scipy", + "plotly", + "pint", + "pyvista", + "pandas", + "scikit-learn", + "scikit-image", + "tvb-gdist", + "emd", + "mne" ] ) \ No newline at end of file