IMP  2.0.1
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-2013 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 #include <IMP/internal/OwnerPointer.h>
22 
23 IMPSTATISTICS_BEGIN_NAMESPACE
24 
25 
26 /** Cluster by repeatedly removing edges which have lots
27  of shortest paths passing through them. The process is
28  terminated when there are a set number of
29  connected components. Other termination criteria
30  can be added if someone proposes them.
31 
32  Only items closer than far are connected.
33  */
34 IMPSTATISTICSEXPORT
35 PartitionalClustering *create_centrality_clustering(Metric *d,
36  double far,
37  int k);
38 
39 
40 /** Cluster the elements into clusters with at most the specified
41  diameter.
42  */
43 IMPSTATISTICSEXPORT
44 PartitionalClustering *create_diameter_clustering(Metric *d,
45  double maximum_diameter);
46 
47 /**Two points, \f$p_i\f$, \f$p_j\f$ are in the same cluster if
48  there is a sequence of points \f$\left(p^{ij}_{0}\dots p^{ij}_k\right)\f$
49  such that \f$\forall l ||p^{ij}_l-p^{ij}_{l+1}|| < d\f$.
50  */
51 IMPSTATISTICSEXPORT PartitionalClustering*
52 create_connectivity_clustering(Metric *metric,
53  double dist);
54 
55 IMPSTATISTICS_END_NAMESPACE
56 
57 #endif /* IMPSTATISTICS_METRIC_CLUSTERING_H */