Learn R Programming

apcluster (version 1.4.8)

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 '>APResult, '>ExClust, or '>AggExResult

object

a clustering result object of class '>APResult, '>ExClust, or '>AggExResult

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 '>AggExResult 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 '>ExClust or '>APResult 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 '>AggExResult object obtained by clustering an entire data set, as.hclust produces a complete hierarchy. If, however, x is an '>ExClust (or '>APResult) object or an '>AggExResult obtained by running aggExCluster on an '>ExClust or '>APResult object, then as.hclust produces a hierarchy of clusters, not of samples.

If called for an '>AggExResult 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 '>AggExResult object directly without coercing it to a dendrogram object first. If called for an '>ExClust or '>APResult 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 '>AggExResult object obtained by clustering an entire data set, as.dendrogram produces a complete dendrogram. If object is an '>ExClust (or '>APResult) object or an '>AggExResult obtained by previously running aggExCluster on an '>ExClust or '>APResult object, then as.dendrogram produces a complete dendrogram of all samples, too, but with the difference that entire clusters of the previous '>ExClust or '>APResult 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

'>APResult, '>AggExResult, '>ExClust, heatmap-methods, apcluster, apclusterL, aggExCluster, cutree-methods

Examples

Run this code
# NOT RUN {
## 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