# connectivity: Clustering Connectivity and Consensus Matrices In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

## Description

`connectivity` is an S4 generic that computes the connectivity matrix based on the clustering of samples obtained from a model's `predict` method.

The consensus matrix has been proposed by Brunet et al. (2004) to help visualising and measuring the stability of the clusters obtained by NMF approaches. For objects of class `NMF` (e.g. results of a single NMF run, or NMF models), the consensus matrix reduces to the connectivity matrix.

## Usage

 ```1 2 3 4 5 6``` ``` connectivity(object, ...) ## S4 method for signature 'NMF' connectivity(object, no.attrib = FALSE) consensus(object, ...) ```

## Arguments

 `object` an object with a suitable `predict` method. `...` extra arguments to allow extension. They are passed to `predict`, except for the `vector` and `factor` methods. `no.attrib` a logical that indicates if attributes containing information about the NMF model should be attached to the result (`TRUE`) or not (`FALSE`).

## Details

The connectivity matrix of a given partition of a set of samples (e.g. given as a cluster membership index) is the matrix C containing only 0 or 1 entries such that:

C_{ij} = 1 if sample i belongs to the same cluster as sample j, 0 otherwise

## Value

a square matrix of dimension the number of samples in the model, full of 0s or 1s.

## Methods

connectivity

`signature(object = "ANY")`: Default method which computes the connectivity matrix using the result of `predict(x, ...)` as cluster membership index.

connectivity

`signature(object = "factor")`: Computes the connectivity matrix using `x` as cluster membership index.

connectivity

`signature(object = "numeric")`: Equivalent to `connectivity(as.factor(x))`.

connectivity

`signature(object = "NMF")`: Computes the connectivity matrix for an NMF model, for which cluster membership is given by the most contributing basis component in each sample. See `predict,NMF-method`.

consensus

`signature(object = "NMFfitX")`: Pure virtual method defined to ensure `consensus` is defined for sub-classes of `NMFfitX`. It throws an error if called.

consensus

`signature(object = "NMF")`: This method is provided for completeness and is identical to `connectivity`, and returns the connectivity matrix, which, in the case of a single NMF model, is also the consensus matrix.

consensus

`signature(object = "NMFfitX1")`: The result is the matrix stored in slot ‘consensus’. This method returns `NULL` if the consensus matrix is empty.

See `consensus,NMFfitX1-method` for more details.

consensus

`signature(object = "NMFfitXn")`: This method returns `NULL` on an empty object. The result is a matrix with several attributes attached, that are used by plotting functions such as `consensusmap` to annotate the plots.

See `consensus,NMFfitXn-method` for more details.

## References

Brunet J, Tamayo P, Golub TR and Mesirov JP (2004). "Metagenes and molecular pattern discovery using matrix factorization." _Proceedings of the National Academy of Sciences of the United States of America_, *101*(12), pp. 4164-9. ISSN 0027-8424, <URL: http://dx.doi.org/10.1073/pnas.0308531101>, <URL: http://www.ncbi.nlm.nih.gov/pubmed/15016911>.

`predict`
 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```#---------- # connectivity,ANY-method #---------- # clustering of random data h <- hclust(dist(rmatrix(10,20))) connectivity(cutree(h, 2)) #---------- # connectivity,factor-method #---------- connectivity(gl(2, 4)) ```