From a274c066b4e910ed4635aabfc246495534ee7fd4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-4G4GNTG\\onwij" Date: Wed, 19 Nov 2025 23:12:10 +0100 Subject: [PATCH] Removed unnecessary dependency definitions --- Examples/WSExampleSimulations.py | 2 +- README.md | 4 +- WaveSpace.egg-info/PKG-INFO | 111 ------------------ WaveSpace.egg-info/SOURCES.txt | 42 ------- WaveSpace.egg-info/dependency_links.txt | 1 - WaveSpace.egg-info/requires.txt | 13 -- WaveSpace.egg-info/top_level.txt | 1 - WaveSpace/Decomposition/__init__.py | 2 +- package/WaveSpace.egg-info/PKG-INFO | 31 +++-- package/WaveSpace.egg-info/requires.txt | 25 ++-- ...y.whl => WaveSpace-1.1.8-py3-none-any.whl} | Bin 88239 -> 88173 bytes package/setup.py | 29 +++-- 12 files changed, 45 insertions(+), 216 deletions(-) delete mode 100644 WaveSpace.egg-info/PKG-INFO delete mode 100644 WaveSpace.egg-info/SOURCES.txt delete mode 100644 WaveSpace.egg-info/dependency_links.txt delete mode 100644 WaveSpace.egg-info/requires.txt delete mode 100644 WaveSpace.egg-info/top_level.txt rename package/dist/{WaveSpace-1.1.7-py3-none-any.whl => WaveSpace-1.1.8-py3-none-any.whl} (83%) 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 a8ad35b8fa6f981469431ed493ba0b4418020eaf..17ea72e3b4b13b49f05779daac88caf205b4930a 100644 GIT binary patch delta 9727 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 delta 9792 zcmaKS1yCGYxAhF}gy23QxI=IV?(Xgc4ema;TYzM6cXxNU;1(o6aCbt`M{?h-`|kID z^>@{&p5ABeb@n;cU444ZI~frg9wpu0f44PYjhwp0yyA{S(aG(oKzNEh&#Hy6#Vd`4f4pvM5{%&0dWK?WW!@{WuNu4OQE8r*|js1G;2$YB5g1h56rx zhr_)=GOc#jHuicd6m*Tb;V8%~Y{2o577yKzBy(h}_y)P4SD7F95ZX6-Vn2^Q>JuRY z*zI{t-+(9j#wAvZ(qg|MJ%nOQR;c-#V=9V9Woq=&$Fs@LzdozVVEaWYRcT==^Q#ng zk-TbX4kS4pXcMYmnsKNeYie3uj26|N%+VN@dC_l+%B&i<+&sN&CbT>ks_TY=NMn6i zcGHywbB-7XpRD#CmywG$2F35a@7Ta%1E&JKXAM}36rZH<#u6`}u>m!mch1AYb%_^T zztJUWhdc*L6!5aL%XdbD1unA;;3ok0qB4{(TNCG9j*n_}0 zfiW4{Dnx1vYh!n#T!>flsKu3~F#ExS>qFB=7x_Jugp3-4{2+~AE%A$(rXSP#9!C<( z%p|+7V?Emn(9L5wT0E0lt5`rXPV;uhT0SYRhh;L{$VmcjM20vZRVTyEy85*I))Me5 z@jH#<&60M9G-4+(FY8avMh6t)m&eiRz9sj~G;Q$hS@%BYnj|ohl57C)S-9`b8t=9| za;nys6?c0J3@r{`V(HK6Dj482N>d#B<;&^ZI=VUJ1V{YyjHQ08mB~FP%AkgR#3VKU zK~mEb^Pm&>G!cgy-#n_pbo>0Xs{F6O7`sd zhWOs~O?XTL^{x2_U5AbB4YN z5s}iMpeDzSiNa%rE_&K|J1n$1KNN5Vs@`aALA)3#N~w@mE&Y+lZ}19y$?YX>#$hTtsHD#&SoXs z;-aDj9AGz^7mTEjf9K0%0AhDv#Zt8cH8(K#WNcP7r~$TO>co2-1VIzYr`X| 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 ZF6jTH)%k<}OPaVQ@C}@^+{^t6_#bH2h1&oC 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