similarity_reorderbyclass | R Documentation |
to avoid spurious visualization problems, it is useful in a heatmap visualization to reorder the samples within each sample class. This function uses hierarchical clustering and dendsort to sort entries in a distance matrix.
similarity_reorderbyclass(
similarity_matrix,
sample_classes = NULL,
transform = "none",
hclust_method = "complete",
dendsort_type = "min"
)
similarity_matrix |
matrix of similarities between objects |
sample_classes |
data.frame or factor denoting classes |
transform |
a transformation to apply to the data |
hclust_method |
which method for clustering should be used |
dendsort_type |
how should dendsort do reordering? |
The similarity_matrix
should be either a square matrix of similarity values
or a distance matrix of class dist
. If your matrix does not encode a "true"
distance, you can use a transform
to turn it into a true distance
(for example, if you have correlation, then a distance would be 1 - correlation,
use "sub_1" as the transform argument).
The sample_classes
should be either a data.frame or factor argument. If
a data.frame is passed, all columns of the data.frame will be pasted together
to create a factor for splitting the data into groups. If the rownames of the
data.frame do not correspond to the rownames or colnames of the matrix, then
it is assumed that the ordering in the matrix and the data.frame are identical.
a list containing the reordering of the matrix in a:
dendrogram
numeric vector
character vector (will be NULL if rownames are not set on the matrix)
library(visualizationQualityControl)
set.seed(1234)
mat <- matrix(rnorm(100, 2, sd = 0.5), 10, 10)
rownames(mat) <- colnames(mat) <- letters[1:10]
neworder <- similarity_reorderbyclass(mat)
mat[neworder$indices, neworder$indices]
sample_class <- data.frame(grp = rep(c("grp1", "grp2"), each = 5), stringsAsFactors = FALSE)
rownames(sample_class) <- rownames(mat)
neworder2 <- similarity_reorderbyclass(mat, sample_class[, "grp", drop = FALSE])
# if there is a class with only one member, it is dropped, with a warning
sample_class[10, "grp"] = "grp3"
neworder3 <- similarity_reorderbyclass(mat, sample_class[, "grp", drop = FALSE])
neworder3$indices # 10 should be missing
mat[neworder2$indices, neworder2$indices]
cbind(neworder$names, neworder2$names)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.