Merge Clusters

mergeClusters()

Merge selected clusters based on pairwise correlation scores and size of cluster.

mergeClusters(
    gobject,
    expression_values = c("normalized", "scaled", "custom"),
    cluster_column,
    cor = c("pearson", "spearman"),
    new_cluster_name = "merged_cluster",
    min_cor_score = 0.8,
    max_group_size = 20,
    force_min_group_size = 10,
    max_sim_clusters = 10,
    return_gobject = TRUE,
    verbose = TRUE
)

Arguments

gobject

giotto object

expression_values

expression values to use

cluster_column

name of column to use for clusters

cor

correlation score to calculate distance

new_cluster_name

new name for merged clusters

min_cor_score

min correlation score to merge pairwise clusters

max_group_size

max cluster size that can be merged

force_min_group_size

size of clusters that will be merged with their most similar neighbor(s)

max_sim_clusters

maximum number of clusters to potentially merge to reach force_min_group_size

return_gobject

return giotto object

verbose

be verbose

Value

Giotto object

Details

Merge selected clusters based on pairwise correlation scores and size of the cluster. To avoid the merging of large clusters, the max_group_size can be lowered. Small clusters can be forcibly merged with their most similar pairwise cluster by adjusting the force_min_group_size parameter. Clusters which are smaller than this value will be merged independent on the provided min_cor_score value. The force_min_group_size might not always be reached if clusters have already been merged before.

A Giotto object is returned by default, if FALSE then the merging vector will be returned.

Examples

data("mini_giotto_single_cell")

pDataDT(mini_giotto_single_cell)
#>      cell_ID nr_genes perc_genes total_expr leiden_clus cell_types
#>  1:   cell_2       13         65  111.98320           3     cell C
#>  2:   cell_7       15         75  115.73030           3     cell C
#>  3:  cell_12       11         55   95.49802           1     cell A
#>  4:  cell_15       12         60   99.94782           3     cell C
#>  5:  cell_17       13         65  111.32963           2     cell B
#>  6:  cell_30       11         55   96.64302           3     cell C
#>  7:  cell_37        6         30   57.77777           2     cell B
#>  8:  cell_40        9         45   82.84693           2     cell B
#>  9:  cell_44        9         45   79.93838           2     cell B
#> 10:  cell_53        9         45   82.40747           1     cell A
#> 11:  cell_64        8         40   73.06345           1     cell A
#> 12:  cell_74       11         55   93.04295           3     cell C
#> 13:  cell_85        8         40   73.72574           1     cell A
#> 14:  cell_86       14         70  115.75186           1     cell A
#> 15:  cell_90       11         55   93.02181           1     cell A
#> 16:  cell_95        6         30   59.55714           1     cell A
#> 17:  cell_96       10         50   88.31757           1     cell A
#> 18: cell_107       16         80  130.62640           1     cell A
#> 19: cell_113       12         60   99.83100           2     cell B
#> 20: cell_118       14         70  117.63523           2     cell B

mini_giotto_single_cell = mergeClusters(mini_giotto_single_cell,
                cluster_column = 'leiden_clus',
                min_cor_score = 0.7,
                force_min_group_size = 4)
pDataDT(mini_giotto_single_cell)
#>      cell_ID nr_genes perc_genes total_expr leiden_clus cell_types
#>  1:   cell_2       13         65  111.98320           3     cell C
#>  2:   cell_7       15         75  115.73030           3     cell C
#>  3:  cell_12       11         55   95.49802           1     cell A
#>  4:  cell_15       12         60   99.94782           3     cell C
#>  5:  cell_17       13         65  111.32963           2     cell B
#>  6:  cell_30       11         55   96.64302           3     cell C
#>  7:  cell_37        6         30   57.77777           2     cell B
#>  8:  cell_40        9         45   82.84693           2     cell B
#>  9:  cell_44        9         45   79.93838           2     cell B
#> 10:  cell_53        9         45   82.40747           1     cell A
#> 11:  cell_64        8         40   73.06345           1     cell A
#> 12:  cell_74       11         55   93.04295           3     cell C
#> 13:  cell_85        8         40   73.72574           1     cell A
#> 14:  cell_86       14         70  115.75186           1     cell A
#> 15:  cell_90       11         55   93.02181           1     cell A
#> 16:  cell_95        6         30   59.55714           1     cell A
#> 17:  cell_96       10         50   88.31757           1     cell A
#> 18: cell_107       16         80  130.62640           1     cell A
#> 19: cell_113       12         60   99.83100           2     cell B
#> 20: cell_118       14         70  117.63523           2     cell B
#>     merged_cluster
#>  1:            m_1
#>  2:            m_1
#>  3:            m_1
#>  4:            m_1
#>  5:              2
#>  6:            m_1
#>  7:              2
#>  8:              2
#>  9:              2
#> 10:            m_1
#> 11:            m_1
#> 12:            m_1
#> 13:            m_1
#> 14:            m_1
#> 15:            m_1
#> 16:            m_1
#> 17:            m_1
#> 18:            m_1
#> 19:              2
#> 20:              2

plotUMAP_2D(mini_giotto_single_cell, cell_color = 'merged_cluster', point_size = 3)
mergeClusters mergeClusters