clusteringKmeansNestedHclust {seqsetvis}R Documentation

perform kmeans clustering on matrix rows and return reordered matrix along with order matched cluster assignments clusters are sorted using hclust on centers the contents of each cluster are sorted using hclust

Description

perform kmeans clustering on matrix rows and return reordered matrix along with order matched cluster assignments clusters are sorted using hclust on centers the contents of each cluster are sorted using hclust

Usage

clusteringKmeansNestedHclust(
  mat,
  nclust,
  within_order_strategy = c("hclust", "sort")[2],
  centroids = NULL,
  manual_mapping = NULL
)

Arguments

mat

A wide format matrix

nclust

the number of clusters

within_order_strategy

one of "hclust" or "sort". if hclust, hierarchical clustering will be used. if sort, a simple decreasing sort of rosSums.

centroids

optional matrix with same columns as mat and one centroid per row to base clusters off of. Overrides any setting to nclust. Default of NULL results in randomly initialized k-means.

manual_mapping

optional named vector manually specififying cluster assignments. names should be item ids and values should be cluster names the items are assigned to. Default of NULL allows clustering to proceed.

Value

data.table with 2 columns of cluster info. id column corresponds with input matrix rownames and is sorted within each cluster using hierarchical clusering group column indicates cluster assignment

Examples

dt = data.table::copy(CTCF_in_10a_profiles_dt)
mat = data.table::dcast(dt, id ~ sample + x, value.var = "y" )
rn = mat$id
mat = as.matrix(mat[,-1])
rownames(mat) = rn
clust_dt = clusteringKmeansNestedHclust(mat, nclust = 3)
dt = merge(dt, clust_dt)
dt$id = factor(dt$id, levels = clust_dt$id)
dt[order(id)]

[Package seqsetvis version 1.12.0 Index]