
“Specifying an appropriate dissimilarity measure is far more important in obtaining success with clustering than choice of clustering algorithm. This aspect of the problem is emphasized less in the clustering literature than the algorithms themselves, since it depends on domain specific knowledge specifics and is less amenable to general research.”
-Hastie, Tibshirani and Friedman, The Elements of Statistical Learning, 2nd ed., p. 506
PreciseDist takes that seriously. Every unsupervised analysis begins by turning observations into relationships, and that step usually happens behind a default argument. Once it has happened, everything downstream inherits it. A clustering algorithm does not recover the truth from your data. It acts on the structure it was handed.
So do not assume your metric. Build many, see how much they agree, keep the ones you have a reason to trust, combine them, project the result to a graph, and look at the structure before you believe it.
Two packages share this website because they are one workflow.
- PreciseDist computes. It builds many relatedness matrices from one data set, converts between distance and similarity only when the conversion is defensible, summarizes and compares the matrices, combines them into a consensus, and projects that consensus into a graph.
- PreciseViz displays. It renders heatmaps, embeddings, graph layouts, and agreement panels, browses many panels at once, and exports graphs for external tools.
They are installed and checked independently. Neither imports the other. They meet at an ordinary R object: a data frame with a matrix list-column and a type column saying what each matrix is.
Installation
Both packages require R >= 4.1.0. They are not yet on CRAN, so install the development versions from the same repository:
# install.packages("devtools")
devtools::install_github("bmuchmore/PreciseDist")
devtools::install_github("bmuchmore/PreciseDist", subdir = "PreciseViz")Where to begin
A Note about the Vignettes explains what each guide covers. The Example Workflow runs the whole thing end to end on the bundled cell-cycle data, and the PreciseDist reference and PreciseViz reference document every function.