Learn R Programming

apcluster (version 1.4.7)

conversions: Conversions Between Dense and Sparse Similarity Matrices

Description

Converts a dense similarity matrix into a sparse one or vice versa

Usage

# S4 method for matrix
as.SparseSimilarityMatrix(s, lower=-Inf)
# S4 method for Matrix
as.SparseSimilarityMatrix(s, lower=-Inf)
# S4 method for sparseMatrix
as.SparseSimilarityMatrix(s, lower=-Inf)
# S4 method for matrix
as.DenseSimilarityMatrix(s, fill=-Inf)
# S4 method for Matrix
as.DenseSimilarityMatrix(s, fill=-Inf)
# S4 method for sparseMatrix
as.DenseSimilarityMatrix(s, fill=-Inf)

Arguments

s

a similarity matrix in sparse or dense format (see details below)

lower

cut-off threshold to apply when converting similarity matrices into sparse format. All similarities lower than or equal to lower will be omitted from the result. The default is -Inf), i.e. only -Inf values are removed.

fill

value to fill in for entries that are missing from sparse similarity matrix 's' (defaults to -Inf).

Value

returns a square similarity matrix in sparse format (class '>dgTMatrix or in dense format (standard class matrix).

Details

The function as.SparseSimilarityMatrix takes a matrix argument, removes all diagonal elements and all values that are lower than or equal to the cut-off threshold lower and returns a sparse matrix of class '>dgTMatrix.

If the function as.DenseSimilarityMatrix is called for a sparse matrix (class '>sparseMatrix or any class derived from this class), a dense matrix is returned, where all values that were missing in the sparse matrix are replaced with fill.

as.DenseSimilarityMatrix can also be called for dense matrix and '>Matrix objects. In this case, as.DenseSimilarityMatrix assumes that the matrices have three columns that encode for a sparse matrix in the same way as the Matlab implementation of Frey's and Dueck's sparse affinity propagation accepts it: the first column contains 1-based row indices, the second column contains 1-based column indices, and the third column contains the similarity values. The same format is also accepted by as.SparseSimilarityMatrix to convert a sparse similarity matrix of this format into a '>dgTMatrix object. Note that, for matrices of this format, as.DenseSimilarityMatrix replaces the deprectated function sparseToFull (see apcluster-deprecated).

Note that as.SparseSimilarityMatrix and as.DenseSimilarityMatrix are no S4 coercion methods. There are no classes named SparseSimilarityMatrix or DenseSimilarityMatrix.

References

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

Frey, B. J. and Dueck, D. (2007) Clustering by passing messages between data points. Science 315, 972-976. DOI: 10.1126/science.1136800.

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.

Examples

Run this code
# NOT RUN {
## create similarity matrix in sparse format according to Frey and Dueck
sp <- matrix(c(1, 2, 0.5, 3, 1, 0.2, 5, 4, -0.2, 3, 4, 1.2), 4, 3, byrow=TRUE)
sp

## perform conversions
as.DenseSimilarityMatrix(sp, fill=0)
as.SparseSimilarityMatrix(sp)

## create dense similarity matrix
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)

sim <- negDistMat(x, r=2)
ssim <- as.SparseSimilarityMatrix(sim, lower=-0.2)

## run apcluster() on the sparse similarity matrix
apres <- apcluster(ssim, q=0)
apres
# }

Run the code above in your browser using DataLab