The first decade of EEGLAB

Jump to: navigation, search

EEGLAB (v0.9) was first released on April 23, 2001 - thus, EEGLAB is now 10 years old!


A bit of history

In 1997, Scott Makeig, Tzyy Ping Jung and colleagues released the ICA Electrophysiology Toolbox for Matlab from Terrence Sejnowski's CNL laboratory at The Salk Institute for Biological Studies in La Jolla. This toolbox comprised functions to run (extended) infomax ICA on EEG data as well as early versions of time/frequency and visualization functions used in EEGLAB including eegplot(), topoplot(), headplot(), envtopo(), timtopo(), and erpimage(). In 2000, Arnaud Delorme joined the Salk Institute and wrote a first version of EEGLAB to reject automatically (or semi-automatically) artifacts in EEG data. This version of EEGLAB used the ICA toolbox of Makeig et al. (which required a separate download) for some of the data processing. We demonstrate below how the current version of EEGLAB remains backward compatible with this very early version of EEGLAB (v0.9). EEGLAB versions 1 and 2 followed. EEGLAB v2, released in 2002, implemented the EEGLAB history feature that users can use to automatically generate EEGLAB scripts. Scripts generated by this version are still compatible with the current EEGLAB version.

By 2001, the team of researchers working on EEG processing with Makeig and Jung at CNL was becoming too large for the space available. Coincidentally, Dr. Jerome Swartz, an early inventor of laser barcoding, agree to give funds to UCSD to create a research center dedicated to studies of higher-order human cognition using EEG. Based on the initiative of Terry Sejnowki, who recognized the leadership capabilities of Scott Makeig, then a Salk Institute senior research scientist, the Swartz Center for Computational Neuroscience (SCCN) was founded under the then-small Institute of Neural Computation at UCSD that Terry directed. Scott Makeig became the director of this new center and Tzyy-Ping Jung the associate director. Salk postdoctoral fellows Arnaud Delorme, Julie Onton, and JR Duann also moved from the Salk Institute to the new center.

At SCCN, command-line functions of the ICA Electrophysiology toolbox and the proto version of EEGLAB were fused. EEGLAB v3, an internal version, was never released. EEGLAB v4, the first integrated and fully functional version of EEGLAB, was released at the end of 2002.

Several revisions of EEGLAB v4 were released from 2003 to 2006, strengthening the code and adding capabilities for importing data in many different formats. In 2006, EEGLAB v5 was released, adding the STUDY structure and many functions giving EEGLAB users a pipeline for processing data from multiple subjects, including the first software for ICA component clustering.

In 2007, EEGLAB v6 was released, allowing users to perform statistical analyses at the STUDY level. EEGLAB v6.03b remained the stable version of EEGLAB for almost 2 years.

In 2009, EEGLAB v7 was released under a new revision control system (migrated from RCS to CVS) that added consistency and reliability to the code.

At the beginning of 2010, EEGLAB v8 was released, allowing access to single-trial subsets from STUDY functions.

At the end of 2010, EEGLAB v9 was released migrating the code from the CVS to the more flexible SVN revision control system and now allowing computation of statistics for multiple (STUDY.DESIGN) statistical designs.

In 2011, EEGLAB v9 code was frozen and declared a stable / supported version of EEGLAB. At the same time, a developmental version of EEGLAB v10 was released including new features such as an optional object-oriented EEG structure. More details about each EEGLAB version is available on the EEGLAB revision page.


Since we placed the code under revision control in 2003, there have been a total of 9,189 unique function code contributions to EEGLAB. The total number of lines of code (excluding plug-ins) is currently 125,271 comprising 533 stand-alone functions. Currently there are 4,247 opt-in researchers on EEGLAB discussion mailing list, and 9,265 researchers on the EEGLAB news list. EEGLAB has been downloaded about 87,000 times (October 2002 to April 2011). According to the ISI web of knowledge, the original 2004 EEGLAB paper has been cited 945 times. Finally, a total of 1,029 bug / enhancement reports have been submitted to the EEGLAB Bugzilla database.

EEGLAB v10 still backward compatible with EEGLAB v0.9

EEGLAB v0.9 graphic interface

You may download below the original files for first version of EEGLAB released on April 23, 2001 (full instructions are also available on the original EEGLAB web page). Download then uncompress the archives of the ICA toolbox and of EEGLAB

You will also need to download the following tutorial binary Neuroscan file

Start Matlab, add the path to each of the uncompressed folders.

EEGLAB09 load.png
EEGLAB v10 GUI after loading the dataset from EEGLAB v0.9

Then start EEGLAB v0.9 (type "eeglab" on the Matlab command line) and select menu item "File > Load EEG". Select the "TESTEEG.eeg" file you have downloaded. Be sure to change the default event type range from "12501:12600" to "all" as shown in the image on the left.

The dataset will be loaded and an ERP-image figure will be plotted. You may then save the dataset using the menu item, "File > Save set".

Then go back to your current version of EEGLAB: remove the paths to EEGLAB v0.9 and restart your current version of EEGLAB by typing "eeglab" on the Matlab command line. Load and manipulate the dataset you have just saved in EEGLAB v0.9.

This exercise demonstrates how, since the beginning of EEGLAB, we have taken care to maintain backward compatibility between EEGLAB versions (supported by the relative stability of MATLAB itself).

- Arno Delorme, April 23, 2011