an open source environment for electrophysiological signal processing
EEGLAB News What is EEG?
EEGLAB release notes
New extension manager
for plug-in updates
View videos and download slides and sample data from the growing Online EEGLAB Workshop, now including an
Online course by C. Kothe on
Modern BCI Design using BCILAB
NFT - 3-D head and source location modeling
Akalin Acar & Makeig reference paper for NFT
SIFT - 3-D source information flow modeling
MPT - 3-D source measure projection analysis
Bigdely-Shamlo et al. reference paper for MPT
BCILAB - Brain-computer interface (BCI) design & analysis
Kothe et al. reference paper for BCILAB
MoBILAB - Mobile brain/body imaging (MoBI)
A recent EEGLAB Progress Report documents EEGLAB use and recent development
Our recently funded EEGLAB Specific Aims describe current EEGLAB development goals.
Scalp electroencephalographic (EEG) electrodes record sums of activity from cortical sources and non-brain processes, making direct interpretation of scalp channel waveforms problematic. As an example, this silent 1/5th-speed simulation by Zeynep Akalin Acar and Scott Makeig shows (on the left) two cm-sized, parietal EEG sources expressing simulated alpha band activities (at 9 Hz and 10 Hz respectively), and (on the right) their summed scalp projection. Note the strong difference between the cortical source dynamics (left) and scalp EEG dynamics (right), and the difficulty of determining the nature and locations of the source activities directly from the scalp pattern. To download this animation directly (.mp4, 7MB), right click here. More information.
What is EEGLAB?
EEGLAB is an interactive Matlab toolbox for processing continuous and event-related EEG, MEG and other electrophysiological data incorporating independent component analysis (ICA), time/frequency analysis, artifact rejection, event-related statistics, and several useful modes of visualization of the averaged and single-trial data. First developed on Matlab 5.3 under Linux, EEGLAB runs on Matlab v5 and higher under Linux, Unix, Windows, and Mac OS X (Matlab 7+ recommended).
EEGLAB provides an interactive graphic user interface (GUI) allowing users to flexibly and interactively process their high-density EEG and other dynamic brain data using independent component analysis (ICA) and/or time/frequency analysis (TFA), as well as standard averaging methods. EEGLAB also incorporates extensive tutorial and help windows, plus a command history function that eases users' transition from GUI-based data exploration to building and running batch or custom data analysis scripts. EEGLAB offers a wealth of methods for visualizing and modeling event-related brain dynamics, both at the level of individual EEGLAB 'datasets' and/or across a collection of datasets brought together in an EEGLAB 'studyset.'
For experienced Matlab users, EEGLAB offers a structured programming environment for storing, accessing, measuring, manipulating and visualizing event-related EEG data. For creative research programmers and methods developers, EEGLAB offers an extensible, open-source platform through which they can share new methods with the world research community by publishing EEGLAB 'plug-in' functions that appear automatically in the EEGLAB menu of users who download them. For example, novel EEGLAB plug-ins might be built and released to 'pick peaks' in ERP or time/frequency results, or to perform specialized import/export, data visualization, or inverse source modeling of EEG, MEG, and/or ECOG data.
- Graphic user interface
- Multiformat data importing
- High-density data scrolling
- Defined EEG data structure
- Open source plug-in facility
- Interactive plotting functions
- Semi-automated artifact removal
- ICA & time/frequency transforms
- Many advanced plug-in toolboxes
- Event & channel location handling
- Forward/inverse head/source modeling
Core EEGLAB runs on Matlab 7 or later under any operating system (Linux/Unix, Windows, Mac OSX). EEGLAB may also run on Matlab 6.5 or earlier, though a few functions might crash because of backward Matlab incompatibility. Matlab 5.3 is no longer supported. However, the newest EEGLAB toolboxes (in particular, BCILAB, MoBILAB, SIFT) require the object-oriented programming capabilities of Matlab 7.6 or later, which is thus recommended. Using 64-bit processors with large amounts of RAM may be essential for analyzing large datasets -- 4-16 Gb RAM per processor is recommended (also see the EEGLAB wiki for tips on minimizing memory use). For further information see this wiki page). The Matlab Signal Processing toolbox is also recommended; although EEGLAB incorporates functions to replace functions it uses from this toolbox when necessary (e.g., for filtering and power spectra computation), they are not as efficient as the toolbox Matlab functions. Component clustering functions (introduced in EEGLAB v5) also use the Matlab Statistics toolbox. Some EEGLAB plug-in toolboxes use functions from other Matlab toolboxes; see their documentation for details.
EEGLAB Documentation Wiki
EEGLAB Citation Reference
Delorme A & Makeig S (2004) EEGLAB: an open source toolbox for analysis of single-trial EEG dynamics. Journal of Neuroscience Methods 134:9-21 This paper currently has over 2,400 citations in Google Scholar. Other references: Some basic papers on the signal processing tools in EEGLAB. Some recent papers citing EEGLAB.
Search the EEGLAB web site or email discussion list archive
EEGLAB is a collection of about 400 Matlab functions comprising a total of 50,000 program lines, plus a 300-page EEGLAB
tutorial manual. To our knowledge, more than 30 user-initiated plug-ins have been developed and released for EEGLAB. Researchers from at least 88 country domains have downloaded toolbox files. Currently, EEGLAB files are downloaded 30-40 times per day, and over 3,500 researchers participate in the EEGLAB email discussion list.
The First EEGLAB Workshop was held Oct. 28-30, 2004 at the San Diego Supercomputer Center, UCSD, La Jolla CA. The Second workshop was held September 17-19, 2005 at the University of Porto, Portugal. The Third EEGLAB Workshop was in Singapore, November 15-18, 2006, the Fourth in Aspet, near Toulouse, France, in June, 2007. The Fifth EEGLAB Workshop was held near UCSD, La Jolla CA in November, 2007. The Sixth Workshop was in Santiago, Chile in December, 2007, and the Seventh at Indiana University, Bloomington, Indiana in April 2009, The Eighth workshop was again in Aspet, France in June 2009; the Ninth was hosted by University of Newcastle, Australia in late 2009. The Tenth through Twelfth workshops took place in 2010 in Jyväskylä, Finland, in Hsinchu, Taiwan, and at SCCN in La Jolla following the Society for Neuroscience meeting in November. There have also been two one-day workshops preceding meetings of the Society for Psychophysiology Research (SPR) in 2005 and 2010. In 2011, workshops were presented in Aspet, France (June) and in Mallorca, Spain (September) before the ICON XI meeting. In 2012, workshops were held in Beijing, China, following the Human Brain Mapping meeting, and in San Diego at the IEEE EMBC meeting. The 17th EEGLAB Workshop will be hosted by SCCN following the Society for Neuroscience meeting in San Diego in November, 2013. The Online EEGLAB Workshop here, includes streaming video lectures, slides, and links to sample data. To host or help plan future workshops here.
The chief EEGLAB developers are Arnaud Delorme and Scott Makeig. The predecessor to EEGLAB, the ICA/EEG Toolbox (1997-2001), comprised functions written by Makeig with Tony Bell, Colin Humphries, Sigurd Enghoff, Tzyy-Ping Jung, Te-Won Lee, and others, was first released on the Web in 1997 by Scott Makeig at the Computational Neurobiology Laboratory of Terrence J. Sejnowski at The Salk Institute, La Jolla. The first version of the integrated EEGLAB toolbox was written there by Delorme and Makeig with subsequent contributions by many including Marissa Westerfield, Jörn Anemüller, Luca Finelli, Robert Oostenveld, Hilit Serby, Toby Fernsler, Nima Shamlo Bigdeley, Jason Palmer and many others. Dedicated beta testers include Andreas Romeyke and his team, who developed a test suite for EEGLAB, and other advanced users including Stefan Debener and Andreus Widmar. EEGLAB development is now centered at the Swartz Center for Computational Neuroscience (SCCN) of the Institute for Neural Computation at the University of California San Diego (UCSD). Core EEGLAB maintenance and development is supported by the US National Institute of Neurological Disorders and Stroke (NINDS). Recent additions to EEGLAB from SCCN include several plug-in toolboxes (described here) including NFT (head modeling tools), SIFT (effective connectivity tools), MPT (source comparison tools), BCILAB (BCI modeling tools), and PACT (epileptic spike detection),
We welcome collaborations with users and open source developers to expand and improve EEGLAB functions and/or to independently write and release EEGLAB plug-in applications and environments. If you have written plug-ins for use in your laboratory, please consider releasing them for use by others. Available EEGLAB plug-ins are listed here; several are included in the EEGLAB release. EEGLAB is under active open-source development. Together with user developers, we are extending its capabilities to include resources including across-subject statistics and component clustering, cluster computing, and component source localization. User-contributed features and suggestions are welcome (see Add to EEGLAB). We encourage and plan to interconnect EEGLAB with other Matlab-compatible toolboxes. To participate in open-source development of EEGLAB, see Add to EEGLAB and/or email us at email@example.com.
HeadIT An allied NIMH-sponsored project to create a Human Electrophysiology, Anatomic Data, and Integrated Tools (HeadIT) resource is underway. A beta version of the HeadIT data archive is now online, with several studies available for download, at HeadIT.org.
ERICA A concurrent project is developing an integrated software framework (ERICA) for Experimental Recording, Interactive Control and Analysis of EEG and multimodal experiments, particularly those incorporating interactive data-adaptive stimulus and feedback control (BCI, neurofeedback, cognitive monitoring, videogame-like protocols, social neuroscience experiments, etc.) - an evolving imaging modality we refer to as Mobile Brain/body Imaging (MoBI). In particular, the Lab Streaming Layer (LSL) software by Christian Kothe is available for synchronous recording of data from multiple sources (EEG, motion capture, eye tracking, video, audio, etc.). A video web tutorial on LSL is also available. To learn more about the ERICA environment, write to firstname.lastname@example.org. A Matlab environment for reviewing and analyzing ERICA data (MoBILAB) is under construction.
- Visit the Known bugs and limitations page.
- Report a bug or contribute a coding suggestion using the EEGLAB Bugzilla facility.
- Send private comments and inquiries about EEGLAB not related to bugs to email@example.com.
- Send questions or comments of general interest about EEGLAB use and principles, plus any EEG-relevant news to the EEGLAB Discussion List.