The MNE-CPP Project

What is MNE?

MNE-CPP is part of The MNE Project, a set of tools for neurophysiology analysis encompassing various projects that spawn from MNE-C, originally written by Matti Hämäläinen.

Other projects include:

  • MNE-Python - a python reimplementation of MNE-C, also extended with new visualization and analysis capabilities.
  • MNE-MATLAB - a MATLAB interface for MNE structures and functions.
  • MNE-C - the original implementation of the MNE toolset in C (Manual).

What is MNE-CPP?

MNE-CPP is both an open-source collection of cross-platform software tools and a framework for development. We provide two main GUI applications, MNE Scan and MNE Analyze, as well as several command line tools. MNE Scan is used for acquisition and real-time processing, while MNE Analyze is used for visualization and analysis of pre-recorded data.

MNE-CPP provides a cross-platform library which allows the processing of MEG/EEG data. It can be used to develop new applications, or to add functionality to existing ones.

MNE-CPP is open-source licensed under BSD (clause 3). MNE-CPP has two external dependencies, namely Qt and Eigen.

Why use MNE-CPP?

We are targeting two user groups:

  • Front-End users with little or no coding background. These users are interested in straight-forward setups and applications with an easy to use GUI, such as MNE Scan and MNE Analyze. For more information see our documentation section.
  • Back-End users who are experienced with programming in C++ and want to use MNE-CPP functionalities to build their own applications. For more information see our Development section.

To that end, we aim to create software that allows users to do as much or as little coding as they are comfortable with, by making components of our software modular and making the process of adding functionality as straight-forward as possible.

What’s next?

MNE-CPP is a community project. Contributions by new developers are always welcomed and greatly appreciated. If you are planning to contribute to MNE-CPP our contributor page is a good point to start.

Currently, MNE-CPP’s main development efforts can be divided into the following projects:

MNEScan MNE Scan is the real time component of MNE CPP. With its acquisition and algorithmic plugin architecture it is able to acquire and process data of several MEG/EEG systems (TMSI Refa, eegosports, gtec, brainamp, LSL, VectorView, BabyMEG) in real-time. It is in active clinical use at the Boston Children’s Hospital.
MNEAnalyze MNE Analyze provides an easy to use GUI for sensor and source level analysis.
LibraryAPI Library API describes the core libraries and their APIs provided by the MNE-CPP project. All MNE-CPP applications, e.g., MNE Scan and MNE Analyze, are solely based on these libraries, Qt5 and Eigen.

Releases are versioned based on semantic versioning. Currently all features are subject to change as we are still making broad changes to the libraries and applications of MNE-CPP.