Tree-dependent Component Analysis
 Last updated: September 25th, 2003

Matlab code - version 1.0


The tca package is a  Matlab program that implements the tree-dependent component analysis (TCA) algorithms that extends the  independent component analysis (ICA), where instead of looking for a linear transform that makes the data components independent, we are looking for components that can be best fitted in a tree structured graphical model. The TCA model can be applied in any situation where the data can be assumed to have been transformed by an unknown linear transformation.

In addition, the TCA algorithm can be specialized to provide a principled way of finding clusters in ICA, where components in the same cluster are dependent, but independent from components in other clusters.

The TCA algorithm can be applied to non Gaussian temporally independent sources or Gaussian stationary sources.

For more information, please read the following paper:

Francis R. Bach, Michael I. Jordan. Beyond independent components: trees and clusters,
to appear in Journal of Machine Learning Research, 2003. [ps] [pdf]

Matlab code - version 1.0

Version 1.0 is a an implementation of the TCA algorithm presented in the previous papers. It performs a generalization of linear  ICA with the same number of sources and mixtures. It can be efficiently utilized for any number of components and any number of training samples. Precise instructions on how to use the package are included in the archive file. This is the first issue of the package and lot of work is still needed regarding the interface; any comments welcome.

Note that some routines (incomplete Cholesky decomposition) are implemented in C and for optimal performance should be precompiled at the matlab prompt (using the mex command ) the first time you use the package. Instructions are included in the distribution.   If you don't want to use the C code, the package will still work, though slower.

The tca package is Copyright (c) 2003 by Francis Bach. If you have any questions or comments regarding this package, or if you want to report any bugs or unexpected error messages, please send an e-mail to The current version 1.0 has been released on September 25th, 2003. Check this web page regularly for newer versions.

The package contains ica code (jader.m) by Jean-Francois Cardoso ( and some graphical model utilities from Kevin Murphy (

tca version 1.0


under construction...