Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Installing the binaries (64-bit only)

  1. Download this zip file.
  2. Drag and drop the downloaded and unzipped folder to the location of your choice, and rename it "Open Ephys."
  3. Open a terminal and set your working directory to the Open Ephys folder.
  4. Type "sudo cp 40-open-ephys.rules /etc/udev/rules.d", then type your password.

  5. Type "service udev restart" on Ubuntu/Debian or "sudo udevadm control --reload-rules" on Fedora/CentOS. These last two steps will allow your computer to communicate with the Open Ephys acquisition board.
  6. Double-click the "open-ephys" executable (or type "./open-ephys" in the terminal) to run the application.

Building from source (32-bit or 64-bit)

Get the code from GitHub

  1. Create a GitHub account if you haven't already.

  2. While logged into your account, go to https://github.com/open-ephys/plugin-GUI and click the "Fork" button in the upper right. You now have your own copy of the GUI repository. Any changes you make will only affect this copy. (More info on forking here.)
  3. Make sure you have git installed (instructions here).
  4. Open a terminal and set your working directory to where you'd like the code to be saved. We recommend creating a directory dedicated to all your coding projects, such as ~/Programming.
  5. Type "git clone https://github.com/yourusername/plugin-GUI.git", where "yourusername" is replaced by your actual GitHub user name. This will download all the code from the repository onto your computer.

Install dependencies

  1. Install the Linux dependencies by running "sudo ./install_linux_dependencies.sh" in the GUI/ Resources/Scripts folder, then type your password.
  2. From the same directory, type "sudo cp 40-open-ephys.rules /etc/udev/rules.d".
  3. Type "sudo service udev restart" on Ubuntu/Debian or "sudo udevadm control --reload-rules" on Fedora/CentOS. These last two steps will allow your computer to communicate with the Open Ephys acquisition board.


Some plugins require additional dependencies to build and work. Specifically, in the case of the ones supplied by default:

  • NetworkEvents and EventBroadcaster require the ZeroMQ library
  • KWIKFormat requires HDF5 library version 1.8.12 or higher

This section describes the steps needed to install those dependencies on your system.

Install ZeroMQ library

You will need to install the ZeroMQ library, either from a PPA or from source.

Installing from a PPA. Here are the terminal commands needed to install from a PPA. Note that we specify version 3 of the API ("libzmq3"), which is necessary for the current version of the GUI. These commands work on Ubuntu-like distributions but may need to be modified for others.

sudo add-apt-repository ppa:chris-lea/zeromq
sudo apt-get update
sudo apt-get install libzmq3-dbg libzmq3-dev libzmq3

Installing from source. Alternatively, you can build from source using the instructions from http://zeromq.org/intro:get-the-software, copied below:

  1. Make sure that libtool, pkg-config, build-essential, autoconf, and automakeare installed.
  2. Check whether uuid-dev package, uuid/e2fsprogs RPM or equivalent on your system is installed.
  3. Unpack the ZeroMQ .tar.gz source archive. (from here)
  4. Run ./configure, followed by make.
  5. To install ZeroMQ system-wide run sudo make install.
  6. On Linux, run sudo ldconfig after installing ZeroMQ.

Install the HDF5 library

In order to compile the KWIKFormat plugin, you need to have the HDF5 library installed. HDF5 is a file format that's optimized for scientific data sets. It is extremely powerful, and offers many advantages over traditional binary formats. The GUI now allows users to save data in the Kwik format, which is based on HDF5.

The plugin requires you to use version 1.8.12, or higher, of HDF5. You can try to install from your package manager first, by running "sudo apt-get install libhdf5-serial-dev" or "sudo yum install hdf5-devel". For Ubuntu 16.04 or higher, this should work. However, if you see that this installs version 1.8.11 or lower, you will need to uninstall that older version and install a newer version of HDF5 by following the instructions on the HDF5 website.

To install HDF5 from source, download the source from this page and follow the instructions in the INSTALL file. Briefly:

  • Unzip the source code
  • In the source code directory, run configure by typing the following:

    ./configure --prefix=/usr/local/hdf5 --enable-cxx
  • Run 'make' to compile the code and then 'make check' to check for errors.
  • Run 'sudo make install' and 'sudo make check-install' to install.

Assuming this completed without errors, you're ready to start building the Open Ephys GUI. You'll need to provide the location of the libraries you've just installed by setting the following environment variables before attempting to build the GUI.

export CPLUS_INCLUDE_PATH=/usr/local/hdf5/include
export LIBRARY_PATH=/usr/local/hdf5/lib
export LD_LIBRARY_PATH=/usr/local/hdf5/lib

Build the Open Ephys GUI

Build the main application

Change your current working directory to

