get_clustering_difference {ClustAssess} | R Documentation |
Graph Clustering Method Stability
Description
Evaluates the stability of different graph clustering methods in the clustering pipeline. The method will iterate through different values of the resolution parameter and compare, using the EC Consistency score, the partitions obtained at different seeds.
Usage
get_clustering_difference(
graph_adjacency_matrix,
resolution,
n_repetitions = 100,
seed_sequence = NULL,
ecs_thresh = 1,
ncores = 1,
algorithm = 1:4,
verbose = TRUE
)
Arguments
graph_adjacency_matrix |
A square adjacency matrix based on which an igraph object will be built. |
resolution |
A sequence of resolution values. |
n_repetitions |
The number of repetitions of applying the pipeline with different seeds; ignored if seed_sequence is provided by the user. |
seed_sequence |
A custom seed sequence; if the value is NULL, the sequence will be built starting from 1 with a step of 100. |
ecs_thresh |
The ECS threshold used for merging similar clusterings. |
ncores |
The number of parallel R instances that will run the code. If the value is set to 1, the code will be run sequentially. |
algorithm |
An index or a list of indexes indicating which community detection
algorithm will be used: Louvain (1), Louvain refined (2), SLM (3) or Leiden (4).
More details can be found in the Seurat's |
verbose |
Boolean value used for displaying the progress bar. |
Value
A list having two fields:
all - a list that contains, for each clustering method and each resolution value, the EC consistency between the partitions obtained by changing the seed
filtered - similar to
all
, but for each configuration, we determine the number of clusters that appears the most and use only the partitions with this size
Examples
set.seed(2021)
# create an artificial expression matrix
expr_matrix = matrix(runif(100*10), nrow = 100)
rownames(expr_matrix) = as.character(1:100)
adj_matrix = Seurat::FindNeighbors(expr_matrix,
k.param = 10,
nn.method = "rann",
verbose = FALSE,
compute.SNN = FALSE)$nn
clust_diff_obj = get_clustering_difference(graph_adjacency_matrix = adj_matrix,
resolution = c(0.5, 1),
n_repetitions = 10,
algorithm = 1:2,
verbose = FALSE)
plot_clustering_difference_boxplot(clust_diff_obj)