Biclustering

Biclustering, co-clustering, or two-mode clustering is a data mining technique that allows simultaneous clustering of the rows and columns of a matrix. The term was first introduced by Mirkin (recently by Cheng and Church in gene expression analysis), although the technique was originally introduced much earlier (i.e., by J.A. Hartigan ).

Given a set of m rows in n columns (i.e., an m&times;n matrix), the biclustering algorithm generates biclusters - a subset of rows that exhibit similar behavior across a subset of columns, or vice versa.

Complexity
The complexity of the biclustering problem depends on the exact problem formulation, and particularly on the merit function used to evaluate the quality of a given bicluster. However most interesting variants of this problem are NP-complete requiring either large computational effort or the use of lossy heuristics to short-circuit the calculation.

Type of Bicluster
Different biclustering algorithms have different definitions of bicluster.

They are:


 * 1) Bicluster with constant values (a),
 * 2) Bicluster with constant values on rows or columns (b, c),
 * 3) Bicluster with coherent values (d, e).



Algorithms
There are many biclustering algorithm developed for bioinformatics, including: Block clustering, CTWC, ITWC, δ-bicluster, δ-pCluster, δ-pattern, FLOC, OPC, Plaid Model, OPSMs, Gibbs, SAMBA, Robust Biclustering Algorithm (RoBA), cMonkey, PRMs and DCC. Biclustering algorithms have also been proposed and used in other application fields under the names coclustering, biodimentional clustering, and subspace clustering.

Some recent algorithms have attempted to include additional support for biclustering rectangular matricies in the form of other datatypes. One such algorithm, cMonkey, has been recently developed and applied to several systems-biology datasets.

There is an ongoing debate about how to judge the results of these methods, as biclustering allows overlap between clusters and some algorithms allow the exclusion of hard to reconcile columns/conditions. Not all of the available algorithms are deterministic and you need to pay attention to the degree to which results represent stable minima. Because this is an unsupervised classification problem, the lack of gold standard makes it difficult to spot errors in the results. One approach is to utilize multiple biclustering algorithms, with majority or super-majority voting amongst them deciding the best result. Another way is to analyse the quality of shifting and scaling patterns in biclusters.