AMICA - Adaptive Mixture ICA

(c) Jason Palmer, University of California San Diego, 2015.


What is Amica?

Amica is a binary program (for Linux, Mac, and Windows) that performs an independent component analysis (ICA) decomposition on input data, potentially with mulitple ICA models. It can be run standalone, or from Matlab. Key features of Amica include:

  1. Adaptive Source Densities -- the source density models are adapted using a mixture of Generalized Gaussian density model, resulting in extremely good fit between the density model and the actual density of the source being estimated
  2. Multiple models -- Amica allows multiple ICA models to be learned simultaneously, automatically segmenting the data into regions of local stationarity, and returning a set of components for each model. Amica can also be set to share components between models to increase estimation efficiency
  3. Likelihood -- posterior likelihood of each model for given and new data is available, allowing rejection of unlikely data, as well as classfication of new data
  4. Parallel implementation -- the program can use multiple cores in single workstations (using portable OpenMP code), as well as multple nodes in a cluster (using portable MPI code). All binaries allow multi-core (SMP) execution. Only the Linux version currently supports clusters (we use the freely available Rocks / Sun Grid Engine)

Download Amica

EEGLAB plugin zip file:
- amica1.5.zip

Matlab files:
- eegplugin_amica.m
- pop_runamica.m
- runamica15.m
- loadmodout15.m
- eeg_loadamica.m

To use as an eeglab plugin, create a directory under eeglab plugins:..../eeglab/plugins/amica1.5, and download the .m files and the appropriate binary file below into that directory. Then run eeglab, and "Run Amica" should appear under tools.

Binary files:
- amica15mkl.exe (Windows 7/10 64-bit binary)
----- Install MPICH2 (apparently the latest mpich2 version may cause probems so please try installing older version using .msi installer here: http://www.mpich.org/static/downloads/1.4/)
----- fmpich2.dll (Windows DLL, save in directory with binary)
----- libiomp5md.dll (Windows DLL, save in directory with binary)
- amica15mac (Mac OSX 64-bit binary)
- amica15ub (Ubuntu 12.04 LTS 64-bit binary)
- amica15c (Compiled under Fedora Linux)

On Mac, you should also change the permissions of the binary file amica15mac to executable. Run "Terminal" from the Go->Utilities menu, then at the prompt run

cd <put your eeglab path here>/eeglab/plugins/amica1.5
chmod 777 amica15mac

Sample EEG Data
- Memorize.fdt (71 x 319500) 71 channel Sternberg dataset from Onton and Makeig 2006.
- amicadefs.param sample input file for binary standalone running on Memorize.fdt. (The param file is what is produced by the gui, or the matlab script, before calling the binary.) To run binary standalone, use, e.g.,
> amica15mkl.exe amicadefs.param
or,
> ./amica15mac ./amicadefs.param
to test if the binary standalone works, independently of the gui and matlab.

Amica EEGLAB GUI Plugin Help