Skip to main content

A library to process M/EEG data with a set of utility functions with a framework focused on continuous recordings and naturalistic stimuli.

Project description

natMEEG - Naturalistic M/EEG data analysis

PyPI version

v1.5.1 (2025-04-14)

Formerly named pyEEG

natMEEG is a library for processing M/EEG data built mostly on top of MNE-py and scikit-learn. It is framed to work with data collected with naturalistic stimuli, therefore with continuous recordings rather than trial-based designs. It allows analysis of continuous m/eeg and generation of temporal response functions with continuous signals as stimuli or real-valued events (e.g. word-level or phoneme-level features).

You can find the documentation here.

⚠️Caution:

  • Note that this code repository is unmaintained and intended for personal use. Most of the code about computing TRF is contained in pyeeg/models.py, especially in the class TRFEstimator and the function _svd_regress: the latter implements TRF estimation with memory efficient and accelerated computation for handling multiple epochs or multiple subjects.
  • It is recommended to use the code as a reference for your own implementation rather than relying on it for production use.
  • Finaly note that the repository went through a name change from pyEEG to natMEEG, so you might find references to pyEEG in the code and documentation.

Installation

Dependencies

natMEEG requires:

  • Python (>= 3.10)
  • psutil
  • tqdm
  • NumPy
  • SciPy
  • scikit-learn
  • matplotlib
  • h5py
  • pandas
  • mne (>= 0.16) [optional]

To generate the doc, Python package sphinx (>= 1.1.0), sphinx_rtd_theme and nbsphinx are required.

User Installation

From PyPI

You can install the package from PyPI using pip:

pip install natMEEG

If you want to install docs building dependencies, you can do:

pip install natMEEG[docs]

If you want to install the package with all dependencies (including MNE), you can do:

pip install natMEEG[full]

From Source

If you prefer to install the package from source, you can clone the repository or download release archive or also use the source distribution (.tar.gz file from PyPi) and build it locally. There is a C-extension that needs to compile, so you need to have a C compiler installed on your machine.

From terminal, cd in root directory of the library after cloning this repository (directory containing pyproject.toml file).

To get the package installed only through symbolic links, namely so that you can modify the source code and use modified versions at will when importing the package in your python scripts do:

pip install -e .

Otherwise, for a standard installation, you can run:

pip install .

Windows Users

There are C-extensions in the library, so you need to have a C compiler installed on your machine. If the default compiler does not work, you can try to install Visual Studio Build Tools and try again.

Optionally try with MinGW, making sure after instalation of it to add the path to mingw/bin in your PATH environment variable. You can check if it is correctly installed by running the following command in your terminal:

gcc --version

If this build tool is available it should be detected during build process (running pip install ., pip install -e . or python -m build).

Usage

The most common usage of the library is to compute temporal response functions (TRF) from continuous M/EEG data. The library provides a TRFEstimator class that allows you to fit a TRF model to your data. The TRF model can be used to predict the M/EEG signal from a stimulus signal (e.g. a continuous audio signal or a sequence of word features):

from pyeeg import TRFEstimator

trf = TRFEstimator(tmin=-0.2, tmax=0.5, srate=fs, alpha=100.0) # TRF between -200ms and 500ms, regularization parameter alpha=100.0
trf.fit(X, y) # assuming data loaded: X is the stimulus signal, y is the M/EEG signal
print(trf.score(X, y)) # Normally you would use a separate test set for this, but here we use the same data for simplicity
trf.plot() # plot the TRF

Examples

See files in examples/.

Computing Envelope TRF and spatial map from CCA

See examples/CCA_envelope.ipynb

Computing Word-feature TRF

See examples/TRF_wordonsets.ipynb

Working with Word vectors

See examples/import_WordVectors.ipynb

Documentation

You can generate an offline HTML version, or a PDF file of all the docs by following the following instructions (HTML pages are easier to navigate in and prettier than the PDF thanks to the nice theme brought by sphinx_rtd_theme).

Generate the documentation

To generate the documentation you will need sphinx to be installed in your Python environment, as well as the extension nbsphinx (for Jupyter Notebook integration) and the theme package sphinx_rtd_theme. Install those with:

pip install natMEEG[docs]

You can access the doc as HTML or PDF format. First get the source documentation files by cloning the repository or downloading the release archive. The documentation is located in the docs folder. To generate the documentation HTML pages, type in a terminal:

For Unix environment (from root directory, as it uses the Makefile):

make doc

For Windows environment (from docs folder, where make.bat is located):

cd docs
make.bat html

Then you can open the docs/build/html/index.html page in your favourite browser.

And for PDF version, simply use docpdf instead of doc above. Then open docs/build/latex/pyEEG.pdf in a PDF viewer.

Note: The PDF documentation can only be generated if latex and latxmk are present on the machine

