Skip to main content

MNE Analyze Development

MNE Analyze is MNE-CPP's offline data analysis and visualization application. All functionality — data loading, filtering, averaging, visualization, source localization — is implemented as plugins that communicate through a dedicated event system.

Unlike MNE Scan, MNE Analyze does not differentiate between plugin types. Every plugin inherits from AbstractPlugin and can provide menus, control panels, and views that are assembled into the main window at runtime. Data is managed through Qt's Model/View architecture, with custom models inheriting from AbstractModel.

Guides

  • Creating a Plugin — Full walkthrough for implementing a new plugin, including GUI elements (menus, controls, views), event subscriptions, and static build setup.
  • Event System — How plugins send and receive events via the Communicator class, with subscription patterns and a reference table of common event types.
  • Data Model — How to create a new data model for custom data types, including subclassing AbstractModel, registering with the data manager, and a complete minimal example.

Key Concepts

ConceptDescription
Event systemDecoupled inter-plugin communication running on a dedicated thread
AbstractPluginSingle base class for all MNE Analyze plugins
Model/ViewQt pattern separating data storage (AbstractModel) from presentation
Sample pluginEmpty plugin template at applications/mne_analyze/plugins/sampleplugin