![]()
SCCN Home
EEGLAB home
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 overviewI. 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
What is EEGLAB?12. Processing multiple datasets
Download tutorial dataset (4.1Mb)
EEGLAB overview
1. Loading data and visualizing data information
1.1. Getting started2. Using channel locations
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.1. Importing channel locations - the tutorial dataset3. Plotting channel spectra and maps
2.2. Retrieving standard channel locations
2.3. Importing a measured channel location file
4. Preprocessing tools
4.1. Changing the data sampling rate5. Extracting data epochs
4.2. Filtering the data
4.3. Re-referencing the data
5.1. Extracting epochs6. Data averaging
5.2. Removing baseline values
6.1. Plotting the ERP on a single axis with scalp maps7. Selecting data epochs and comparing data averages
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.1. Selecting events and epochs for two conditions8. Plotting ERP images
7.2. Computing grand mean ERPs
7.3. Finding ERP peak latencies
7.4. Comparing ERPs for two conditions
8.1. Selecting a channel to plot9. Performing independent component analysis
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.1. Running ICA decompositions10. Working with ICA components
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.1. Rejecting data epochs using ICA11. Computing time/frequency transforms
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.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
1. Importing continuous data
1.1. Importing Matlab array or .mat file data2. Importing event information for continuous 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.1. Importing events from a data channel3. Importing sets of single-trial epochs
2.2. Importing events from a Matlab array or text file
2.3. Importing events from a Presentation file
3.1. Importing .RAW EGI data epoch files4. Importing sets of data averages
3.2. Importing Neuroscan .EEG data epochs
3.3. Importing epoch information from a Matlab array or text file
4.1. Importing data into Matlab5. Exporting data and ICA matrices
4.2. Concatenating data averages
4.3. Importing concatenated data averages
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 data2. Rejecting artifacts from epoched data
1.1. Rejecting data by visual inspection
1.2. Rejecting data channels by channel statistics
2.1. Rejecting data epochs by visual inspection3. Rejecting data using independent components
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
IV. Writing EEGLAB scripts
1. Why write EEGLAB scripts?
2. Using dataset history2.1. Dataset history
3. Using session history 4. Basic scripting examples
2.2. EEGLAB pop_ functions
2.3. Example scripts using dataset history
2.4. Updating the EEGLAB window
5. Intermediate scripting examples
5.1. Processing multiple datasets
V. Event processing
5.2. Performing time-frequency decomposition of all channels
5.3. Animating a scalp map
1. Processing events from the menuVI. Independent component clustering
2. Processing events from the Matlab command line
1. Component clusteringA1. Dataset data structures
2. Clustering from the graphic interface
2.1. Creating a new studyset
3. STUDY data visualization tools
2.2. Loading an existing STUDY
2.3. Preparing to cluster (pre-clustering)
2.4. Finding clusters
2.5. Viewing clusters
2.6. Editing clusters
2.7. Hierarchic sub-clustering
2.8. Editing STUDY datasets
4. Study statistics and visualization options
4.1. Parametric and non-parametric statistics
5. EEGLAB study data structures
4.2. Options for computing statistics on and plotting results for scalp channel ERPs
4.3. Computing statistics for studies with multiple groups and conditions
5.1. The STUDY structure
6. Command line STUDY functions
5.2. The STUDY.datasetinfo sub-structure
5.3. The STUDY.cluster sub-structure
5.4. The STUDY.changrp sub-structure
1. EEG and ALLEEGA2. Options for maximizing memory and disk space
2. EEG.chanlocs
3. EEG.event
4. EEG.epoch
1. Maximize memory menu
2. The icadefs.m file
A3. How to contribute to EEGLAB1. Open source policy
2. How to write an EEGLAB function
3. How to write an EEGLAB plugin
A4. The DIPFIT plug-in: Equivalent dipole source localization of independent components1. Automated dipole fitting
2. Setting up DIPFIT parameter values
3. Initial coarse-grained fitting - Scanning on a grid
4. Interactive fine-grained fitting
5. Visualizing dipole models
6. Plotting dipole locations on scalp maps
7. Using DIPFIT to fit MEG components
8. Using DIPFIT to fit EEG or ERP scalp maps
9. DIPFIT structure and functions
10. DIPFIT Validation study
11. Literature References
A5. The MI_CLUST plug-in: Clustering dataset ICs using mutual information
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