Brainstorm's Suite for Basic Electrophysiology

[DRAFT, UNDER CONSTRUCTION: text in draft form and tutorial data not available yet - please come back soon - target release date: November 2018]

Note: In order to follow this tutorial, you need the latest version of Brainstorm (at least version 01-Nov-2018).

Author: Konstantinos Nasiotis



We feature a series of data analysis tools specifically dedicated to basic electrophysiology research (e-phys). We see this suite of expanded Brainstorm features as an opportunity for enabling a methodological continuum between (multi)cellular and systems level (with EEG and MEG) data analytics and facilitate the scientific dialogue and interactions between subdisciplines in the field.

Invasive electrophysiological recordings capture the spiking activity of individual or small groups of neurons. Since spiking events are transient phenomena (the typical duration of spikes is 1ms), the sampling rate of e-phys recording systems is typically much faster than for scalp EEG and MEG recordings. State-of-the-art acquisition systems can accommodate simultaneous recordings from hundreds of channels over several multi-electrode arrays positioned across the preparation.

We foresee that Brainstorm will contribute to the efficient data management and processing when there is a need for efficient, open and reproducible data management and utilization of large quantities of data. Users that have Matlab’s parallel processing toolbox, will greatly benefit from the utilization of its properties. Most functions of the electrophysiology toolbox have a checkbox where users can enable parallelization of the processes.

Additionally, it is highly recommended for users that need to analyze large files, to select a large number for memory utilization on any processes that allow users to adjust the memory used, since the speed of the processes (especially the spike sorting procedures that use demultiplexing of the raw signal) can be greatly improved by the extra memory used.

All the function that will be described on this toolbox, are located in the Electrophysiology processes tab.

Any toolboxes embedded represent the work of their respective authors and need to be appropriately cited. Links to the papers that the toolboxes correspond to are located on each section.

This tutorial uses a dataset collected from Nardin Nakhla in Dr. Christopher Pack’s lab (, from a macaque monkey with a penetration chamber implanted in areas MT and MST. The recording probe consisted of 32 channels and 1 reference electrode. Users can download this tutorial data that will contain a converted Plexon acquisition system raw file (ytu288c-01.plx), an events file (this is a converted to Brainstorm events file that labels the experimental conditions appropriately), a channel positioning file and an anatomy folder (Floyd MRI) that can all be imported to Brainstorm. The task for the animal was to maintain fixation on a target while a superflow stimulus was presented with different directions on several locations of the visual field. The events from the stimulation system are saved along with pre-spike-sorted events.

Importing raw e-phys data


The importation of raw e-phys data into Brainstorm follows the same procedure as it does for any other raw recording. Users firstly assign a name for their protocol/study, followed by the name of the subject/monkey, and sequentially can review their raw file.

All these steps are briefly repeated here for the example e-Phys file for completeness.

Create Protocol


Press create, and this will create the new protocol.

Add Subject

The next step will be to set the subject/monkey. Right click on the protocol created: Tutorial_e-Phys (subjects) and select New Subject (Make sure the Functional Data (sorted by subjects) tab is selected– select it under the Tutorial_e-Phys drop-down).


A new window will appear that allows users to set the Subject name and to choose the individual anatomy and default channel file. Choose no for both default anatomy and default channel file.

Use subject Name: Floyd


Once Save is selected, a new subject (Floyd) will be created in the database.

Import MRI (Optional)Users can now import the MRI if needed. Instructions on how to import the MRI can be found here and just use the Floyd MRI folder as the Freesurfer/anatomy folder. However, the analysis described on later steps (besides a few visualization functions) does not require an anatomical MRI.

Add an Acquisition system File

Raw files can be imported by selecting the acquisition system used, and sequentially selecting the raw file. Just right click on the Subject (Floyd) and then click on Review raw file.


A new window will pop-up that allows users to select the acquisition system and the raw file. Select EEG:Plexon (*.plx) as the acquisition system and navigate to the folder the ytu288c-01.plx raw file is saved.


Once the procedure is complete, this will create a new folder and two new files in the database: ytu288c-01_converted which is the name of the raw file, and one channel file (Plexon channels (33)) and the Link to raw file. These two files contain all the information from the header of the acquisition system. It is important to note that no data (actual recordings) have been imported in Brainstorm yet.


By double clicking on the Link to raw file, a viewer will open that allows the user to navigate through the recordings. This is a very easy way to inspect the recordings for artifacts or stimulation effects since only the selected part is loaded in memory on-the-fly, without importing anything in the database.

The events are automatically loaded from the importer. It is important to note that some acquisition systems might have enabled their own automatic spike sorter. These events are automatically labeled with the convention that is used throughout the e-phys toolbox:

“Spikes Channel ChannelLabel”, where ChannelLabel is the Label of the electrode assigned by the acquisition system. If the acquisition system assigned the spikes’ waveforms into more than one cluster/neuron during this automatic clustering, the neuronal events would be (e.g. for an electrode that picked up spikes from 3 neurons): “Spikes Channel ChannelLabel |1|”, “Spikes Channel ChannelLabel |2|”, “Spikes Channel ChannelLabel |3|”

The events are comprised of the signals that the stimulation system has sent (Stim On, Start, Stop etc.) and the pre-spike-sorted events that the Plexon acquisition system can perform (Spikes Channel AD01, Spike Channel AD02 etc.).

In case users need to input events from a separate file, this can be easily done by clicking on the events panel: File -> Add events from file…


Feedback: Comments, bug reports, suggestions, questions
Email address (if you expect an answer):

e-phys/Introduction (last edited 2018-11-01 20:14:19 by ?Konstantinos Nasiotis)