EEG-LAB artifact removal
beta 2.1

by Arnaud Delorme
with code from the matlab ICA toolbox.



This page is obsolete since November 2002. See the new EEGLAB page

What is EEG-LAB ? EEG-LAB is a powerfull matlab graphic interface for rejecting EEG/ERP artifact using ICA. The underlined computation is performed mainly by the matlab ICA toolbox under matlab 5.x or 6 (either on UNIX, WINDOWS or MAC).

Why EEG-LAB ? Most of the researcher intending to use ICA to reject artifact in their data can not do it because of the complexity of the matlab ICA toolbox (for non-matlab users at least). Moreover, an automatic artifact removal algorithm is not implemented and the user has to choose the components based on its own expertize.  Here the sofware implement new functions to reject automatically both single trials ERP or/and component artifacts. It also provide the users with a graphic interface so they can tune the algorithms and clean their data of artifacts.

Beta software ? This is beta software, which means that it's still under development. Especially, the artifact rejection algorithm is still experimental and under development.Though the menus are quite simple, the documentation is also nearly absent. The risk is however limited that you crash your machine or erase your data (this is one of the advantage of Matlab). We need beta-tester to tell us what should be improved. Please send all of your comments to

Installing EEG-LAB

1. download the ICA toolbox (don't get lost: when you follow the first link "download", there is a form to fill at the bottom of the page that pops-up).

2. Read the disclaimer : This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

3. Download on EEG-LAB latest version in gzip format

Uncompress or unzip the file using your utility software in the SAME DIRECTORY as the ICA-toolbox. Under UNIX use "tar zxvf eeglab.gz" to uncompress and expand archive at the same time. Note that the latest version of EEGLAB (see EEGLAB page) is able to load datasets saved using these old versions of EEGLAB.
4. type "eeglab" under matlab and follow the help and tutorials (Help menu-tutorial).

type eeglab and try to follow the menus

Rapid tutorial & Screen captures

Reading or Creating a data set

To read a Neuroscan EEG file

Go to the FILE menu LOADEEG and browse your directories. Set the trials, electrodes... you want to read.

To create a dataset - editmenu

Read an array of EEG activation into matlab (load -ascii FILENAME will load the ASCII file into matlab and store the array in the FILENAME variable)
Declare this variable GLOBAL (global FILENAME)
Use the menu EDIT, CREATE NEW DATEASET. Enter the global variable name into the data field (instead of SIGNAL). You must also provide several other information. The software will check for their consistency. Be patient because it might not work at once: it is best to enter only the basics and then to enrich the dataset with "edit dataset" (not to enter the reaction time array and the signal at once).

Use PLOT menu function to visualize your data

To reject artifacts

First run infomax ICA (menu TOOLS, INFOMAX ICA). If it doesn't work, check that the runica command is present (type which runica). If it is not you forgot to install the ICA toolbox (see instalation).

When finished, you might save your data (menu FILE, SAVE DATASET) for future use.

Several trials rejection menu function are available (if you don't understand the fields that are proposed to you, just let the defaults)

These are not based on ICA
Manual trial reject - use eegplot to reject trials manually
Standard trial reject - thresholding over periods of time
Statistical trial reject - for comparison with component

These are based on ICA
Manual component reject - use eegplot to reject component on specific trials manually
Standard component reject - for comparison with raw data
Statistical component reject - use entropy and kurtosis to select "odd" trials

Global component rejection
This is to reject whole independant component (subtract them from the data). plot all the component map. It implement automatic rejection based on their statistic. Also usefull to visualize components characteristics.
Rejection synthesis - combine standard, local compoenent rejection and  global component rejection (all the previous rejections).
TIP: when computing a rejection, always accept it. It won't erase any of the original data and the information will be used for reejection synthesis.

Other menus
File menu - read Neuroscan EEG file, read/save dataset, read/save workspace
Edit - create, edit a dataset, resample, copy/move dataset
Plot - plot commands from the ICA toolbox
Tools - artifact rejection
Datasets - all the datasets

type "eegglob" to have access to the variables of the programs (as global)

SIGNAL is the data
RT     reaction time
PNTS   points
RATE   sampling rate
XMIN   minimum time in s
XMAX   maximum time in s
SWEEPS the number of trials
NBCHAN the number of channels
POSCHAN the .loc file for channel location

you can modify these values and then use storeset(x) to save the values for the current set x

type "h" to get the history of the commands runned by the interface (LASTCOM is the the last command). help h for more
There might be some bug here but it works nicely for most of the commands.

How to contribute to EEG-LAB

See EEG-LAB contribution page.

Answers to common questions

Is EEG-LAB just an Interface for the ICA toolbox ? NO. Some of the function for automatic artifact rejection that were associated with EEG-LAB have not been introduced yet into the ICA toolbox. EEG-LAB on the other way does not cover all the possibilities of the ICA toolbox.  It is dedicated to automatic artifact rejection and is not an EEG software by itself. Typically, it removes the artifact from the data (both trials artifacts and component artifact) and provide the user with graphic windows to visualize data using the powerfull functions of the ICA toolbox. Howether it does not cover all the possiblities of the ICA toolbox and thus can not be regarded as a full graphic interface for it. It uses some functions of it and can help to start with the ICA toolbox.

Is the software of any interest for expert Matlab users ? YES. First it implements new algorithms for artifact rejection (see above). Second, for matlab user, EEG-LAB is a fast and accurate way to start treating their EEG and ERP data and to manipulate directly the signal arrays. If you intend to use the ICA toolbox, this is a good starting point and introduction to it (even if you're a matlab user, you will realize that using the ICA-toolbox is not that simple). It provide you with a full structure to describe your data (signal, trials, channel location, reaction time, type of the trials, time limits and sampling rate) and let you use these structures under matlab.

Support ? We will provide basic support for this software and might extend some of its functions for artifact rejection. It might be integrated into a more multi-purpose graphic inteface in the future.

For any comments, to report bugs
or suggestions,