Getting started

MEAKit is originally created for processing data acquired by Multi-channel Systems devices. Inspired by FIND Toolbox (, the later development of MEAKit embraces the light of Neuroshare ( which makes it compatible with data formats produced by other manufacturers.

MEAKit is not going to compete with other existing powerful toolboxes like FIND and MEABench. It is just another choice for new researchers to build up their own foundations. The design of MEAKit is based on dataflow. Assuming there is a data stream from the sources (i.e. a single or group of data files, and maybe the device itself), we shall name it as raw data, and it contains the complete and continuous waveforms of the signals acquired from MEA. The structure contains this stream is labeled as rawif which is passing through scripts and functions. Sometimes, the data file contains a pre-processed data stream of spikes (spike data) instead of raw data (e.g. after the processing of spike sorter in MC-Rack).The structure in MEAKit that contains spike data is labeled as spif which is also been extensively used among MEAKit. The data file may also contain some important information that holds the timestamps of triggers (if you have recorded them in a stimulation experiment). The structure contains trigger stream is labeled as trif. The notion of these three structures is borrowed from MEATools, if you have experience with MEATools, you will be familiar with it. MEAKit is currently not an object-oriented framework, but a bunch of very simple and goal-directed MATLAB scripts and functions based on the data flow in the form of rawif, spif and trif. Under the circumstances of reading data files produced by non-default manufacturers (the default one is Multi-channel Systems - *.mcd), data will be read and translated into raw/sp/trif with the help of Neuroshare.

Functions are organized by their objectives. In MEAKit, data must be first loaded from “IO” functions which will turn it into corresponding information structures. Then the structures can be sent to the “Calculation” functions as input parameters. Results from “Calculation” function can be illustrated by MATLAB built-in plotting functions or our home-made scripts in “Plotting”. We deeply understand the need of extending more functions, it will be still neat and tidy if you are coding with the above rules kept in mind, which may also helps others to understand your goal and improve the reusing of your lovely codes.


The installation of MEAKit is easy. Just add the directory of MEAKit (including subdirectories) into the path of MATLAB, or you can use util_setup('install') scripts.


MEAKit 1.9.7 can be downloaded here.

A simple tutorial in PDF format is here.