SCCN icon

The EEGLAB Tutorial

The tutorial is its final phase for wiki conversion. Refer to the EEGLAB wiki page for latest changes in the documentation.

Tutorial overview

I. Analyzing data in EEGLAB
II. Importing/exporting data
III. Rejecting artifacts
IV. Writing EEGLAB scripts
V. Event processing
VI. Independent component clustering

A1. Dataset data structures
A2. Maximizing memory
A3. How to contribute to EEGLAB
A4. The DIPFIT plug-in: Equivalent dipole source localization
A5. The MI-clust plug-in: Clustering dataset ICs using mutual information

Detailed tutorial outline

Download the full tutorial in pdf on this page

I. Analyzing data in EEGLAB

What is EEGLAB?
Download tutorial dataset (4.1Mb)
EEGLAB overview

1. Loading data and visualizing data information
1.1. Getting started
    1.1.1. Learning Matlab
    1.1.2. Installing EEGLAB and tutorial files
    1.1.3. Starting Matlab and EEGLAB
1.2. Opening an existing dataset
1.3 Editing event values
     1.3.1. Sample dataset description
1.4. Annotating datasets
1.5. Scrolling through the data
2. Using channel locations
2.1. Importing channel locations - the tutorial dataset
2.2. Retrieving standard channel locations
2.3. Importing a measured channel location file
3. Plotting channel spectra and maps
4. Preprocessing tools
4.1. Changing the data sampling rate
4.2. Filtering the data
4.3. Re-referencing the data
5. Extracting data epochs
5.1. Extracting epochs
5.2. Removing baseline values
6. Data averaging
6.1. Plotting the ERP on a single axis with scalp maps
6.2. Plotting channel ERPs in a topographic array
6.3. Plotting channel ERPs in a rectangular array
6.4. Plotting an ERP scalp map series
       6.4.1. Plotting a series of 2-D ERP scalp maps
       6.4.2. Plotting a series of 3-D ERP scalp projections
7. Selecting data epochs and comparing data averages
7.1. Selecting events and epochs for two conditions
7.2. Computing grand mean ERPs
7.3. Finding ERP peak latencies
7.4. Comparing ERPs for two conditions
8. Plotting ERP images
8.1. Selecting a channel to plot
8.2. Plotting ERP images with pop_erpimage()
8.3. Sorting trials in ERP images
8.4. Plotting ERP images: spectral options
8.5. Plotting spectral amplitude in single trials: additional options
9. Performing independent component analysis
9.1. Running ICA decompositions
9.2. Plotting 2-D component scalp maps
9.3. Visualizing 3-D component scalp projections
9.4. Examining and removing ICA components
9.5. Subtracting ICA components from the data
9.6. Retaining several ICA weights in a dataset
9.7. Scrolling through component activations
10. Working with ICA components
10.1. Rejecting data epochs using ICA
10.2. Plotting component spectra and scalp topographies
10.3. Plotting component ERPs
10.4. Plotting component ERP contributions
10.5. Plotting component ERP images
11. Computing time/frequency transforms
11.1. Decomposing channel data
11.2. Computing component time/frequency transforms
11.3. Computing component cross-coherences
11.4. Plotting ERSP time courses and topographies

12. Processing multiple datasets
1. Importing continuous data
1.1. Importing Matlab array or .mat file data
1.2. Importing Biosemi .BDF file data
1.3. Importing European data format (.EDF) data
1.4. Importing continuous EGI .RAW data
1.5. Importing .CNT Neuroscan continuous files

1.6. Importing .DAT Neuroscan data
1.7. Importing .SMA SnapMaster data
1.8. Importing ERSPP .RAW and .RDF data
1.9. Importing Brain Vision Analyser Matlab data
1.10. Importing data in other formats
2. Importing event information for continuous data
2.1. Importing events from a data channel
2.2. Importing events from a Matlab array or text file
2.3. Importing events from a Presentation file
3. Importing sets of single-trial epochs
3.1. Importing .RAW EGI data epoch files
3.2. Importing Neuroscan .EEG data epochs

3.3. Importing epoch information from a Matlab array or text file
4. Importing sets of data averages
4.1. Importing data into Matlab
4.2. Concatenating data averages
4.3. Importing concatenated data averages
5. Exporting data and ICA matrices
5.1. Exporting data to an ASCII text file
5.2. Exporting ICA weights and inverse weight matrices

III. Rejecting data artifacts
1. Rejecting artifacts from continuous data
1.1. Rejecting data by visual inspection
1.2. Rejecting data channels by channel statistics

2. Rejecting artifacts from epoched data
2.1. Rejecting data epochs by visual inspection
2.2. Rejecting extreme values
2.3. Rejecting abnormal trends
2.4. Rejecting improbable data
2.5. Rejecting abnormally distributed data
2.6. Rejecting abnormal spectra
2.7. Comparing current and previously proposed rejections
2.8. Inspecting results of all rejection measures
2.9. Notes and strategy
3. Rejecting data using independent components
IV. Writing EEGLAB scripts
1. Why write EEGLAB scripts?

2. Using dataset history 3. Using session history 4. Basic scripting examples

5. Intermediate scripting examples
V. Event processing
1. Processing events from the menu
2. Processing events from the Matlab command line
VI. Independent component clustering
1. Component clustering
2. Clustering from the graphic interface
3. STUDY data visualization tools

4. Study statistics and visualization options
5. EEGLAB study data structures
6. Command line STUDY functions
A1. Dataset data structures
2. EEG.chanlocs

3. EEG.event
4. EEG.epoch
A2. Options for maximizing memory and disk space
1. Maximize memory menu
2. The icadefs.m file

This tutorial was written by
Many thanks to Payton Lin for capturing some images in earlier versions
and to Micah Richert, Yannick Marchand, and Stefen Debener for their detailed comments