XClose

UCL Queen Square Institute of Neurology

Home
Menu

MILCA

!!! we are in the process of updating and moving this page to its new permanent place !!!

Windows executables which you can download below would most probably not work on your new version of windows.

I quickly recompiled some of them,  please download here milca.exe and milca64.exe and MIxnyn.exe

MILCA - Code download 

 

Mutual 

Information

Least-dependent 

Component

Analysis            

MILCA.jpg

MILCAkuh.jpg

MILCA and SNICA are Independent Component Analysis (ICA)-algorithms which use an accurate Mutual Information (MI) estimator to find the least dependent components under a linear transformation (SNICA uses non-negativity constraint). The MI estimator is data efficient, adaptive and has minimal bias [3].
The direct access to the dependency between the components can be used not only as a contrast function to find the most independent components but also in performance tests, reliability tests and for cluster analysis (when the signals are not independent). We provide here algorithms for performing ICA (or rather LCA) and these tests.
Furthermore, we extended all these approaches to use additional time structure information which is often contained in physical data. For an overview see [1].

Have a look at the MILCA demonstration page with audio and image examples.

MILCA and SNICA were recently applied to spectroscopic analysis of complex chemical mixtures [7]. This web page contains data used in this paper along with simple matlab codes to reproduce paper figures.

Along with the basic MILCA, the package contains also the extended version which use time structure (MILCAdelay), reliability tests (ICATests), a clustering algorithm (MIClustering), and mutual information estimators for testing independences of arbitrary signals (MIhigherdim and MIxnyn). Specifically:



MILCA (standard ICA) - uses only the instantaneous information in the signal, optimal for signals with white spectra (no time structure)
Input: original (mixed) components
Output: least dependent components, de-mixing matrix

MILCAdelay - uses in addition any time structure in the signals. Can separate also two Gaussians with different spectra [1].
Input: original (mixed) components
Output: least dependent components, de-mixing matrix

ICATests (Reliability Tests)- can be used for any ICA-output, not necessarily from MILCA [2,1]
Input: any ICA-output
Output: dependency matrix, variability matrix, square array of 2-d plots showing MI vs. rotation angle from all two-channel combinations

MIClustering - hierarchical clustering algorithm based on the grouping property of MI [4,1]
Input: any ICA-output
Output: Dendrogram of the dependency

MIxnyn - calculates mutual information between two input channels of arbitrary dimensions [3,1]
Input: multidimensional input signal
Output: MI value

MIhigherdim - calculates mutual information (redundancy) between any number of one-dimensional input channels [3,1]
Input: multidimensional input signal
Output: MI value

SNICA - "Stochastic Non-negative Independent Component Analysis" algorithm. This is a new Monte  Carlo approach to blind separation of non-negative well-grounded sources from their linear mixtures based on a constrained search for statistically least-dependent components. SNICA is particularly suited for multivariate spectral curve resolution. You can download the zip file with the SNICA source codes (along with the test example) here.
If you have questions or comments, feel free to email to Sergey Astakhov.

To reduce computational time, all MATLAB functions call executables which have to be generated from the included C source code.
For those who are not so familiar with C, here is a short description how to generate the executables.
The C-executables are autonomous  (MATLAB is not required).  Run a program without arguments to get help.

DOWNLOAD -  ZIP-file with all C-Source-Codes, m-files (including tutorial) and data

DOWNLOAD windows version produced with the free DJGPP (gcc) Compiler
(freely available Borland C compiler can be used as well)

Main References

These are the main references if you want to publish results obtained by our codes:

  1. Harald Stögbauer, Alexander Kraskov, Sergey A. Astakhov, and Peter Grassberger , Phys. Rev. E 70 (6)  066123, 2004,

    Least Dependent Component Analysis Based on Mutual Information (preprint) Harald Stögbauer, Alexander Kraskov, Sergey A. Astakhov, and Peter Grassberger , Phys. Rev. E 70 (6)  066123, 2004,

  2. Harald Stögbauer, Ralph G. Andrzejak, Alexander Kraskov and Peter Grassberger, INDEPENDENT COMPONENT ANALYSIS AND BLIND SIGNAL SEPARATION LECTURE NOTES IN COMPUTER SCIENCE 3195: 209-216, 2004

    Reliability of ICA estimates with mutual information Harald Stögbauer, Ralph G. Andrzejak, Alexander Kraskov and Peter Grassberger, INDEPENDENT COMPONENT ANALYSIS AND BLIND SIGNAL SEPARATION LECTURE NOTES IN COMPUTER SCIENCE 3195: 209-216, 2004

  3. A. Kraskov, H. Stögbauer, and P. Grassberger,  Phys. Rev. E 69 (6) 066138, 2004

    Estimating mutual information (preprint) A. Kraskov, H. Stögbauer, and P. Grassberger,  Phys. Rev. E 69 (6) 066138, 2004

  4. A. Kraskov, H. Stögbauer, R. G. Andrzejak, and P. Grassberger, EUROPHYSICS LETTERS 70 (2): 278-284,  2005

    Hierarchical clustering using mutual information (preprint) A. Kraskov, H. Stögbauer, R. G. Andrzejak, and P. Grassberger, EUROPHYSICS LETTERS 70 (2): 278-284,  2005

  5. Sergey A. Astakhov, Harald Stögbauer, Alexander Kraskov,  and Peter Grassberger ,

    Spectral Mixture Decomposition by Least Dependent Component Analysis (preprint) Sergey A. Astakhov, Harald Stögbauer, Alexander Kraskov,  and Peter Grassberger ,

  6. Sergey A. Astakhov, Alexander Kraskov, Harald Stögbauer, and P. Grassberger , ANALYTICAL CHEMISTRY 2006; 78(5); 1620-1627

    Monte Carlo Algorithm for Least Dependent Non-Negative Mixture Decomposition (preprint)Sergey A. Astakhov, Alexander Kraskov, Harald Stögbauer, and P. Grassberger , ANALYTICAL CHEMISTRY 2006; 78(5); 1620-1627

  7. Yulia B. Monakhova, Sergey A. Astakhov, Alexander Kraskov, and Svetlana P. Mushtakova (2010), Chemometrics and Intelligent Laboratory Systems, 103, 108-115

    Independent components in spectroscopic analysis of complex mixture (preprint)Yulia B. Monakhova, Sergey A. Astakhov, Alexander Kraskov, and Svetlana P. Mushtakova (2010), Chemometrics and Intelligent Laboratory Systems, 103, 108-115

Notices

These programs and packages are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

These programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You will receive a copy of the GNU General Public License enclosed in the downloaded archive. See also http://www.gnu.org/licences/.

©
Sergey Astakhov
Peter Grassberger
Alexander Kraskov
Harald Stögbauer