The goal of concordexR is to replace UMAP as a clustering diagnostic.
This package can be installed from Bioconductor since version 3.17 with
BiocManager::install("concordexR")
This is a basic example which shows you how to solve a common problem:
library(concordexR)
library(BiocNeighbors)
g <- findKNN(iris[, seq_len(4)], k = 10)
#> Warning in (function (to_check, X, clust_centers, clust_info, dtype, nn, :
#> detected tied distances to neighbors, see ?'BiocNeighbors-ties'
res <- calculateConcordex(g$index, labels = iris$Species, k = 10, return.map = TRUE)
plotConcordexSim(res)
heatConcordex(res)
sessionInfo()
#> R version 4.4.0 beta (2024-04-15 r86425)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 22.04.4 LTS
#>
#> Matrix products: default
#> BLAS: /home/biocbuild/bbs-3.19-bioc/R/lib/libRblas.so
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: America/New_York
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] patchwork_1.2.0 scater_1.32.0
#> [3] ggplot2_3.5.1 scuttle_1.14.0
#> [5] bluster_1.14.0 BiocNeighbors_1.22.0
#> [7] TENxPBMCData_1.21.0 HDF5Array_1.32.0
#> [9] rhdf5_2.48.0 DelayedArray_0.30.0
#> [11] SparseArray_1.4.0 S4Arrays_1.4.0
#> [13] abind_1.4-5 Matrix_1.7-0
#> [15] SingleCellExperiment_1.26.0 SummarizedExperiment_1.34.0
#> [17] Biobase_2.64.0 GenomicRanges_1.56.0
#> [19] GenomeInfoDb_1.40.0 IRanges_2.38.0
#> [21] S4Vectors_0.42.0 BiocGenerics_0.50.0
#> [23] MatrixGenerics_1.16.0 matrixStats_1.3.0
#> [25] concordexR_1.4.0 BiocStyle_2.32.0
#>
#> loaded via a namespace (and not attached):
#> [1] DBI_1.2.2 gridExtra_2.3
#> [3] rlang_1.1.3 magrittr_2.0.3
#> [5] compiler_4.4.0 RSQLite_2.3.6
#> [7] DelayedMatrixStats_1.26.0 png_0.1-8
#> [9] vctrs_0.6.5 pkgconfig_2.0.3
#> [11] crayon_1.5.2 fastmap_1.1.1
#> [13] magick_2.8.3 dbplyr_2.5.0
#> [15] XVector_0.44.0 labeling_0.4.3
#> [17] utf8_1.2.4 rmarkdown_2.26
#> [19] ggbeeswarm_0.7.2 UCSC.utils_1.0.0
#> [21] tinytex_0.50 purrr_1.0.2
#> [23] bit_4.0.5 xfun_0.43
#> [25] zlibbioc_1.50.0 cachem_1.0.8
#> [27] beachmat_2.20.0 jsonlite_1.8.8
#> [29] blob_1.2.4 highr_0.10
#> [31] rhdf5filters_1.16.0 Rhdf5lib_1.26.0
#> [33] BiocParallel_1.38.0 irlba_2.3.5.1
#> [35] parallel_4.4.0 cluster_2.1.6
#> [37] R6_2.5.1 bslib_0.7.0
#> [39] RColorBrewer_1.1-3 jquerylib_0.1.4
#> [41] Rcpp_1.0.12 bookdown_0.39
#> [43] knitr_1.46 FNN_1.1.4
#> [45] igraph_2.0.3 tidyselect_1.2.1
#> [47] viridis_0.6.5 yaml_2.3.8
#> [49] codetools_0.2-20 curl_5.2.1
#> [51] lattice_0.22-6 tibble_3.2.1
#> [53] withr_3.0.0 KEGGREST_1.44.0
#> [55] evaluate_0.23 isoband_0.2.7
#> [57] BiocFileCache_2.12.0 ExperimentHub_2.12.0
#> [59] Biostrings_2.72.0 pillar_1.9.0
#> [61] BiocManager_1.30.22 filelock_1.0.3
#> [63] generics_0.1.3 BiocVersion_3.19.1
#> [65] sparseMatrixStats_1.16.0 munsell_0.5.1
#> [67] scales_1.3.0 glue_1.7.0
#> [69] pheatmap_1.0.12 tools_4.4.0
#> [71] AnnotationHub_3.12.0 ScaledMatrix_1.12.0
#> [73] cowplot_1.1.3 grid_4.4.0
#> [75] AnnotationDbi_1.66.0 colorspace_2.1-0
#> [77] GenomeInfoDbData_1.2.12 beeswarm_0.4.0
#> [79] BiocSingular_1.20.0 vipor_0.4.7
#> [81] rsvd_1.0.5 cli_3.6.2
#> [83] rappdirs_0.3.3 fansi_1.0.6
#> [85] viridisLite_0.4.2 dplyr_1.1.4
#> [87] uwot_0.2.2 gtable_0.3.5
#> [89] sass_0.4.9 digest_0.6.35
#> [91] ggrepel_0.9.5 farver_2.1.1
#> [93] memoise_2.0.1 htmltools_0.5.8.1
#> [95] lifecycle_1.0.4 httr_1.4.7
#> [97] mime_0.12 MASS_7.3-60.2
#> [99] bit64_4.0.5