File: coerce-methods.Rd

package info (click to toggle)
r-cran-apcluster 1.4.13-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,744 kB
  • sloc: cpp: 1,258; ansic: 346; makefile: 2
file content (136 lines) | stat: -rw-r--r-- 5,768 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
\name{coerce-methods}
\docType{methods}
\alias{as.hclust}
\alias{as.dendrogram}
\alias{as.hclust,AggExResult-method}
\alias{as.hclust,ExClust-method}
\alias{as.dendrogram,AggExResult-method}
\alias{as.dendrogram,ExClust-method}
\title{Coercion of cluster hierarchies}
\description{
  Functions for coercing clustering object to hclust and dendrogram objects
}
\usage{
\S4method{as.hclust}{AggExResult}(x, base=0.05)
\S4method{as.hclust}{ExClust}(x, base=0.05, ...)
\S4method{as.dendrogram}{AggExResult}(object, base=0.05, useNames=TRUE)
\S4method{as.dendrogram}{ExClust}(object, base=0.05, useNames=TRUE, ...)
}
\arguments{
  \item{x}{a clustering result object of class
     \code{\linkS4class{APResult}}, \code{\linkS4class{ExClust}},
     or \code{\linkS4class{AggExResult}}}
  \item{object}{a clustering result object of class
     \code{\linkS4class{APResult}}, \code{\linkS4class{ExClust}},
     or \code{\linkS4class{AggExResult}}}
  \item{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).}
  \item{useNames}{if \code{TRUE} (default), the labels of the dendrogram
    are the sample/cluster names (if available); otherwise, the labels
    are indices.}
  \item{...}{all other arguments are passed on to
    \code{\link{aggExCluster}} (see details below).}
}
\details{
  If called for an \code{\linkS4class{AggExResult}} object,
  \code{as.hclust} creates an \code{\link[stats:hclust]{hclust}} object.
  The heights are transformed to the interval from \code{base} (height
  of lowest join) to 1 (height of highest join).
  If called for an \code{\linkS4class{ExClust}} or
  \code{\linkS4class{APResult}} object, \code{\link{aggExCluster}} is
  called internally to create a cluster hierarchy first. This is only
  possible if the pairwise similarities are included in the \code{sim}
  slot of \code{x} (see \code{\link{aggExCluster}} on how to ensure
  this).

  If \code{x} is an \code{\linkS4class{AggExResult}} object obtained by
  clustering an entire data set, \code{as.hclust} produces a complete
  hierarchy. If, however, \code{x} is an \code{\linkS4class{ExClust}} (or
  \code{\linkS4class{APResult}}) object or an
  \code{\linkS4class{AggExResult}} obtained by running
  \code{\link{aggExCluster}} on an \code{\linkS4class{ExClust}} or
  \code{\linkS4class{APResult}} object, then \code{as.hclust} produces
  a hierarchy of clusters, not of samples.

  If called for an \code{\linkS4class{AggExResult}} object,
  \code{as.dendrogram} creates an
  \code{\link[stats:dendrogram]{dendrogram}} object.
  Analogously to \code{as.hclust}, the heights are transformed to the
  interval ranging from \code{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 \code{\link[apcluster:plot]{plot}} on the original
  \code{\linkS4class{AggExResult}} object directly without coercing it
  to a \code{\link[stats:dendrogram]{dendrogram}} object first.
  If called for an \code{\linkS4class{ExClust}} or
  \code{\linkS4class{APResult}} object, \code{\link{aggExCluster}} is
  called first to create a cluster hierarchy. Again this is only
  possible if the pairwise similarities are included in the \code{sim}
  slot of \code{object}.

  If \code{object} is an \code{\linkS4class{AggExResult}} object obtained by
  clustering an entire data set, \code{as.dendrogram} produces a complete
  dendrogram. If \code{object} is an \code{\linkS4class{ExClust}} (or
  \code{\linkS4class{APResult}}) object or an
  \code{\linkS4class{AggExResult}} obtained by previously running
  \code{\link{aggExCluster}} on an \code{\linkS4class{ExClust}} or
  \code{\linkS4class{APResult}} object, then \code{as.dendrogram} produces
  a complete dendrogram of all samples, too, but with the difference
  that entire clusters of the previous \code{\linkS4class{ExClust}} or
  \code{\linkS4class{APResult}} object are not further split up
  hierarchically.
  Consequently, if \code{x} is not a complete cluster hierarchy, but a
  hierarchy of clusters, \code{as.dendrogram(as.hclust(x))} produces a
  dendrogram of clusters, whereas \code{as.dendrogram(x)} in any case
  produces a dendrogram of samples (with the special property mentioned
  above).
}
\value{
  see details above
}
\author{Ulrich Bodenhofer, Andreas Kothmeier, and Johannes Palme}
\references{\url{https://github.com/UBod/apcluster}

Bodenhofer, U., Kothmeier, A., and Hochreiter, S. (2011)
APCluster: an R package for affinity propagation clustering.
\emph{Bioinformatics} \bold{27}, 2463-2464.
DOI: \doi{10.1093/bioinformatics/btr406}.
}
\seealso{\code{\linkS4class{APResult}},
  \code{\linkS4class{AggExResult}}, \code{\linkS4class{ExClust}},
  \code{\link{heatmap-methods}}, \code{\link{apcluster}}, 
  \code{\link{apclusterL}}, \code{\link{aggExCluster}}, 
  \code{\link{cutree-methods}}}
\examples{
## 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)
}
\keyword{cluster}
\keyword{methods}