Tools for viewing, analyzing, and processing multi-electrode array data.
MEA Tools consists of five main components including:
pymea, a Python module for interacting with multi-electrode data within Python.- A command line script for spike detection/spike sorting.
- MEA Viewer, a Python application for high performance visualization of raw analog recordings and spike raster data.
- MEA Tools, a Python application which provides an easy to use interface to the spike detection/spike sorting routines provided by the command line script.
- A Mathematica library for manipulating and analyzing analog and spike data.
Windows users can download the Windows executable containing pre-compiled versions of the GUI programs MEA Viewer and MEA Tools. This executable comes with Python and all required libraries, so no additional dependencies are needed. After downloading, unzip the folder to a suitable location. MEAViewer.exe provides an interface to the MEA Viewer application, MEATools.exe provides an interface to the spike detection and sorting routines. If you need access to the pymea Python module please follow the instructions for a Full Installation.
Follow these instructions if you want access to the pymea module for your own Python programming, or if you are on Mac or Linux.
MEA Tools requires:
- Python 3.6
- vispy 0.5.2
- PyQt5
- numpy
- scipy
- pandas
- PyOpenGL
Typically it is easiest to install Anaconda Python 3.6 to obtain these packages.
Clone the repository to a suitable directory:
cd ~
git clone https://github.com/dbridges/mea-tools.gitAdd the following to your shell startup file (~/.bash_profile on Mac or ~/.bashrc on Linux):
alias mea='python3 ~/mea-tools/mea-runner.py'
export PYTHONPATH=$PYTHONPATH:$HOME/mea-toolsBe sure to build the Cython components:
cd ~/mea-tools
makeThe core of the package is a Python 3 module, pymea, which has many components for interacting with data acquired by MultiChannel Systems software. Data files must be converted to HDF5 files using MultiChannel Systems Data Manager before they can be viewed or analyzed with pymea.
The MEA Viewer application allows you to seamlessly interact with both spike data and analog data. As you switch views the time window of displayed data is maintained for easy comparison. Interactive visualizations of raw analog data, spike time stamp data, and interfaces to averaging repeated events to reveal a neuron's propagation signal across an array are provided.
A video demo of MEA Viewer is available.
The analog grid view displays an overview of analog data for all channels.
Dragto pan through the dataset.Double-Clickon a channel to view it in the analog comparison view.Shift-Clickto select multiple electrodes, then pressEnterto display them in the analog comparison view.pto switch to the propagation signal view after selecting two channels. See the section on the propagation signal for more information on how these signals are defined and displayed.
The analog comparison view displays a selected number (typically 1-5) of channels for comparison. A CSV file is required for display of detected spike markers.
- Detected spikes are color coded by sorting group. Spike markers in black indicate a failure in spike sorting for those events.
Dragto pan through the data record.Scrollto adjust the time scale.Shift-Dragto measure time differences between points in the data record.Right Clickon a spike to display a menu allowing you to select a sorted spike group for use in the propagation signal view.Escto exit back to the analog grid view.Double-Clickto exit back to the analog grid view.bto toggle the background color between gray and white.
The propagation signal view superimposes and averages multiple spiking events occurring from a single neuron. A single neuron is defined either as a sorted group from a specific electrode, or by selecting two electrodes in the analog grid view and finding coincident (delta t < 0.7 ms) spiking events. A CSV file is required for the propagation view to work correctly.
Scrollto adjust the vertical scale.Shift-Scrollto adjust the temporal scale.Shift-Dragto measure time differences between waveforms. You canShift-Dragfrom one point in one waveform to another point in a completely different waveform and the program will keep track of the correct time offsets.Escto exit back to the view you came from.
The raster view displays an interactive raster plot of the spike time stamp data. A CSV file is required for the raster view to work.
Dragto pan data set.Scrollto adjust time scale.Shift-Dragto measure time differences.Shift-Clickto select specific rows, then pressEnterto display only those rows.
The flashing spike view displays a spatial-temporal visualization of spiking activity in an array.
Spaceto play/pause the animation. You may have to click inside the main window before these and other commands work.Left-Arrowto jump back in time briefly.
The MEA Tools GUI provides an interface to basic spike detection, sorting, and tagging of redundant signals attributed to propagation along an axon. Select a directory, then within the application select the files you wish to run spike detection analysis on. CSV files will be generated and saved in the same directory as the source files.
Open a data file for viewing in the MEA Viewer application. MEA Viewer displays analog and spike data in an interactive application. Input data files should have a *.h5 or *.csv file extension. All CSV files should be built with the detect command listed below or with the MEA Tools GUI interface.
Show an interactive raster plot of spike data:
mea view 2015-03-20_I9119.csvInteractively view an analog file:
mea view 2015-03-20_I9119.h5Display information about an analog recording.
$ mea info 2014-10-30_I9119_Stimulate_D3.h5
File: 2014-10-30_I9119_Stimulate_D3.h5
Date: Thu, 30 Oct 2014 02:36:35 PM
MEA: 120MEA200/30iR
Sample Rate: 20000.0 Hz
Duration: 19.00 sFind spikes in input files and export their timestamps to a csv file. Output files have the same filename as the input file, but with a .csv extension.
Export one file:
mea detect 2015-03-20_I9119.h5Export all files in directory:
mea detect *.h5Export a file using a threshold cutoff of 5 times the standard deviation of the input file noise:
mea detect --amplitude=5 2015-03-20_I9119.h5Full usage:
usage: mea detect [-h] [--amplitude AMPLITUDE] [--neg-only]
[--no-sort]
FILES [FILES ...]
positional arguments:
FILES Files to convert.
optional arguments:
-h, --help show this help message and exit
--amplitude AMPLITUDE
Amplitude threshold in std devs.
--neg-only Only detect negative amplitudes.
--no-sort Do not sort spikes after detection.Export conduction traces.
$ mea export_cond 2014-10-30_I9119_Stimulate_D3.h5 'h8,g8,g7'Uses h8 as the source electrode and finds all signals in g8 that occur within +- 0.7 ms. Once signals are found, it exports the raw analog data for a 5 ms window for each electrode given in the list. The data files are automatically labeled in accordance to the source file and the electrode.
Two applications in the extras/mac folder provide graphical user interfaces to the MEA Tools package. Copy them to your /Applications folder. To work correctly MEA Tools must be installed at ~/mea-tools
A Mathematica library is also included to analyze analog and spike data, as well as to create useful static visualizations. See mathematica/MEA_Examples.nb for more information.
Sample MEA data to verify correct operation of the various components is available here.