To clean files created during build process (can be necessary to re-build the documentation):

make clean

License

This project is licensed under the terms of the GPL-3.0 license. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

natmeeg-1.6.10.tar.gz (271.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

natmeeg-1.6.10-cp313-cp313-win_amd64.whl (143.1 kB view details)

Uploaded CPython 3.13Windows x86-64

natmeeg-1.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.whl (157.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ x86-64

natmeeg-1.6.10-cp313-cp313-macosx_10_13_universal2.whl (139.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

natmeeg-1.6.10-cp312-cp312-win_amd64.whl (143.1 kB view details)

Uploaded CPython 3.12Windows x86-64

natmeeg-1.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl (157.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ x86-64

natmeeg-1.6.10-cp312-cp312-macosx_10_13_universal2.whl (139.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

natmeeg-1.6.10-cp310-cp310-win_amd64.whl (143.1 kB view details)

Uploaded CPython 3.10Windows x86-64

natmeeg-1.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl (156.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ x86-64

natmeeg-1.6.10-cp310-cp310-macosx_10_9_universal2.whl (139.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file natmeeg-1.6.10.tar.gz.

File metadata

  • Download URL: natmeeg-1.6.10.tar.gz
  • Upload date:
  • Size: 271.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for natmeeg-1.6.10.tar.gz
Algorithm Hash digest
SHA256 2fb785c567bc8b651f8d1aa71df31357a8f269f3b5a62291efa39103f10ae447
MD5 66fc09585e5793e6b2ece9527b328583
BLAKE2b-256 08d0aed3c29c2c7a265cdb9951f239a4d0796adcb48df13e1596bea63d2340ea

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: natmeeg-1.6.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 143.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for natmeeg-1.6.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e7b161a12975b2516372f5077405c9f000feeba5a1df01827689eacd2c05330f
MD5 af85c6defc635529a1b9c0aa54409c2b
BLAKE2b-256 06a8893d29573d73bbb8b5fa23a381401f32cc64dfa6a0c627203b7691cb1d0e

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 959bc6877208fe84308dc57600e2a4b66f506ff45e6972c506aa58d09722d42a
MD5 a4183b4f024b1b78c1ead4aa980cb21b
BLAKE2b-256 f9ce6a07e9ff1610864f2b21f1534d1c757c43c4ac6a342edb12b373ff653610

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d1e7cfd9025ca7d58793623f33c64391fe7fa70d69a27633fa0a57324c46cc5f
MD5 af231812b5a253af8f7cc545c546cb95
BLAKE2b-256 3d0bfa3b925b2a560a97396b101f47250136ba9ad0a1b302777085d11d74c450

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: natmeeg-1.6.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 143.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for natmeeg-1.6.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4d3f5208261998b68738b206084daaa50b3272617fa2bc47b26a55ba7665432b
MD5 d4e580cd02e05fd64b5c94a4a6c8c700
BLAKE2b-256 1c2dab2370ed5d0ce1c14d1ba3e7a1c23b8ac13c2b4751ecd1ccb2c620bb8772

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 20a8d8c35e8709f6ad32f960d067ae0f33d99b46e5bab5686df78802732d3a07
MD5 e964c79527b4f0f497ce0677178569f9
BLAKE2b-256 ea172dc88265c31e3acf94ae5ca23cd3fd878694eeffa88104705c0fb644d229

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 91cbfc4ac6cfe62c44bf458d28fd2d4fdd5b0e0e6c83ca94f1e73cc49ec3b8f3
MD5 26a25ad33873a5af31ae7af8a8dfc059
BLAKE2b-256 570a28d74df4945aaed6db30c6eb4cfd66376ab74a1578ba2f39e8d781ad17f0

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: natmeeg-1.6.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 143.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for natmeeg-1.6.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dc6562ceedb85a8bd894b514804593ac517ad33051785a34866d52c6dfcca19f
MD5 1e0876f594c8452797a7c3e1dbf640cf
BLAKE2b-256 53995bb3403366eca8d0605cecfdb421d9ec4e9a0909d5293a0df4ce5d8f914e

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 70b2f6cac99067c93e1907a2202c6ba15eb392590396a660836a7103487c11df
MD5 3d2487deee3f7e684ca37993a5b93195
BLAKE2b-256 93c2596d8e2551fef1663bf124438af958949f6b0b47ee3b997289dbfb45ca91

See more details on using hashes here.

File details

Details for the file natmeeg-1.6.10-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for natmeeg-1.6.10-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 178137a55b647e555c7f45f95b1082ae2c094897c9d5d5b13a5660c1ed581521
MD5 d9a28a9e782c661b4537da8222b591d6
BLAKE2b-256 f9343a0c0f0b4a3fe4e49f1238964768950481a433a6a065270ace9cc59b70b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page