Skip to main content
Design by Gabriella Chan

NOTE: This is an early release; the neuromodes API is subject to breaking changes prior to a stable release.

Eigenmode-based brain mapping and modelling toolbox developed by the Neural Systems and Behaviour Lab. Documentation can be found here, and source code can be found here.

Features

https://github.com/NSBLab/neuromodes/raw/main/docs/_static/overview.png

Asterisk (*) indicates features under development that are not yet available.

  • eigen: Compute geometric eigenmodes from cortical surface meshes, optionally incorporating spatial heterogeneity

  • basis: Decompose and reconstruct cortical maps using the geometric eigenmodes, or another basis set

  • nulls: Generate null models of cortical maps that preserve spatial autocorrelation, using the Eigenstrapping method from Koussis et al. (2025)

  • waves: Simulate neural activity and BOLD signals using the wave model from Pang et al. (2023)

  • network: Generate models of structural connectomes using the Geometric Eigenmode Model from Normand et al. (2025)

  • io: Access triangular surface meshes for human, macaque, and marmoset cortices

  • morphometry (coming soon): Quantify multiscale anatomical differences using Mode-Based Morphometry from Cao et al. (2024)

  • parcellation (coming soon): Create parcellations with any number of regions using the hierarchical bipartitioning method from Pang et al. (2025)

Installation

neuromodes works with Python 3.10+, and can be installed via:

pip install neuromodes

To try out any newer features under development, clone from our dev branch instead via:

pip install git+https://github.com/NSBLab/neuromodes.git@dev

If you wish to run the tutorials, please instead install our extra tutorials dependencies via:

pip install "neuromodes[tutorials] @ git+https://github.com/NSBLab/neuromodes.git"

If you encounter any problems, please consider opening an issue. Meanwhile, try switching to the exact environment used for development via the modern project and package manager UV:

git clone https://github.com/NSBLab/neuromodes
cd neuromodes
uv venv --python 3.14.3
uv sync --frozen

Tests can be run with pytest from the repository root:

cd neuromodes
pip install pytest  # or `uv sync --extra testing`
pytest tests

Citing

If you use neuromodes in your work, please cite the following three papers:

J.C. Pang, K.M. Aquino, M. Oldehinkel, P.A. Robinson, B.D. Fulcher, M. Breakspear, A. Fornito, Geometric constraints on human brain function, Nature, 618, 566–574 (2023) (DOI: 10.1038/s41586-023-06098-1)

M. Reuter, F-E. Wolter, N. Peinecke, Laplace-Beltrami spectra as ‘Shape-DNA’ of surfaces and solids, Computer-Aided Design, 38(4), 342-366 (2006). (DOI: 10.1016/j.cad.2005.10.011)

C. Wachinger, P. Golland, W. Kremen, B. Fischl, M. Reuter, BrainPrint: a discriminative characterization of brain morphology, Neuroimage, 109, 232-248 (2015). (DOI: 10.1016/j.neuroimage.2015.01.032)

If you use the hetero parameter in EigenSolver, please also cite:

V. Barnes, J. Cruddas, T. Cao, I.Z. Pope, T. Xu, T. Funck, N. Palomero-Gallagher, J.C. Pang, A. Fornito, Regional heterogeneity shapes macroscopic wave dynamics of the human and non-human primate cortex, BioRxiv (2026) (DOI: 10.64898/2026.01.22.701178)

If you use the compute_gem function, please also cite:

F. Normand, M. Gajwani, T. Cao, J. Cruddas, A. Sangchooli, S. Oldham, A. Holmes, P.A. Robinson, J.C. Pang, A. Fornito, Geometric constraints on the architecture of mammalian cortical connectomes, BioRxiv (2025) (DOI: 10.1101/2025.09.17.676944)

If you use the eigenstrap function, please also cite:

N.C. Koussis, J.C. Pang, R. Phogat, J. Jeganathan, B. Paton, A. Fornito, P.A. Robinson, B. Misic, M. Breakspear, Generation of surrogate brain maps preserving spatial autocorrelation through random rotation of geometric eigenmodes, Imaging neuroscience (2025) (DOI: 10.1162/IMAG.a.71)

Citations for cortical surface meshes and maps can be found in neuromodes/data/included_data.csv

License information

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (cc-by-nc-sa). See the LICENSE file for details.

Metadata

Release files for neuromodes 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neuromodes 0.1.0
File Size Uploaded Provenance Actions
neuromodes-0.1.0.tar.gz 4.8 MB Without provenance Details for neuromodes-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for neuromodes 0.1.0
File Interpreter ABI Platform Actions
neuromodes-0.1.0-py3-none-any.whl Python 3 none any Details for neuromodes-0.1.0-py3-none-any.whl

Total release size: 9.6 MB

Release files / neuromodes-0.1.0.tar.gz

Download URL neuromodes-0.1.0.tar.gz
Size 4.8 MB
Tags Source
SHA-256 checksum
How to use checksums
bc49cf3d22cc5d8247471826aa0638f6986f0cfb1343da70277c85bf15ed7c4b
BLAKE2b-256 checksum
How to use checksums
e988807146ef48d2e9d0fde4dfea6c0364ddbdbac16e6b31571a98f63025b3c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.17

Release files / neuromodes-0.1.0-py3-none-any.whl

Download URL neuromodes-0.1.0-py3-none-any.whl
Size 4.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cfc48c74a1094fff1f32d6fedfc0d88c54108843bb6ee19a0e1f82fd703d4fb0
BLAKE2b-256 checksum
How to use checksums
e6960000a58db37d892c5ceffef444ffb265c35595ce670a0084f2c165c14a7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.17

Security for neuromodes 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page