IMP  2.4.0
The Integrative Modeling Platform
statistics/kmeans.py

Clustering is very simple. The example generates some random points in clusters and extracts the clusters. To cluster density, configurations or particles, replace the IMP.statistics.Vector3DEmbedding with a IMP.statistics.Vector3DEmbedding with a IMP::statistics::HighDensityEmbedding, IMP::statistics::ConfigurationSetXYZEmbedding or a IMP::statistics::ParticleEmbedding.

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))