IMP logo
IMP Reference Guide  2.23.0
The Integrative Modeling Platform
RMSDMetric.h
Go to the documentation of this file.
1 /**
2  * \file IMP/spb/RMSDMetric.h
3  * \brief Distance RMSD Metric
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPSPB_RMSD_METRIC_H
9 #define IMPSPB_RMSD_METRIC_H
10 
11 #include <IMP/spb/spb_config.h>
12 #include <IMP/statistics/Metric.h>
13 
14 IMPSPB_BEGIN_NAMESPACE
15 
16 /** Compute the RMSD between two sets of particles in two configurations.
17  */
18 class IMPSPBEXPORT RMSDMetric : public statistics::Metric {
19  Particles ps_;
20  Floats weight_;
21  std::vector<algebra::Vector3Ds> coords_;
22 
23  double get_rmsd(algebra::Vector3Ds v0, algebra::Vector3Ds v1) const;
24 
25  public:
27  void add_configuration(double weight = 1.0);
28  Float get_weight(unsigned i);
29 
30  // IMP_METRIC(RMSDMetric);
31  double get_distance(unsigned int i, unsigned int j) const override;
32  unsigned int get_number_of_items() const override;
34 };
35 
36 IMPSPB_END_NAMESPACE
37 
38 #endif /* IMPSPB_RMSD_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