Current Source Density (CSD) Interpolation using Spherical Splines
© 20032011 by Jürgen Kayser
Version 1.1
last updated: February 22, 2011
what's new in this versionoverview of toolbox contentdetailed revision history
Current Version: CSDtoolbox.zip
( Original MatLab Code: sphereCSD.zip / Original Montage Coordinates: montageXLS.zip )
CSD toolbox tutorial common mistakes and errors frequently asked questions FAQs
Purpose and Prerequisites
The CSD toolbox provides a MatLab implementation of a spherical spline algorithm (Perrin et al., 1989) to compute scalp surface Laplacian or current source density (CSD) estimates for surface potentials (EEG/ERP). Its successful use requires basic knowledge of (or willingness to learn about) electrophysiologic principles (e.g., EEG montage, 1020system, volume conduction) and rudimentary mathematics (e.g., fundamental algebra and geometry), as well as access to and basic knowledge of MatLab^{®} software. Without these prerequisites, the use of the CSD toolbox is strongly discouraged. 
Authorization and Disclaimer
This software, which is intended for nonprofit scientific research, is copyrightprotected under the GNU General Public License (see agreement at http://www.gnu.org/licenses/gpl.txt). This applies to all MatLab functions and other content included in the CSD toolbox installation archive. The software is provided 'as is' with no warranty whatsoever. All responsibilities and consequences of using this software are completely with the user (you should know what you are doing). However, any attempt is made to revise and improve the software if bugs or problems are identified. For suggestions, bugs or any other related issues, please contact Jürgen Kayser (email: rjk23@columbia.edu). 
Download and Installation
The CSD toolbox consists of a single zip archive. Download this installation archive and extract all files to a local folder on your hard drive while maintaining the archive's subfolder structure. Add this folder with its subfolders to the MatLab search path. A tutorial of how to use the CSD toolbox with EEG/ERP data is posted here. An ensemble of typical errors when applying a CSD transform to EEG/ERP data, along with suggestions of how to avoid them, can be found here. Finally, answers to frequentlyaskedquestions (FAQs) are given here. 
Correct Citation Following Scientific and Ethical Conventions
The original MatLab code was developed in 2003 at the Psychophysiology Laboratory of New York State Psychicatric Institute (http://psychophysiology.cmpc.columbia.edu) and published as a citable appendix (also accessible here) to:
Please cite at least the above reference if you use this software for any published research. If you use this software with a lowresolution EEG montage (i.e., less than 64 channels), you should also cite the companion paper to the above article, which is:
The download and use of the CSD toolbox can be acknowledged by referencing its URL as:

Credits
The algorithm to interpolate scalp potentials and estimate scalp current densities using spherical splines was originally proposed and described in:
However, the crucial equation for the CSD term contained an error that was corrected in:
The CSD toolbox provides an implementation of theses algorithms in MatLab. To give appropriate credit, these original articles may also be cited in any publications benefitting from these ideas. The implementation of the spherical angles for 330 extended 1020system scalp locations is based on:
During the original 2003 implementation of these algorithms at New York State Psychiatric Institute, Charles L. Brown III provided crucial feedback (acknowledging earlier advice by Patrick Berg at the University of Konstanz), and Craig E. Tenke was instrumental to overcome all quirky glitches and helped to validate the CSD transform. During the 2009 development of the CSD toolbox, Nathan A Gates and Craig E. Tenke invested valuable time in beta testing the (new) CSD toolbox functions and examples and during proofreading of the these web pages. Since its initial release, several inquiries about the use of the CSD toolbox yielded valuable feedback as well as helpful additions to the frequentlyaskedquestions (FAQs) page. In July 2010, John J.B. Allen graciously provided sample scripts demonstrating how to use the CSD toolbox with EEGlab. However, the sole responsibility for developing and maintaining the MatLab code (along with the typical dose of bugs and glitches) lies with me, Jürgen Kayser. Please do not hesitate to contact me with all issues regarding this software (email: rjk23@columbia.edu). Any contributions to further develop the functionality of the CSD toolbox are welcome and will be considered as additions to future releases. 
Background and Overview When our research group decided to systematically apply surface Lapcian methods to electrophysiologic data, we needed a more efficient and flexible tool to compute scalp CSD estimates from surface potentials. While initially applying a local Hjorth to our data (e.g., Tenke et al., 1998), which can be derived from a simple linear derivation file constructed for a given EEG montage using NeuroScan software, a spherical model has the appeal of obtaining improved and more reliable estimates at the edge of the EEG montage. In 2003, we therefore implemented the spherical spline algorithm proposed by Perrin et al. (1989) using a Pascal compiler (Borland Delphi). Given our difficulties of correctly implementing this algortihm, and realizing that other labs may also suffer from easy access to this transformation, we published MatLab code of this algorithm as an the appendix of Kayser & Tenke (2006a). However, while this code has been successfully used by some research teams, others were still puzzled by the MatLab code, or how to modify it for their specific purposes. Given a renewed interests in these CSD methods, particularly after our symposium on the merits of the surface Laplacian held at the 15^{th} International Congress on Eventrelated Potentials of the Brain (EPIC XV) in Bloomington, IN, April 22 – 25, 2009, we decided to provide more functionality in form of a MatLab toolbox, accompanied by a more detailed web page. 
Publications
A growing number of publications have used the Perrin et al. (1989) spherical spline algorithm implemented in the CSD toolbox. An incomplete publication list of EEG and ERP studies can be found here. If you would like to have your published research included, just let us know (please send an email to: rjk23@columbia.edu or cet2103@columbia.edu). 