General Information on ICA Matlab package for Psychophysiological Data


Current toolbox version: 3.52 (release of 10/12/00)
Written for Matlab Unix versions: 4.2c and 5.0+ (separate releases). Version 4.2c no longer supported.

Run demonstration: >> icademo % But first replace the string 'XXX' in icadefs.m
List of functions: >> help ica

List of publications on ICA applied to EEG and fMRI data.

Frequently-asked questions about ICA (icafaq.html).

Download the Matlab ICA/EEG toolbox

Version History:

1.0 11-30-96 First release, CNL / Salk Institute (Makeig et al.)
3.52 10-12-00 Latest release

The ICA/EEG toolbox has now been downloaded over 2100 times by users from over 50 countries and research fields. Please email feedback about things that do or don't work, or any suggested improvements. If you improve your working versions of the scripts, please send me a copy or description. I will credit your suggestions.

Scott Makeig

New functions/features/fixes in 3.52 (as of 10/12/00):

** rmart() - remove EOG artifacts from EEG data using multiple time-lag regression. Added back to the toolbox -- though we prefer using ICA for this purpose! (See new publication below). ** envtopo(), a new [-n] option for arg 'compnums' directs envtopo() to show only the largest n (<=7) component envelopes and maps. Also, line colors and styles have been made bolder. ** binica() now uses unique filenames for data, script, weights and sphere files, to avoid conflicts when multiple binica() calls are made in the same pwd. ** binica() now reads the .wts file correctly when 'pca' ncomps < nchans in ** timef() fixed recent version bug in calculating output (and displayed) frequencies when cycles >0 - they were 1:n instead of actual Hz values!

New functions in version 3.5 (as of 8/00):


** binica() - calls binary ica (separate download) from the Matlab command 
   line (much faster and more memory-efficient than runica())

** axcopy() - window popup function incorporated into many plotting functions

New features/fixes:

** axcopy() is now added to many plotting functions to allow the user to pop up a window closeup of any subaxes with a mouse click and to zoom in on plotted data in this new window.
** erpimage() now has amplitude significance bounds estimated and shown as well as an inter-trial coherence significance bound.
** erpimage() now has a 'topo' map plotting option, plus axcopy() A bug that caused the y-axis labels to be missing when time limits were specified has been fixed.
** erpimage() now has a 'spec' plotting option - plots data spectrum
** erpimage() now has a new 'caxis' plotting option - causes the color map to use a specified fraction of data range instead of the whole data range
** testica() uses a new eyeLike() function, contributed by Benjamin Blankertz, in place of idit(), which failed in some circumstances.
** testica() now has new defaults and extra figures (for educational purposes)
** sph2pol is now sph2topo(), and pol2sph is pol2topo(). (cf. cart2topo())
** envtopo() has new 'comp_fill' and 'bold' options - they look sharp!
** plottopo() now has easier color and vertical line specification It also performs popups using axcopy.
** timef() has a new 'details' argument that scrolls detailed notes on its arguments, outputs, history, references and internal constants.
** floatread() now takes size argument 'square'.
** runica() now allows nchans > nframes if 'pca' reduction is used to reduce the data dimension < nframes.
** eegplot() now has the cal bar turned 'on' and will accept an int vector of channel numbers

Known bugs:

** plottopo() was broken in the 3.5 release, fixed in 3.5.1 -sm
** In erpimage(), the 'phase' option may not work in MATLAB 5.2 (ok in 5.3)???
** In erpimage(), the 'allcohers' option is not debugged.

News of ICA applications to biomedical research

There were 10 papers on ICA applied to fMRI or PET data at the recent Human Brain Mapping meeting in Texas, and 10 ICA papers on ICA for MEG data at BioMag2000. The ICA200 meeting, held in Helsinki in June, included nearly 200 papers and posters, with the final session on biomedical applications.

The next ICA meeting, ICA2001 will be hosted by the Institute for Neural Computation, UCSD in early December, 2001 (just after NIPS) at Del Mar, CA. For details, see http://ica2001.org

Recent Publications on ICA decomposition of biomedical data: (downloads: www.cnl.salk.edu/~scott or www.cnl.salk.edu/~jung)

For further information:

http://www.cnl.salk.edu/~scott/ica.readme.html
http://www.cnl.salk.edu/~tewon/ica_cnl.html
http://www.cnl.salk.edu/~scott/icafaq.html
http://www.cnl.salk.edu/~scott/icabib.html

Scott Makeig CNL / Salk Institute
August 19, 2000

P.S. While many of the tools in this toolbox are specialized for electrophysiological research, general interest in ICA is exploding. Some of the ICA applications listed by users who have downloaded the ICA/EEG Matlab toolbox:

EEG Signal Processing; Nonlinear dynamics in EEG
Analysis of EEG using the chaos theory
EEG spatio-temporal analysis; EEG and cognitive processes
Inverse problems in EEG, MEG;
Sleep Research, EEG analysis, vigilance analysis;
Sleep spindles; EEG Microarousals in sleep;
Alertness monitoring
Wavelet analysis of EEG signals
Autonomic nervous system & EEG, GSR
Neurofeedback for children EEG
EEG data from AD and VD patients
MEG data on speech perception;
MEG and EEG; DC-Magnetometry
MEG, Neural control and neural plasticity
Auditory Evoked Potentials
Cognitive classification using ERPs
Visual VEP/EEG with depth perception.
Single trial evoked potential detection
Motor potentials; EMG
Eye movements
Classical conditioning
Auditory evoked response data from cochlear implant users.
Acoustic emissions
PET; PET stimulation data;
Functional brain imaging research
fMRI & MEG integration
fMRI, PET and EEG
Visual processing using fMRI & MEG
High Resolution ECG improvements using ICA
Cardiac electrograms ECG;
EEG/EKG data analysis and modelling
Epilepsy Research
Brain-computer interface BCI
Multi-electrode single-unit recordings in the CNS
Population vectors from multineuron recordings
Optical imaging of visual cortex;
Separating out vascular motion from optical maps
Multivariate hormonal dynamics
Protein bioinformatics
Nonstatonary astronomical time series
Speech recognition; Speech in noise;
Spectroscopic data
Sound spectrograms
Image processing and de-noising
CCD imaging and sound separation
Ultrasonic research
Spacecraft fault detection/prediction; machine vibration signals
In vivo and in vitro pharmacological applications
Telecommunications; Multichannel transmission
Control and adaptive systems
Pattern recognition and learning
Computational structural molecular biology
Applied mathematics, ill-posed problems
Nonlinear brain dynamics;
Motor control of Octopus
Brain transplants, somatosensory plasticity
New model of the synapses and endocrine factors
Cognitive Neuroscience - signal and image processing
Medical image analysis and pattern recognition
Image processing; Image Denoising
Hyperspectral visible and infrared data
Eddy Current Sensors
Neural Networks, Artificial Intelligence, Agent Based systems
Statistics; Konnektionismus; neural networks
Target tracking
Neuro-fuzzy methods applied to nonlinear systems
Human Engineering; Neuroengineering;
Finanical prediction; Data mining in finance;
Biocybernetics
The world of ODE
Ionospheric tomography
Ecological data analysis
Hyperspectral geology
Video understanding
Sperm dynamics(!)
Telepathy, etc.(?)
Fun