Metadata-Version: 2.4
Name: modewise
Version: 0.2.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Rust
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Dist: numpy>=1.24
Requires-Dist: pytest>=8 ; extra == 'test'
Requires-Dist: h5py>=3 ; extra == 'test'
Requires-Dist: pandas>=1.5 ; extra == 'test'
Requires-Dist: xarray>=2023.1 ; extra == 'xarray'
Provides-Extra: test
Provides-Extra: xarray
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
License-File: THIRD_PARTY_LICENSES.md
Summary: Data-adaptive mode decomposition and analysis of multichannel signals (fMRI, EEG), with a Rust core
Keywords: mode decomposition,MVMD,EMD,wavelets,fMRI,EEG,connectivity
Author: Ian Philip Eglin
License-Expression: BSD-3-Clause
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/ipeglin/modewise/blob/main/CHANGELOG.md
Project-URL: Documentation, https://ipeglin.github.io/modewise/
Project-URL: Repository, https://github.com/ipeglin/modewise

# modewise

Data-adaptive signal decomposition for multichannel recordings (fMRI first; EEG, MEG and fNIRS by
design), with a Rust core, this Python package and a command line.

- **Decompositions:** MVMD, noise-assisted MVMD, VMD, VLMD, EMD, EEMD, CEEMDAN, MEMD and the
  MODWT multiresolution analysis.
- **Analysis:** spectra and band amplitude (ALFF), Hilbert and Morlet time–frequency maps,
  functional connectivity, epochs with an explicit haemodynamic lag, regions from atlases, NIfTI
  parcellation, and permutation statistics across a cohort.
- **Pipelines** in TOML or Python run over whole datasets, cached by content and recorded.

```python
import numpy as np
import modewise

t = np.arange(600) / 1.25
x = np.vstack([np.sin(2 * np.pi * 0.02 * t) + np.sin(2 * np.pi * 0.2 * t)])
result = modewise.mvmd(x, 1.25, num_modes=2, alpha=2000.0, init="linear")
print(result.centre_frequencies_hz)
```

Documentation: https://ipeglin.github.io/modewise/ · Source: https://github.com/ipeglin/modewise ·
Licence: BSD-3-Clause.

