by Arnaud Delorme
This page is obsolete
since November 2002. See the new EEGLAB
What is EEG-LAB ? EEG-LAB is a powerfull matlab
graphic interface for rejecting EEG/ERP artifact using ICA. The
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
complexity of the matlab ICA toolbox (for non-matlab users at least).
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
a graphic interface so they can tune the algorithms and clean their
Beta software ? This is beta software, which means
that it's still under development. Especially, the artifact
algorithm is still experimental and under development.Though the menus
are quite simple, the documentation is also nearly absent. The
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 firstname.lastname@example.org.
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 formatUncompress 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).
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 rejectionThis 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).
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)
is the data
RT reaction time
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
"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
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.
? 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.