SCCN Home
FMRLAB Home


Download a Binary Compiled Version of runica()

This binary version of the runica() function of Makeig et al. contained in the EEG/ICA Toolbox runs ~12x faster than the Matlab version and may be ~4x more compact. It uses the logistic infomax ICA algorithm of Bell and Sejnowski, with natural gradient and extended ICA extensions. It was programmed for unsupervised operation by Scott Makeig at CNL, Salk Institute, La Jolla CA. Sigurd Enghoff translated it into C++ code and compiled it for multiple platforms. J-R Duann has improved the PCA dimension-reduction and has compiled the linux and free_bsd versions.

Use: To use the function, call with a ".sc" file argument. For individual applications, copy and modify the sample script "ica.sc".m. Under UNIX or DOS command line

          % ica < myversion.sc

Be sure that the directory that you store the binary file in is in your search path. e.g., In Unix/Linux add this directory to your root .cshrc file "setenv path" line.

Outputs: Ica creates two files, "xxx.wts" and "xxx.sph" containing weights and sphere matrices such that (under Matlab)

          >> ICA_activations = wts * sph * data;

The "xxx" stem in the output files may be specified within the input .sc parameter file. See the sample .sc file for arguments, and the EEG/ICA toolbox tutorial for more details.


To use one of these two programs along with FMRLAB
1) download the file (though if you downloaded the FMRLAB toolbox, they are already included) and place them in the fmrlab directory.

2) edit the fmrlab_icadefs.m file to specify which executable you intend to use.

3) add the eeglab path to you UNIX path, otherwize the system will not be able to locate the executable file

4) run ICA using the 'binica' option (see the tutorial for how to compute ICA components).

Older version of the ICA binary are available below (these versions are not compatible with the Matlab binica.m function and cannot be used directly in FMRLAB. The ica.sc text configuration file (commented) must be edited manually).