IMP logo
IMP Reference Guide  develop.7cb8855c60,2024/10/04
The Integrative Modeling Platform
metric_clustering.h
Go to the documentation of this file.
1 /**
2  * \file IMP/statistics/metric_clustering.h
3  * \brief Cluster sets of points.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPSTATISTICS_METRIC_CLUSTERING_H
10 #define IMPSTATISTICS_METRIC_CLUSTERING_H
11 
12 #include <IMP/statistics/statistics_config.h>
13 #include "PartitionalClustering.h"
14 #include "Metric.h"
15 #include "point_clustering.h"
16 #include <IMP/algebra/VectorD.h>
17 #include <IMP/macros.h>
18 #include <IMP/Object.h>
19 #include <IMP/ConfigurationSet.h>
20 #include <IMP/SingletonContainer.h>
21 
22 IMPSTATISTICS_BEGIN_NAMESPACE
23 
24 /** Cluster by repeatedly removing edges which have lots
25  of shortest paths passing through them. The process is
26  terminated when there are a set number of
27  connected components. Other termination criteria
28  can be added if someone proposes them.
29 
30  Only items closer than far are connected.
31  */
32 IMPSTATISTICSEXPORT PartitionalClustering *create_centrality_clustering(
33  Metric *d, double far, int k);
34 
35 /** Cluster the elements into clusters with at most the specified
36  diameter.
37  */
38 IMPSTATISTICSEXPORT PartitionalClustering *create_diameter_clustering(
39  Metric *d, double maximum_diameter);
40 
41 /**Two points, \f$p_i\f$, \f$p_j\f$ are in the same cluster if
42  there is a sequence of points \f$\left(p^{ij}_{0}\dots p^{ij}_k\right)\f$
43  such that \f$\forall l ||p^{ij}_l-p^{ij}_{l+1}|| < d\f$.
44  */
45 IMPSTATISTICSEXPORT PartitionalClustering *create_connectivity_clustering(
46  Metric *metric, double dist);
47 
48 /** Cutoff-based clustering as defined in
49  Daura et al. Angew. Chem. Int. Ed. 1999. 38(1‐2): p. 236-240.
50  */
51 IMPSTATISTICSEXPORT PartitionalClustering *create_gromos_clustering(
52  Metric *d, double cutoff);
53 
54 IMPSTATISTICS_END_NAMESPACE
55 
56 #endif /* IMPSTATISTICS_METRIC_CLUSTERING_H */
A container for Singletons.
Various general useful macros for IMP.
PartitionalClustering * create_gromos_clustering(Metric *d, double cutoff)
Compute a distance metric between two points.
PartitionalClustering * create_diameter_clustering(Metric *d, double maximum_diameter)
PartitionalClustering * create_connectivity_clustering(Metric *metric, double dist)
Simple D vector class.
Cluster sets of points.
A shared base class to help in debugging and things.
Store a set of configurations of the model.
Cluster sets of points.
PartitionalClustering * create_centrality_clustering(Metric *d, double far, int k)