IMP logo
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
IMP::multifit::RMSDClustering< TransT > Class Template Reference

Detailed Description

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

RMSD clustering.

/note Iteratively joins pairs of close transformatins. 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

List of all members.

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_

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

Member Function Documentation

template<class TransT >
void IMP::multifit::RMSDClustering< TransT >::clean ( std::vector< TransformationRecord * > *&  records)
protectedvirtual

Remove transformations which are not valid.

template<class TransT >
void IMP::multifit::RMSDClustering< TransT >::cluster ( float  max_dist,
const std::vector< TransT > &  input_trans,
std::vector< TransT > &  output_trans 
)

cluster transformations

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

template<class TransT >
void IMP::multifit::RMSDClustering< TransT >::prepare ( const ParticlesTemp ps)

prepare for clustering


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

Generated on Tue May 22 2012 23:33:37 for IMP by doxygen 1.8.1