Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 36 additions & 22 deletions JOSS/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ authors:
orcid: 0000-0001-5865-921X
affiliation: 1
- name: Dennis Croonenberg
orcid: 0009-0001-4303-9306
equal-contrib: false
affiliation: 2
- name: Laura Dugué
orcid: 0000-0003-3085-1458
Expand All @@ -27,26 +25,48 @@ authors:
affiliations:
- name: Université Paris Cité, INCC UMR 8002, CNRS, F-75006 Paris, France
index: 1
- name: Independent Researcher, The Netherlands
- name: Independent researcher, The Netherlands
index: 2
- name: Institut Universitaire de France (IUF), Paris, France
index: 3


date: 15 September 2025
date: 17 February 2026
bibliography: references.bib

---

# Summary
Oscillatory cortical activity has been found to systematically propagate across space as traveling waves [@muller_cortical_2018]. Growing evidence links those spatiotemporal patterns to cognitive functions including, but not limited to visual spatial attention [@fakche2024perceptual], memory [@mohan2024direction] and consciousness [@bhattacharya2022propofol]. Detecting and characterizing traveling waves in non-invasive multichannel recordings of brain activity requires multiple processing and analysis steps, some of which are interchangeable while others can lead to diverging interpretations of the same data.
WaveSpace is a modular Python toolbox for the simulation and analysis of traveling wave dynamics in multichannel recording arrays. Based on a single, flexible data class users can execute, compare and recombine multiple commonly used analysis steps as well as evaluate their performance against simulated benchmarks.

# Statement of need
Various approaches to detect and characterize cortical traveling waves have emerged in the literature. Typically, laboratories develop customized pipelines tailored to their experimental requirements and software platform preferences [@alexander_measurement_2006;@muller_stimulus-evoked_2014;@alamia_alpha_2019;@das_how_2022; but see also; @gutzen_modular_2024; for a notable exception].

The diversity of methods and implementations found in the literature poses challenges for researchers, both in selecting the one most suitable for their own studies and in directly comparing the performance of different pipelines. WaveSpace addresses this gap by integrating commonly used strategies into a single modular framework. This framework ensures that modules for preprocessing, data decomposition, spatial arrangement of sensor positions, wave analysis, and evaluation are interchangeable within the same workflow. Additionally, a simulation module allows for the generation of benchmarking data with desired properties to directly test the accuracy and specificity of planned analysis pipelines in silico. The resulting pipelines are ready-to-use in empirical studies [@petras_locally_2025;@fakche_alpha_2024].

# State of the field
Several single purpose pipelines for the analysis of cortical traveling waves exist. Table 1 shows a non-exhaustive list of openly available analysis code. In most cases, the provided code accompanies, and is tailored towards, a single experimental contribution to the scientific literature on cortical traveling waves.

Table 1. Single‑purpose tools for traveling‑wave analysis.

| Tool | Language | Method | Repository |
|---|---|---|---|
| wave‑matlab | MATLAB | phase-distance correlation | https://github.com/mullerlab/wave-matlab |
| Traveling‑wave‑analysis | Python | SVD‑based phase‑wave analysis | https://github.com/ScaleSymmetry/Traveling-wave-analysis |
| travellingWaveEEG | MATLAB | 2D FFT | https://github.com/artipago/travellingWaveEEG |
| Traveling‑wave‑analysis | MATLAB | Circular‑linear correlations | https://github.com/jacobslab/Traveling-wave-analysis |
| NeuroPattToolbox | MATLAB | Optical flow analysis | https://github.com/BrainDynamicsUSYD/NeuroPattToolbox |
| cobrawap | Python + Snakemake | Optical flow analysis | https://github.com/NeuralEnsemble/cobrawap |
| comparing-phase-based-and-Granger-based-analyses | MATLAB | Phase gradient and Granger causality analysis | https://github.com/artipago/comparing-phase-based-and-Granger-based-analyses |

Oscillatory cortical activity has been found to systematically propagate across space [@muller_cortical_2018]. Various approaches to detect and characterize such spatiotemporal patterns of activity, often referred to as "oscillatory cortical traveling waves (ocTW)," have emerged in the literature. Typically, laboratories develop customized pipelines tailored to their experimental requirements and software platform preferences [@alexander_measurement_2006; @muller_stimulus-evoked_2014; @alamia_alpha_2019;@das_how_2022; but see also @gutzen_modular_2024 for a notable exception].
In principle, multi-purpose neurophysiology data analysis packages such as fieldtrip [@oostenveld2011fieldtrip] for Matlab or MNE [@gramfort2014mne] for Python could be extended to include traveling wave analysis methods. Given the wide variety of available approaches and the lack of systematic comparison in the literature, WaveSpace was instead designed as a standalone tool with consistent workflows dedicated exclusively to traveling wave analysis. However, to ensure users can still benefit from the pre-processing, time-frequency decomposition and visualization methods provided by MNE, WaveSpace easily integrates MNE data objects at any stage of processing.

The diversity of methods and implementations found in the literature poses challenges for researchers, both in selecting the one most suitable for their own studies and in directly comparing the performance of different pipelines. WaveSpace addresses this gap by integrating commonly used strategies into a single modular framework. This framework ensures that modules for preprocessing, data decomposition, spatial arrangement of sensor positions, wave analysis, and evaluation are interchangeable within the same workflow. The resulting pipelines are ready-to-use in empirical studies [@petras_locally_2025;@fakche_alpha_2024].
# Functionality and software design
WaveSpace has been developed to offer a central location for gathering analysis methods for the detection of cortical traveling waves, primarily in non-invasive electrophysiology data such as electro- or magnetoencephalography. All WaveSpace functionality is based on a single data class, called WaveData, that enforces conventions for data dimension order and dimension naming. This allows for most processing steps to be interchangeable. The WaveData class organizes the in- and output of consecutive processing steps into discrete data-buckets, where each function takes a data-bucket as input and writes its output to a new data-bucket.

# Functionality
WaveSpace contains 5 modules (see figure 1 for module overview):
The entire framework is comprehensively documented and includes example scripts to facilitate its adoption.

WaveSpace contains 5 core modules (see figure 1 for module overview):

- Decomposition: Provides multiple techniques to decompose broadband data into frequency components, including FFT-based methods (e.g., wavelets, filter-Hilbert), empirical mode decomposition (EMD), and generalized phase analysis.

Expand All @@ -58,27 +78,21 @@ WaveSpace contains 5 modules (see figure 1 for module overview):

- Plotting: Contains visualization tools for each analysis option.

The entire framework is comprehensively documented and includes example scripts to facilitate its adoption.

![WaveSpace Module Overview](WaveSpace_overview.png)
*Figure 1: Overview of WaveSpace modules.*

# Research impact statement
WaveSpace has been introduced during a workshop at the 47th European conference on visual perception (2025) and used in peer reviewed as well as ongoing work [@petras_locally_2025;@fakche_alpha_2024;PetrasDugue2024ECVP;@kong2025oscillatory]. Users are invited to contribute to the ongoing package development via github.

# Funding

This project received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation program (grant agreement No. 852139 - Laura Dugué).

# Toolbox dependencies

Python (3.9.21)
mne (1.8.0)
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)
[Environment file](https://github.com/kpetras/WaveSpace/blob/main/WaveSpaceEnv.yaml)

# References

# AI usage disclosure
Github copilot in "ask" mode has been used in the initial translation of Matlab code to Python. When the resulting code was found to be inaccurate and failed to match the style of the rest of the package, most of it was manually re-written. Single word autocomplete was used throughout for code and comments. Copilot was used for formatting suggestions. No agentic AI was used.
76 changes: 76 additions & 0 deletions JOSS/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,79 @@ @article{petras_locally_2025
note = {Publisher: Cold Spring Harbor Laboratory},
pages = {2025--01},
}

@article{fakche2024perceptual,
title={Perceptual cycles travel across retinotopic space},
author={Fakche, Camille and Dugu{\'e}, Laura},
journal={Journal of Cognitive Neuroscience},
volume={36},
number={1},
pages={200--216},
year={2024},
publisher={MIT Press One Broadway, 12th Floor, Cambridge, Massachusetts 02142, USA~…}
}

@article{mohan2024direction,
title={The direction of theta and alpha travelling waves modulates human memory processing},
author={Mohan, Uma R and Zhang, Honghui and Ermentrout, Bard and Jacobs, Joshua},
journal={Nature Human Behaviour},
volume={8},
number={6},
pages={1124--1135},
year={2024},
publisher={Nature Publishing Group UK London}
}

@article{bhattacharya2022propofol,
title={Propofol anesthesia alters cortical traveling waves},
author={Bhattacharya, Sayak and Donoghue, Jacob A and Mahnke, Meredith and Brincat, Scott L and Brown, Emery N and Miller, Earl K},
journal={Journal of Cognitive Neuroscience},
volume={34},
number={7},
pages={1274--1286},
year={2022},
publisher={MIT Press One Broadway, 12th Floor, Cambridge, Massachusetts 02142, USA~…}
}

@article{oostenveld2011fieldtrip,
title={FieldTrip: Open source software for advanced analysis of MEG, EEG, and invasive electrophysiological data},
author={Oostenveld, Robert and Fries, Pascal and Maris, Eric and Schoffelen, Jan-Mathijs},
journal={Computational intelligence and neuroscience},
volume={2011},
number={1},
pages={156869},
year={2011},
publisher={Wiley Online Library}
}

@article{gramfort2014mne,
title={MNE software for processing MEG and EEG data},
author={Gramfort, Alexandre and Luessi, Martin and Larson, Eric and Engemann, Denis A and Strohmeier, Daniel and Brodbeck, Christian and Parkkonen, Lauri and H{\"a}m{\"a}l{\"a}inen, Matti S},
journal={neuroimage},
volume={86},
pages={446--460},
year={2014},
publisher={Elsevier}
}

@article{kong2025oscillatory,
title={Oscillatory Traveling Waves in Visual Search},
author={Kong, Yue and Petras, Kirsten and Marque, Philippe and VanRullen, Rufin and Dugu{\'e}, Laura},
journal={Journal of Vision},
volume={25},
number={9},
pages={1829--1829},
year={2025},
publisher={The Association for Research in Vision and Ophthalmology}
}

@article{PetrasDugue2024ECVP,
author = {Petras, Kirsten and Dugué, Laura},
title = {Cortical traveling waves and their measurement},
journal = {Perception},
year = {2024},
volume = {53},
number = {Supplement},
pages = {ECVP 2024 Abstracts},
note = {Talk in Symposium 3: Space matters: Cortical traveling waves and their role in perception and attention},
}