Rosetta
Namespaces | Functions
KMedoids.hh File Reference

Clustering algorithm used in multistage_rosetta_scripts. More...

#include <protocols/multistage_rosetta_scripts/cluster/ClusterMetric.fwd.hh>
#include <utility/vector1.hh>

Namespaces

 protocols
 The instance of Loops contained by AbrelaxApplication should be replaced by a LoopsOP.
 
 protocols::multistage_rosetta_scripts
 
 protocols::multistage_rosetta_scripts::cluster
 

Functions

void protocols::multistage_rosetta_scripts::cluster::k_medoids_with_edge_precalculation (utility::vector1< ClusterMetricCOP > const &points, unsigned short int const num_medoids, utility::vector1< bool > &best_medoids)
 Finds "num_medoids" number of clusters from within the "points" vector. If a point becomes the center of a cluster, it's index in "medoid_positions" is set to true. False otherwise. medoid_positions.size() will equal points.size() More...
 
utility::vector1< bool > protocols::multistage_rosetta_scripts::cluster::k_medoids_with_edge_precalculation (utility::vector1< ClusterMetricCOP > const &points, unsigned short int const num_medoids)
 This overload provides you with the vector of results. It is mildly more convenient but mildly less efficient. Differences are mild all around. More...
 
bool protocols::multistage_rosetta_scripts::cluster::vector_has_n_trues (utility::vector1< bool > const &vec, int n)
 This is a simple utility for debugging. Makes sure we have the right number of medoids assigned. More...
 

Detailed Description

Clustering algorithm used in multistage_rosetta_scripts.

This algorithm is stochastic but usually pretty good at finding good clusters quickly. The methods in this file precalculate all of the possible distances between the points in an attempt to save time. In practice, this does not save any time at all (tested with SequenceMetrics of length 250) so I recommend looking at protocols/multistage_rosetta_scripts/cluster/KMedoidsOnTheFly.hh

Author
Jack Maguire