ssvSignalClustering {seqsetvis} | R Documentation

## Clustering as for a heatmap. This is used internally by `ssvSignalHeatmap` but can also be run before calling ssvSignalHeatmap for greater control and access to clustering results directly.

### Description

Clustering is via k-means by default. The number of clusters is determined by nclust. Optionally, k-means can be initialized with a data.frame provided to k_centroids. As an alternative to k-means, a membership table from `ssvMakeMembTable` can be provided to determine logical clusters.

### Usage

    ssvSignalClustering(
      bw_data,
      nclust = NULL,
      k_centroids = NULL,
      memb_table = NULL,
      row_ = "id",
      column_ = "x",
      fill_ = "y",
      facet_ = "sample",
      cluster_ = "cluster_id",
      max_rows = 500,
      max_cols = 100,
      clustering_col_min = -Inf,
      clustering_col_max = Inf,
      within_order_strategy = c("hclust", "sort")[2],
      dcast_fill = NA
    )

### Arguments

`bw_data` | a GRanges or data.table of bigwig signal. As returned from `ssvFetchBam` and `ssvFetchBigwig`
`nclust` | Number of clusters. Defaults to 6 if nclust, k_centroids, and memb_table are not set.
`k_centroids` | data.frame of centroids for k-means clusters. Incompatible with nclust or memb_table.
`memb_table` | Membership table as from `ssvMakeMembTable`. Logical groups from membership table will be clusters. Incompatible with nclust or k_centroids.
`row_` | variable name mapped to row, likely id or gene name for ngs data. Default is "id" and works with ssvFetch* output.
`column_` | varaible mapped to column, likely bp position for ngs data. Default is "x" and works with ssvFetch* output.
`fill_` | numeric variable to map to fill. Default is "y" and works with ssvFetch* output.
`facet_` | variable name to facet horizontally by. Default is "sample" and works with ssvFetch* output. Set to "" if data is not facetted.
`cluster_` | variable name to use for cluster info. Default is "cluster_id".
`max_rows` | for speed rows are sampled to 500 by default, use Inf to plot full data
`max_cols` | for speed columns are sampled to 100 by default, use Inf to plot full data
`clustering_col_min` | numeric minimum for col range considered when clustering, default in -Inf
`clustering_col_max` | numeric maximum for col range considered when clustering, default in Inf
`within_order_strategy` | one of "hclust" or "sort". if hclust, hierarchical clustering will be used. if sort, a simple decreasing sort of rosSums.
`dcast_fill` | value to supply to dcast fill argument. default is NA.

### Details

Within each cluster, items will either be sorted by decreasing average signal or hierachically clustered; this is controlled via within_order_strategy.

### Value

data.table of signal profiles, ready for ssvSignalHeatmap

### Examples

    clust_dt = ssvSignalClustering(CTCF_in_10a_profiles_gr)
    ssvSignalHeatmap(clust_dt)

    clust_dt2 = ssvSignalClustering(CTCF_in_10a_profiles_gr, nclust = 2)
    ssvSignalHeatmap(clust_dt2)

    #clustering can be targetted to a specific part of the region
    clust_dt3 = ssvSignalClustering(CTCF_in_10a_profiles_gr, nclust = 2,
        clustering_col_min = -250, clustering_col_max = -150)
    ssvSignalHeatmap(clust_dt3)
    clust_dt4 = ssvSignalClustering(CTCF_in_10a_profiles_gr, nclust = 2,
        clustering_col_min = 150, clustering_col_max = 250)
    ssvSignalHeatmap(clust_dt4)

[Package seqsetvis version 1.12.0 Index]