IMP  2.2.0
The Integrative Modeling Platform
kmeans.py
1 ## \example statistics/kmeans.py
2 # Clustering is very simple. The example generates some random points in
3 # clusters and extracts the clusters. To cluster density, configurations
4 # or particles, replace the IMP.statistics.Vector3DEmbedding with a
5 # IMP.statistics.Vector3DEmbedding with a
6 # IMP::statistics::HighDensityEmbedding,
7 # IMP::statistics::ConfigurationSetXYZEmbedding or a
8 # IMP::statistics::ParticleEmbedding.
9 
10 import IMP.algebra
11 import IMP.statistics
12 
13 # generate some clusters of points
14 vs = []
15 centers = (IMP.algebra.Vector3D(0, 0, 0),
16  IMP.algebra.Vector3D(10, 15, 20),
17  IMP.algebra.Vector3D(60, 30, 12))
18 for i in range(0, 3):
19  for j in range(0, 100):
21  IMP.algebra.Sphere3D(centers[i], 10)))
22 
23 # cluster them into 3 clusters
26  3, 1000)
27 
28 # print out the cluster results
29 print c.get_cluster_center(0)
30 print c.get_cluster_center(1)
31 print c.get_cluster_center(2)
PartitionalClusteringWithCenter * create_lloyds_kmeans(Embedding *embedding, unsigned int k, unsigned int iterations)
Vector3D get_random_vector_in(const Cylinder3D &c)
Generate a random vector in a cylinder with uniform density.
See IMP.statistics for more information.
See IMP.algebra for more information.
VectorD< 3 > Vector3D
Definition: VectorD.h:395
Simply return the coordinates of a VectorD.
Definition: embeddings.h:79