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
Communicatorclass, 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
| Concept | Description |
|---|---|
| Event system | Decoupled inter-plugin communication running on a dedicated thread |
| AbstractPlugin | Single base class for all MNE Analyze plugins |
| Model/View | Qt pattern separating data storage (AbstractModel) from presentation |
| Sample plugin | Empty plugin template at applications/mne_analyze/plugins/sampleplugin |