apcluster (version 1.4.3)

coerce-methods: Coercion of cluster hierarchies

Description

Functions for coercing clustering object to hclust and dendrogram objects

Usage

# S4 method for AggExResult
as.hclust(x, base=0.05)
# S4 method for ExClust
as.hclust(x, base=0.05, ...)
# S4 method for AggExResult
as.dendrogram(object, base=0.05, useNames=TRUE)
# S4 method for ExClust
as.dendrogram(object, base=0.05, useNames=TRUE, ...)

Arguments

x

a clustering result object of class , , or

object

a clustering result object of class , , or

base

fraction of height used for the very first join; defaults to 0.05, i.e. the first join appears at 5% of the total height of the dendrogram (see details below).

useNames

if TRUE (default), the labels of the dendrogram are the sample/cluster names (if available); otherwise, the labels are indices.

...

all other arguments are passed on to aggExCluster (see details below).

Value

see details above

Details

If called for an object, as.hclust creates an hclust object. The heights are transformed to the interval from base (height of lowest join) to 1 (height of highest join). If called for an or object, aggExCluster is called internally to create a cluster hierarchy first. This is only possible if the pairwise similarities are included in the sim slot of x (see aggExCluster on how to ensure this).

If x is an object obtained by clustering an entire data set, as.hclust produces a complete hierarchy. If, however, x is an (or ) object or an obtained by running aggExCluster on an or object, then as.hclust produces a hierarchy of clusters, not of samples.

If called for an object, as.dendrogram creates an dendrogram object. Analogously to as.hclust, the heights are transformed to the interval ranging from base (height of lowest join) to 1 (height of highest join). So, any information about heights of merges is lost. If the original join heights are relevant, call plot on the original object directly without coercing it to a dendrogram object first. If called for an or object, aggExCluster is called first to create a cluster hierarchy. Again this is only possible if the pairwise similarities are included in the sim slot of object.

If object is an object obtained by clustering an entire data set, as.dendrogram produces a complete dendrogram. If object is an (or ) object or an obtained by previously running aggExCluster on an or object, then as.dendrogram produces a complete dendrogram of all samples, too, but with the difference that entire clusters of the previous or object are not further split up hierarchically. Consequently, if x is not a complete cluster hierarchy, but a hierarchy of clusters, as.dendrogram(as.hclust(x)) produces a dendrogram of clusters, whereas as.dendrogram(x) in any case produces a dendrogram of samples (with the special property mentioned above).

References

http://www.bioinf.jku.at/software/apcluster

Bodenhofer, U., Kothmeier, A., and Hochreiter, S. (2011) APCluster: an R package for affinity propagation clustering. Bioinformatics 27, 2463-2464. DOI: 10.1093/bioinformatics/btr406.

See Also

, , , heatmap-methods, apcluster, apclusterL, aggExCluster, cutree-methods

Examples

Run this code
## create two Gaussian clouds
cl1 <- cbind(rnorm(20,0.2,0.05),rnorm(20,0.8,0.06))
cl2 <- cbind(rnorm(20,0.7,0.08),rnorm(20,0.3,0.05))
x <- rbind(cl1,cl2)

## run affinity propagation
apres <- apcluster(negDistMat(r=2), x, q=0.7, details=TRUE)

## perform agglomerative clustering of affinity propagation clusters
aggres1 <- aggExCluster(x=apres)

## compute and plot dendrogram
dend1 <- as.dendrogram(aggres1)
dend1
plot(dend1)

## compute and show dendrogram computed from hclust object
dend2 <- as.dendrogram(as.hclust(aggres1))
dend2
plot(dend2)

## perform agglomerative clustering of whole data set
aggres2 <- aggExCluster(negDistMat(r=2), x)

## compute and plot dendrogram
dend3 <- as.dendrogram(aggres2)
dend3
plot(dend3)

Run the code above in your browser using DataLab