MNE-Python 0.22 released

Hello everyone,

we’re ahead of our typical release cycle and just published MNE-Python 0.22! :tada::gift::santa:

Please find a detailed list of changes and contributors below.

With this year coming to a close, we’d like to take this opportunity to thank you all for your continued support, and wish you and your loved ones Happy Holidays.

Stay healthy and take care! :mask:

All the best,

Your MNE Team.

A few highlights

  • The 3D viewer of source time courses based on pyvista can now support picking labels from any freesurfer annotation. We highly recommend you now use pyvista and not pysurfer/mayavi for STC visualization.
  • Performing ICA is now much simpler for most users: instead of offering 3 parameters – n_components, n_pca_components, and max_pca_components – that would interact in often hard-to-understand ways, you can now simply pass a single parameter – n_components – to mne.preprocessing.ICA and get what you want. The n_pca_compoents and max_pca_components parameters have been deprecated and will be removed in MNE-Python 0.23. Please also see the “Notable API changes” section for details.
  • When plotting ICA sources via .ICA.plot_sources(), right-clicking on a component name will open a properties plot (the one you previously had to create using ICA.plot_properties()). This makes exploration of ICA data more interactive.
  • Annotations can now be shown and hidden interactively in raw plots using a checkbox. Extremely useful for datasets with overlapping Annotations!
  • Source estimates can now be baseline-corrected using their new apply_baseline() method.
  • The new function mne.stc_near_sensors() visualizes sEEG and ECoG data.
  • Fiducials can now be estimated when visualizing the coregistration by passing mri_fiducials=’estimated’ to mne.viz.plot_alignment().
  • Numerous improvements of volumetric source space support.
  • When cropping the baseline period of baseline-corrected Epochs, the information about the original baseline will be preserved to retain provenance.
  • We now offer spatio-spectral decomposition (SSD) via mne.decoding.SSD.
  • New readers: mne.read_evokeds_mff() for averaged MFFs, and for optical imaging data recorded using ISS Imgagent I/II hardware and BOXY recording software.

Notable API changes

We have changed a few things that will require you to adjust your code.

  • The n_pca_components and max_pca_components argument of mne.preprocessing.ICA has been deprecated, use n_components during initialization, and n_pca_components in ICA.apply() instead.
  • The trans argument of mne.extract_label_time_course() is deprecated and will be removed in 0.23 as it is no longer necessary.
  • The parameter event_colors in mne.viz.plot_epochs and mne.Epochs.plot() is deprecated, replaced by event_color which is consistent with mne.viz.plot_raw and provides greater flexibility.

Full list of API changes

Full changelog

For a full list of improvements and API changes, see

Find the full documentation at

Installing the new release

Since quite a few things – including dependencies – have changed, we recommend creating a new environment with a “fresh” installation. Please follow the installation instructions on our website:


As usual, we welcome your bug reports, feature requests, critiques, and contributions. Development takes place on GitHub. If you would like to contribute, star :star: the project, or just take a peek at the code, visit

You may follow us on Twitter:

We hope you will enjoy the new features and many, many small improvements we have added, and are looking forward to receiving your feedback.

Stay safe and take care!

The MNE-Python developers


MNE-Python is a community-driven project. We are always very happy to welcome new contributors of code and documentation! 34 people contributed to this release – and a whopping 10 were first-timers! Thank you all so very much for your time and effort, we truly appreciate it!

First-time contributors

  • Aniket Pradhan
  • Austin Hurst
  • Eduard Ort
  • Evan Hathaway
  • Hongjiang Ye
  • Jeff Stout
  • Jonathan Kuziek
  • Quianliang Li
  • Tod Flak
  • Victoria Peterson

Recurring contributors

  • Adam Li
  • Alexandre Gramfort
  • Christian Brodbeck
  • Clemens Brunner
  • Daniel McCloy
  • Denis A. Engemann
  • Eric Larson
  • Evgenii Kalenkovich
  • Fede Raimondo
  • Guillaume Favelier
  • Jean-Remi King
  • Jussi Nurminen
  • Keith Doelling
  • Kyle Mathewson
  • Mads Jensen
  • Mainak Jas
  • Marijn van Vliet
  • Mikolaj Magnuski
  • Olaf Hauk
  • Quianliang Li
  • Richard Höchenberger
  • Robert Luke
  • Stefan Appelhoff
  • Thomas Hartmann
1 Like