Installing MNE-C#

System requirements#

MNE-C runs on macOS (version 10.5 “Leopard” or later) and Linux (kernel 2.6.9 or later). Both 32- and 64-bit operating systems are supported; a PowerPC version for macOS can be provided upon request. At least 2 GB of memory is required, 4 GB or more is recommended. The software requires at least 80 MB of disk space. MATLAB is an optional dependency; the free MATLAB runtime is sufficient. If MATLAB is not present, the utilities mne_convert_mne_data, mne_epochs2mat, mne_raw2mat, and mne_simu will not work.

For boundary-element model (BEM) mesh generation, and for accessing the tkmedit program from mne_analyze, MNE-C needs access to a working installation of FreeSurfer, including the environment variables FREESURFER_HOME, SUBJECTS_DIR, and SUBJECT.


For installation on macOS, you also need:

  • the XCode developer tools.

  • an X Window System such as XQuartz. Version 2.7.9 of XQuartz should work out of the box; the most current version (2.7.11, as of May 2019) may require these additional steps to work:

    $ cd /opt/X11/lib
    $ sudo cp libXt.6.dylib libXt.6.dylib.bak
    $ cd flat_namespace/
    $ sudo cp libXt.6.dylib ../.
  • the netpbm library. The recommended way to get netpbm is to install Homebrew, and run brew install netpbm in the Terminal app. Alternatively, if you prefer to use MacPorts, you can run sudo port install netpbm in the Terminal app.

Downloading and Installing MNE-C#

MNE-C is distributed as either a compressed tar archive (.tar.gz) or a macOS disk image (.dmg). The MNE-C download page requires registration with a valid email address. The current stable version is 2.7.3; “nightly” builds of the development version are also available on the download page.

To install from the compressed tar archive, change directory to the desired install location, and unpack the software using tar:

$ cd <path_to_desired_install_location>
$ tar zxvf <path_to_archive_file>

To install from the macOS disk image, double-click the downloaded .dmg file. In the window that opens, double-click the installer package file (.pkg) to launch the installer, and follow its instructions. In newer versions of macOS, if you see an error that the app is from an untrusted developer, you can override this warning by opening it anyway from the Security & Privacy pane within the computer’s System Preferences.

Configuring MNE-C#

MNE-C requires two environment variables to be defined manually:

  • MNE_ROOT should give the path to the folder where MNE-C is installed

  • MATLAB_ROOT should give the path to your MATLAB binary (e.g., /opt/MATLAB/R2018b or similar). If you do not have MATLAB or the MATLAB runtime, leave MATLAB_ROOT undefined.

Other environment variables are defined by setup scripts provided with MNE-C. You may either run the setup script each time you use MNE-C, or (recommended) configure your shell to run it automatically each time you open a terminal. For bash compatible shells, e.g., sh/bash/zsh, the script to source is $MNE_ROOT/bin/mne_setup_sh. For C shells, e.g., csh/tcsh, the script to source is $MNE_ROOT/bin/mne_setup. If you don’t know what shell you are using, you can run the following command to find out:

$ echo $SHELL

To configure MNE-C automatically for bash or sh shells, add this to your .bashrc:

export MNE_ROOT=<path_to_MNE>
export MATLAB_ROOT=<path_to_MATLAB>
source $MNE_ROOT/bin/mne_setup_sh

where <path_to_MNE> and <path_to_MATLAB> are replaced by the absolute paths to MNE-C and MATLAB, respectively. If you don’t have MATLAB, you should still include the export MATLAB_ROOT= statement, but leave <path_to_MATLAB> blank.

To configure MNE-C automatically for zsh, use the built-in emulate command in your .zshrc file:

export MNE_ROOT=<path_to_MNE>
export MATLAB_ROOT=<path_to_MATLAB>
emulate sh -c 'source $MNE_ROOT/bin/mne_setup_sh'

To configure MNE-C automatically for csh or tcsh shells, the corresponding commands in the .cshrc / .tcshrc file are:

setenv MNE_ROOT <path_to_MNE>
setenv MATLAB_ROOT <path_to_MATLAB>
source $MNE_ROOT/bin/mne_setup

If you have done this correctly, the command ls $MNE_ROOT/bin/mne_setup_sh should succeed when run in a new terminal.

Testing MNE-C installation#

An easy way to verify whether your installation of MNE-C is working is to test the OpenGL graphics performance:

$ $MNE_ROOT/bin/mne_opengl_test

This will render an inflated brain surface repeatedly, rotating it by 5 degrees around the z-axis between redraws. The time spent for each full revolution is printed to the terminal window where mne_opengl_test was invoked. Switch focus to that terminal window and use the interrupt key (usually control-c) to halt the test.

The best graphics performance occurs when MNE-C renders to a local display on a computer with hardware acceleration enabled. The mne_analyze GUI has a menu item “On GLX…” in the Help menu; if the GLX dialog says “Direct rendering context” then hardware acceleration is in use. If you are rendering to a local display and see “Nondirect rendering context”, it is recommended that you enable hardware acceleration (consult a search engine or your local IT support staff for assistance). If you are rendering to a remote display or using a VNC connection, “Nondirect rendering context” is normal.

On the fastest graphics cards, the time per revolution in the mne_opengl_test is well below 1 second. If your time per revolution is longer than 10 seconds, either the graphics hardware acceleration is not in effect or you need a faster graphics adapter.

Troubleshooting MNE-C installation#

If MNE-C can’t find, you will need to get the package from the original author ( to install it:

$ sudo add-apt-repository ppa:zeehio/libxp
$ sudo apt install libxp6

If MNE-C can’t find, you can probably safely link that filename to the current version of libfortran that came with your system. On a typical 64-bit Ubuntu-like system this would be accomplished by:

$ cd /usr/lib/x86_64-linux-gnu
$ sudo ln -s $(find . -maxdepth 1 -type f -name*)

If you encounter other errors installing MNE-C, please post a message to the MNE Forum.