= Brainstorm's Suite for Multi-unit Electrophysiology = ''Author: Konstantinos Nasiotis'' {{attachment:ephys_intro.png}} <> == Introduction == We feature a series of data analysis tools specifically dedicated to Invasive 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, ultimately producing vast amounts of data. 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. Note that the operations used here are not detailed, the goal of this tutorial is not to introduce Brainstorm to new users. For in-depth explanations of the interface and theoretical foundations, please refer to the [[http://neuroimage.usc.edu/brainstorm/Tutorials#Get_started|introduction tutorials]]. == How to cite == Researchers publishing results obtained with this electrophysiology toolbox are kindly asked to cite: * Nasiotis K, Cousineau M, Tadel F, Peyrache A, Leahy RM, Pack CC, Baillet S<
> [[https://www.nature.com/articles/s41597-019-0242-z|Integrated open-source software for multiscale electrophysiology]]<
>'''Scientific Data''', Oct 2019 * All the external toolboxes embedded in this pipeline as Brainstorm plugins. Links to the articles that the toolboxes correspond to are located in each section. == Tutorial dataset == ==== Description ==== This tutorial uses a dataset collected by Nardin Nakhla in [[https://www.packlab.mcgill.ca/|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. The task for the animal was to maintain fixation on a target while a superflow stimulus (dots that rotate, expand or translate in a partially coherent mode) was presented in one of 9 possible visual locations (as shown in the figure below). The events from the stimulation system are saved along with pre-spike-sorted events. . {{attachment:stimulus.gif}} ==== Download the dataset ==== * Go to the [[http://neuroimage.usc.edu/bst/download.php|Download]] page of this website, and download the file: '''sample_ephys.zip''' * Unzip it in a folder that is not in any of the Brainstorm folders (program folder or database folder) ==== Files ==== * '''ytu288c-01.plx''': Raw recordings from a Plexon acquisition system * '''ytu288c-01_events.csv''': Events file, that labels the experimental conditions appropriately * '''ytu288c-01_electrodes.txt''': 3D positions of the electrodes, in the MRI [[https://neuroimage.usc.edu/brainstorm/CoordinateSystems#World_coordinates|"world" coordinates]] * '''floyd_t1.nii''': T1-weighted MRI scan of the monkey's head * '''floyd_cortex.mesh''': Cortex surface reconstructed from the MRI <
><
> {{attachment:ephys_import.gif}} == Create protocol == * Create a new protocol: File > New protocol. * Enter the protocol name: ''Tutorial_e-Phys. '' * Default anatomy: ''No, use individual anatomy. '' * Default channel file: ''No, use one channel file per acquisition run.''<
><
> {{attachment:newProtocol.png}} * Right-click on the top protocol node > '''New subject'''.<
><
> {{attachment:newSubject_new.gif}} * Enter the monkey name: '''Floyd''', and keep the other options unchanged.<
><
> {{attachment:FloydSubject.png}} == Import anatomy (Optional) == Users can now import the anatomy of the monkey if needed. However, the pipeline described in this tutorial does not require an anatomical MRI, you may skip this section to save some time. * Right-click on the subject folder > Import MRI: * Set the file format: All MRI files (subject space) * Select the file: sample_ephys/floyd_t1.nii * Set approximately the NAS/RPA/LPA fiducials, as described [[https://neuroimage.usc.edu/brainstorm/Tutorials/ImportAnatomy#Fiducial_points|here]] for humans. Save. * Right-click on the MRI > MRI segmentation > Generate head surface. Keep default options. * Right-click on the subject folder > Import surface: * Set the file format: All surface files * Select the file: floyd_cortex.mesh * Apply the same transformation: NO {{attachment:floyd_mri.gif||width="331",height="324"}} {{attachment:floyd_cortex.gif||width="328",height="259"}} == Import recordings == * Go to ''Functional data'' side of the protocol. * Right-click on the Subject (Floyd) > ''Review raw file.'' * Set the file format: EEG:Plexon (*.plx;.pl2) * Select the file: sample_ephys/ytu288c-01.plx * {{attachment:reviewRaw_main_window.gif}} {{attachment:selectRaw_popup.gif}} * Once the procedure is complete, this will create a new folder ''(ytu288c-01)'' and two new files in the database: a 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. <
><
> {{attachment:importedRaw_main_window.gif}} {{{#!wiki note Importing of this file might last a few minutes. Plexon .plx files cannot be accessed efficiently. In order to avoid waiting times while scrolling through the file, the .plx files are first converted into .bst files (Brainstorm binary format). This conversion causes the initial delay, but improves the user experience when reviewing the file. This is not typically the case for files from other acquisition systems. }}} Double-click on the Link to raw file to open the recordings viewer. 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. Any events captured from the acquisition system are automatically loaded from the importer. {{attachment:displayRaw_new.gif}} === Existing spike sorter results === 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|”. For more information, users can visit [[https://neuroimage.usc.edu/brainstorm/e-phys/ConvertToBrainstormEvents|this]] page. 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.). === Slow interface === The Brainstorm interface tends to become slower when the number of events increase. Opening a file for visualization or opening the Pipeline editor window may freeze Matlab for several seconds when handling files with hundreds of thousands of markers. If this becomes too heavy, don't hesitate to '''delete the event groups''' you have no use for. == Import events == In this tutorial dataset, the stimulus presentation events were coded from a software that was not triggering events on the acquisition system, so they need to be manually imported. * Double click on the Link to raw file to open the recordings. * In the Record tab, select the menu: File > Add events from file * Set file format: CSV text file: label, time, duration. * Select the file: sample_ephys/ytu288c-01_events.csv * {{attachment:select_events_new.gif}} * It adds 9 new types of events at the end of the events list (Stim On 1-9) that correspond to the screen location of the presented stimulus: <
><
> {{attachment:imported_events_new.gif}} At this stage, users can start performing their analysis based on the experimental events. == Import electrode positions (Optional) == If you have access to the 3D positions of the electrodes with which the data were recorded, you add this information to the database. This would enable additional display and processing options. In this dataset, the electrodes positions are available in [[https://neuroimage.usc.edu/brainstorm/CoordinateSystems#World_coordinates|"world" coordinates]]. * Right-click on the channel file > Add EEG positions > '''Import from file'''. * Set file format: EEG:ASCII:Name,XYZ_World * Select file: sample_ephys/ytu288c-01_electrodes.txt * Do not accept the suggested conversion factor: Click on "1". The coordinates are correctly saved in millimeters in the file, as expected by this import function. * Right-click on the channel file > '''Edit channel file'''. * Select all the columns, right-click > Set channel type > SEEG. * Close the channel editor, save modifications. {{attachment:floyd_elec.gif}} <> <>