GUI/

Builds/Linux

  • type "make".

    This will start the process of building the GUI. If it crashes, it probably means you're missing some dependencies. If so, you can use "sudo apt-get install <libraryname>" to install them (assuming you're using Ubuntu or a related distribution). Don't forget to install the dependencies before (see below). If you discover missing dependencies, definitely let us know! 

    If you get an error message about "‘class H5::H5File’ has no member named ‘attrExists’", then you are linking to a version of HDF5 that is 1.8.11 or lower. See above for the section about installing HDF5 from source.

  • If the GUI builds successfully, run the "open-ephys" binary in the GUI/Builds/Linux/build folder.
  •  Build the plugins

  • Using a console, enter the Builds/Linux directory
  • Execute the following command:

    . The following steps could be executed by the script "setup.sh" in this directory, but we recommend following these steps and typing the commands manually, in case you encounter any errors.

    1. Type "make" to build the main application. If this fails, you are probably missing dependencies (see above, and please let us know if any dependencies are missing from the instructions).

    2. Type "make -f Makefile.plugins" to build all plugins.
      1. To clean the plugin build space, type "make -f Makefile.plugins clean"
      2. To compile just a specific plugin, type "make -f Makefile.plugins <NameOfThePluginFolder>"
      3. Only those plugins that have a Makefile file inside their source directory will be built
    3. If the above steps are successful, there will be a compiled binary at Builds/Linux/build/open-ephys. Note: this file may incorrectly be named 'open-ephys.so'; if so, it's best to rename it to 'open-ephys'.
    4. You can optionally install the open-ephys binary to a directory on your path so that it can be started from any directory by typing "sudo ln -s -f build/open-ephys /usr/bin/open-ephys"

    Now you can both use the GUI and make changes to the source code. We recommend reading through the developer documentation before doing so.

    Any changes you commit can be synced with your GitHub repository by typing "git push origin master" from any directory inside your project. If you change something that you think would be useful for others, you can submit a pull request to the Open Ephys version of the GUI.

    Troubleshooting

    • If you're building the library from source, make sure you run "./configure" with the "--enable-cxx" flag. The default is to just install the C libraries.
    • If you get an error message about "‘class H5::H5File’ has no member named ‘attrExists’", then you are linking to a version of HDF5 that is 1.8.11 or lower. See above for the section about installing HDF5 from source.
    • Make sure the HDF5 header and library files are found in directories that are in your PATH and LD_LIBRARY_PATH, respectively. If this doesn't sound familiar to you, you should read up on Linux environment variables.
    • If adding header and library files folder to PATH and LD_LIBRARY_PATH doesn't work, try following steps:(assume your hdf5 is installed to "/usr/local/hdf5")
              $ sudo gedit /etc/environment
      Then add two lines at the end of the file:
              CPLUS_INCLUDE_PATH="/usr/local/hdf5/include"
              LIBRARY_PATH="/usr/local/hdf5/lib"


    Notes on distributions

    Common problems

    If the GUI won't start on Linux, it's likely due to problems communicating with the audio hardware. Your computer's sound card is what generates the callbacks that drive data acquisition, so the GUI can't run unless it establishes proper communication with your audio device.

    If you're running the software inside of gdb (which is recommended, at least until all the kinks are worked out), you may see the message "Program received signal SIGSEGV ... juce_String.cpp:203" after printing "Got audio device." With certain hardware, you'll get a segfault before this point is reached. Either you have the wrong drivers (or no drivers) installed, or (more commonly) the audio hardware is in use by another application.

    How to troubleshoot:

    • As a first step, try exiting all other applications. If the audio hardware is being used by another program, the GUI might not be able to communicate with it.
    • Type sudo alsa force-reload in a terminal; this will refresh the sound server, and may fix your problem.
    • Check to see if your audio server (ALSA or PulseAudio) is the latest version. This may require downloading the latest source code and building them from scratch if the package hasn't been updated recently. For more details, check out this discussion.
    • Using the PulseAudio server as sound device might result in problems with triggering block processing in the GUI. This doesn't seem to have an impact on neural data but can lead to unexpected problems. See this thread. Completely removing PulseAudio from Ubuntu, Linux Mint etc might be tricky as it is required by many other applications. Killing PulseAudio doesn't work either as it will restart automatically. However, this small bash script allows running the GUI without PulseAudio:
      #!/bin/bash
      echo autospawn = no > $HOME/.config/pulse/client.conf
      pulseaudio --kill
      ... run open-ephys ...
      rm $HOME/.config/pulse/client.conf

    If you're using the Intan EVAL board, replace the RHD2000.bit file in the GUI source with main.bit from the Intan Open-Source RHD2000 Interface Software code.