IMP logo
IMP Reference Guide  develop.674b25dded,2025/06/10
The Integrative Modeling Platform
ContactMapMetric.h
Go to the documentation of this file.
1 /**
2  * \file IMP/spb/ContactMapMetric.h
3  * \brief Contact Map Metric
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPSPB_CONTACT_MAP_METRIC_H
9 #define IMPSPB_CONTACT_MAP_METRIC_H
10 
11 #include <IMP/statistics/Metric.h>
12 #include <IMP/spb/spb_config.h>
13 
14 IMPSPB_BEGIN_NAMESPACE
15 
16 /** Compute the RMSD between two sets of particles in two configurations.
17  */
18 class IMPSPBEXPORT ContactMapMetric : public statistics::Metric {
19  Particles ps_;
20  double r0_;
21  int nn_;
22  int mm_;
23  Floats weight_;
24  std::vector<Floats> matrices_;
25 
26  double get_rmsd(Floats m0, Floats m1) const;
27  Floats get_contact_map(algebra::Vector3Ds coords) const;
28 
29  public:
30  ContactMapMetric(Particles ps, double r0, int nn, int mm);
31 
32  void add_configuration(double weight = 1.0);
33  void add_map(Floats matrix, double weight = 1.0);
34 
35  Float get_weight(unsigned i) const;
36  Floats get_item(unsigned i) const;
37 
38  // IMP_METRIC(ContactMapMetric);
39  double get_distance(unsigned int i, unsigned int j) const override;
40  unsigned int get_number_of_items() const override;
42 };
43 
44 IMPSPB_END_NAMESPACE
45 
46 #endif /* IMPSPB_CONTACT_MAP_METRIC_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
double get_weight(unsigned int i) const
Return a weight for the point.
Definition: Metric.h:37
double get_rmsd(const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2)
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:19
Cluster sets of points.
double get_distance(const Line3D &s, const Vector3D &p)
Get closest distance between a line and a point.
Store data to be clustered for distance metric based algorithms.
Definition: Metric.h:25