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
clusteringKmeansNestedHclust( mat, nclust, within_order_strategy = c("hclust", "sort")[2], centroids = NULL, manual_mapping = NULL )
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. |
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
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)]