|
|
| bool | compute () |
| |
|
| void | setConformationSet (ConformationSet *new_set, bool precompute_atombijection=false) |
| | sets the poses to be clustered, the conformation set's reference system will the base system More...
|
| |
| void | setBaseSystemAndPoses (System const &base_system, std::vector< PosePointer > const &poses) |
| |
| void | setBaseSystemAndTransformations (System const &base_system, String transformation_file_name) |
| |
| const ConformationSet * | getConformationSet () const |
| | returns the poses to be clustered as ConformationSet More...
|
| |
| ConformationSet * | getConformationSet () |
| | returns the poses to be clustered as ConformationSet More...
|
| |
| const std::vector< RigidTransformation > & | getRigidTransformations () const |
| | returns the poses as rigid transformations More...
|
| |
| std::vector< Vector3 > & | getCentersOfMass () |
| | returns the centers of mass-vector (non-empty only for CENTER_OF_MASS_DISTANCE) More...
|
| |
| std::vector< Vector3 > const & | getCentersOfMass () const |
| | returns the centers of mass-vector, const version (non-empty only for CENTER_OF_MASS_DISTANCE) More...
|
| |
| const System & | getSystem () const |
| | returns the reference pose More...
|
| |
| System & | getSystem () |
| | returns the reference pose More...
|
| |
| Size | getNumberOfPoses () const |
| | returns the number of poses More...
|
| |
| Size | getNumberOfClusters () const |
| | returns the number of clusters found More...
|
| |
| const std::set< Index > & | getCluster (Index i) const |
| |
| std::set< Index > & | getCluster (Index i) |
| |
| Size | getClusterSize (Index i) const |
| | returns the size of cluster i More...
|
| |
| float | getClusterScore (Index i) const |
| | returns the score of cluster i More...
|
| |
| float | getScore (const System sys_a, const System sys_b, Options options) const |
| | returns the score between two poses given as systems More...
|
| |
| AtomBijection & | getAtomBijection () |
| | returns a reference to the cached AtomBijection More...
|
| |
| AtomBijection const & | getAtomBijection () const |
| | returns a const reference to the cached AtomBijection More...
|
| |
| void | applyTransformation2System (Index i, System &target_system) |
| | apply a transformation to a given system More...
|
| |
| void | convertTransformations2Snaphots () |
| | convert the poses to SnapShots More...
|
| |
| void | convertSnaphots2Transformations () |
| | convert the poses to rigid transformations More...
|
| |
| float | computeCompleteLinkageRMSD (Index i, Options options, bool initialize=true) |
| | returns the complete linkage RMSD of cluster i More...
|
| |
| boost::shared_ptr< System > | getPose (Index i) const |
| | returns the complete linkage RMSD of a pose set More...
|
| |
| std::vector< PosePointer > const & | getPoses () const |
| | returns poses as PosePointer More...
|
| |
| boost::shared_ptr< System > | getClusterRepresentative (Index i) |
| | returns the "central cluster" conformation of cluster i as system More...
|
| |
| Index | findClusterRepresentative (Index i) |
| | returns the index of the cluster representative More...
|
| |
| boost::shared_ptr< ConformationSet > | getClusterConformationSet (Index i) |
| | returns cluster i as ConformationSet More...
|
| |
| boost::shared_ptr< ConformationSet > | getReducedConformationSet () |
| | returns a ConformationSet containing one structure per cluster More...
|
| |
| bool | refineClustering (Options const &refined_options) |
| |
|
| Eigen::MatrixXd | pairwise_scores_ |
| |
| ConformationSet * | current_set_ |
| | the ConformationSet we wish to cluster More...
|
| |
| std::vector< std::set< Index > > | clusters_ |
| | the clusters: sets of pose indices More...
|
| |
| std::vector< Index > | cluster_representatives_ |
| |
| std::vector< float > | cluster_scores_ |
| | the scores of the clusters More...
|
| |
| Index | rmsd_level_of_detail_ |
| | the RMSD definition used for clustering More...
|
| |
| std::vector< PosePointer > | poses_ |
| |
| std::vector< RigidTransformation > | transformations_ |
| |
| Eigen::Matrix3f | covariance_matrix_ |
| |
| System | base_system_ |
| |
| SnapShot | base_conformation_ |
| |
| bool | has_rigid_transformations_ |
| |
| bool | delete_conformation_set_ |
| |
| std::vector< double > | lambda_ |
| |
| std::vector< int > | pi_ |
| |
| std::vector< double > | mu_ |
| |
| Size | number_of_selected_atoms_ |
| |
| std::vector< Vector3 > | com_ |
| |
| AtomBijection | atom_bijection_ |
| |
| System | system_i_ |
| |
| System | system_j_ |
| |
| ClusterTree | cluster_tree_ |
| | The tree built during hierarchical clustering. More...
|
| |
| std::vector< std::set< Index > > | extractClustersForThreshold (float threshold, Size min_size=0) |
| |
| std::vector< std::set< Index > > | extractNBestClusters (Size n) |
| |
| std::vector< std::set< Index > > | filterClusters (Size min_size=1) |
| |
| void | serializeWardClusterTree (std::ostream &out, bool binary=false) |
| |
| void | deserializeWardClusterTree (std::istream &in, bool binary=false) |
| |
| void | exportWardClusterTreeToGraphViz (std::ostream &out) |
| |
| void | exportClusterTreeToJSON (std::ostream &out) |
| |
| void | printClusters (std::ostream &out=std::cout) const |
| |
| void | printClusterScores (std::ostream &out=std::cout) |
| |
| bool | trivialCompute_ () |
| |
| bool | linearSpaceCompute_ () |
| |
| bool | althausCompute_ () |
| |
| void | slinkInner_ (int current_level) |
| |
| void | clinkInner_ (int current_level) |
| |
| bool | nearestNeighborChainCompute_ () |
| |
| void | initWardDistance_ (Index rmsd_type) |
| |
| void | updateWardDistance_ (ClusterTreeNode parent, ClusterTreeNode i, ClusterTreeNode j, Index rmsd_type) |
| |
| float | computeWardDistance_ (ClusterTreeNode i, ClusterTreeNode j, Index rmsd_type) |
| |
| std::set< Index > | collectClusterBelow_ (ClusterTreeNode const &v) |
| |
| void | computeCenterOfMasses_ () |
| |
| void | precomputeAtomBijection_ () |
| |
| float | getClusterRMSD_ (Index i, Index j, Index rmsd_type) |
| |
| bool | readTransformationsFromFile_ (String filename) |
| |
| float | getRMSD_ (Index i, Index j, Index rmsd_type) |
| |
| void | storeSnapShotReferences_ () |
| |
| void | printCluster_ (Size i, std::ostream &out=std::cout) const |
| |
| void | printVariables_ (int a, int b, double c, int d, double e, int current_level) |
| |
| void | clear_ () |
| |
| void | exportToJSONDFS_ (ClusterTreeNode const ¤t, String &result) |
| |
| static bool | isExcludedByLevelOfDetail_ (Atom const *atom, Index rmsd_level_of_detail) |
| |
Computation of clusters of docking poses.
Pose Clustering
This class computes clusters of docking poses given as a conformation set using a complete linkage algorithm.
The class assumes the following setup
- a pairwise rigid protein-protein docking
- all receptor-ligand poses have already been mapped onto each other such that the "receptors" are kept fixed
- the given pose set only contains the "ligands"
We offer several algorithms via the option CLUSTER_METHOD:
- TRIVIAL_COMPLETE_LINKAGE: a naive implementation, that guarantees an optimal final partition.
- CLINK_DEFAYS as described in D. Defays: An efficient algorithm for a complete link method. The Computer Journal. 20, 4, British Computer Society, 1977, p. 364-366. Please note that this implementation does not guarantee to find the best final clustering!
- NEAREST_NEIGHBOR_CHAIN_WARD as described in Murtagh, Fionn (1983): "A survey of recent advances in hierarchical clustering algorithms", The Computer Journal 26 (4): 354–359
Note that this algorithm computes a full clustering.
- SLINK_SIBSON as described in R. Sibson: SLINK: an optimally efficient algorithm for the single-link cluster method. The Computer Journal. 16, 1, British Computer Society, 1973, p. 30-34
The scope of the scoring (the atoms to be considered) can be defined via the option RMSD_LEVEL_OF_DETAIL. If the option is set to PROPERTY_BASED_ATOM_BIJECTION, arbitrary sets of atoms, e.g. binding pockets, can be used by assigning property named "ATOMBIJECTION_RMSD_SELECTION" to the respective atoms in the reference system. See also BALL::Expression.
The minimal rmsd or ward distance between the final clusters can be defined via option DISTANCE_THRESHOLD. In order to relate RMSD and ward distance, we use sqrt(ward_dist / number_of_selected_atoms) for threshold extraction.
The nearest neighbor chain ward clustering in principle computes a full clustering. Option DISTANCE_THRESHOLD gives a ward distance that is automatically used to extract clusters. Further extractions with different thresholds are possible.
The complete linkage algorithms guarantee a minimal cluster distance (max RMSD between all pairs of two clusters), specified with option DISTANCE_THRESHOLD.
The initial poses can be given as ConformationSet or as transformation file, i.e. translation and rotation of each pose. Depending on this choice, the option RMSD_TYPE has to be set to SNAPSHOT_RMSD or RIGID_RMSD. If RMSD_TYPE is set to CENTER_OF_MASS_DISTANCE, the option RMSD_LEVEL_OF_DETAIL will be ignored.
By setting the option RUN_PARALLEL to true, the user can request parallel execution. This will be performed if the execution environment is enabled (BALL_HAS_TBB), and if the algorithm supports it.
Definition at line 126 of file poseClustering.h.