IMP  2.0.1
The Integrative Modeling Platform
IMP::multifit::RMSDClustering< TransT > Class Template Reference

RMSD clustering. More...

#include <IMP/multifit/RMSDClustering.h>

Public Types

typedef boost::property
< boost::edge_weight_t, short > 
ClusEdgeWeightProperty
 
typedef boost::property
< boost::vertex_index_t, int > 
ClusVertexIndexProperty
 
typedef boost::adjacency_list
< boost::vecS, boost::vecS,
boost::undirectedS,
ClusVertexIndexProperty,
ClusEdgeWeightProperty > 
Graph
 
typedef GeometricHash< int, 3 > Hash3
 
typedef RCGTraits::edge_descriptor RCEdge
 
typedef RCGTraits::edge_iterator RCEdgeIt
 
typedef boost::graph_traits
< Graph > 
RCGTraits
 
typedef
RCGTraits::vertex_descriptor 
RCVertex
 
typedef RCGTraits::vertex_iterator RCVertexIt
 

Public Member Functions

 RMSDClustering (float bin_size=3.)
 
void cluster (float max_dist, const std::vector< TransT > &input_trans, std::vector< TransT > &output_trans)
 cluster transformations
 
void prepare (const ParticlesTemp &ps)
 prepare for clustering
 
void set_bin_size (float bin_size)
 

Protected Member Functions

void build_full_graph (const Hash3 &h, const std::vector< TransformationRecord * > &recs, float max_dist, Graph &g)
 
void build_graph (const Hash3::PointList &inds, const std::vector< TransformationRecord * > &recs, float max_dist, Graph &g)
 
virtual void clean (std::vector< TransformationRecord * > *&records)
 Remove transformations which are not valid.
 
int cluster_graph (Graph &g, const std::vector< TransformationRecord * > &recs, float max_dist)
 
virtual int exhaustive_clustering (float max_dist, std::vector< TransformationRecord * > &recs)
 
int fast_clustering (float max_dist, std::vector< TransformationRecord * > &recs)
 
virtual float get_squared_distance (const TransT &trans1, const TransT &trans2)
 

Protected Attributes

float bin_size_
 
algebra::Vector3D centroid_
 
bool is_fast_
 
bool is_ready_
 
Particles ps_
 
atom::RMSDCalculator rmsd_calc_
 
core::XYZs xyzs_
 

Detailed Description

template<class TransT>
class IMP::multifit::RMSDClustering< TransT >

/note Iteratively joins pairs of close transformations. The algorithm first clusters transformations for which the transformed centroids are close (fall into the same bin in a hash). Then, all clusters are globally reclustered. /note TransT should implement the functions: join_into() add a transformation to the current cluster and possibly updates the representative transformation for the cluster get_score() that returns the score (higher score is better) update_score() that updates the score of the cluster according to a new member get_representative_transformation() a function that returns the the representative transformation for a cluster

Definition at line 40 of file RMSDClustering.h.

Constructor & Destructor Documentation

template<class TransT >
IMP::multifit::RMSDClustering< TransT >::RMSDClustering ( float  bin_size = 3.)
Parameters
[in]bin_sizethe radius of the bins of the hash differ with at most this value

Definition at line 92 of file RMSDClustering.h.

Member Function Documentation

template<class TransT >
float IMP::multifit::RMSDClustering< TransT >::get_squared_distance ( const TransT &  trans1,
const TransT &  trans2 
)
protectedvirtual

returns the RMSD between two transformations with respect to the stored points

Definition at line 139 of file RMSDClustering.h.


The documentation for this class was generated from the following file: