MNE-Python 1.8 released on 2024-08-19

Hello friends and fans of MNE-Python! I’m happy to announce that we have released MNE-Python 1.8. Welcome and thanks to new contributors Farzin Negahbani, Michal Žák, Nicolas Fourcaud-Trocmé, Noah Markowitz, Ping-Keng Jao, Sammi Chekroud, and Xabier de Zuazo! Note that there is now a website page dedicated to contributor credit.

Full release notes are here. Notable changes include:

  • MNE-Python 1.8 requires newer versions of some key dependencies (NumPy, SciPy, Matplotlib, scikit-learn) than MNE-Python 1.7 did. See the release notes for details.
  • MNE-Python 1.8 will be the last version to support Python 3.9. If you have existing environments using Python 3.9 that you expect to still be using in 3-4 months, please plan accordingly (e.g., upgrade Python, recreate the environment with a Python 3.10+, or commit to pinning MNE-Python<=1.8 in that environment).
  • When installing via pip, there are new installation variants depending on which Qt binding you want to use: mne[full-pyside6], mne[full-pyqt6], and mne[full-no-qt]. The option mne[full] is equivalent to mne[full-pyqt6].
  • Various improvements to type hints, which should allow for better code completion suggestions in IDEs.
  • New function compute_sme() to compute Standardized Measurement Error for ERPs.
  • Channel/vertex adjacency objects are now sparse arrays, not matrices, meaning that they behave differently with the * operator (switch to the @ operator to guarantee matrix multiplication instead of element-wise). Most users will not notice a difference, but if you’re doing something special with your adjacency matrices, please double-check your code.
  • Reduced memory usage in some cases of TFCE clustering.
  • Support for complex data types in Spectrum objects.
  • Fixes to plotting in some corner cases for CSDs and SourceEstimates.
  • fetch_fsaverage now returns a Path object instead of a string, so path concatenation must now use / operator instead of +.
3 Likes