IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
RatioVolatilityScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/saxs/RatioVolatilityScore.h \brief Vr score implementation
3  *
4  * Hura et al. Nature Methods 2013
5  *
6  * Copyright 2007-2022 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPSAXS_RATIO_VOLATILITY_SCORE_H
11 #define IMPSAXS_RATIO_VOLATILITY_SCORE_H
12 
13 #include <IMP/saxs/saxs_config.h>
14 #include "Profile.h"
15 
16 IMPSAXS_BEGIN_NAMESPACE
17 
18 /**
19  Basic implementation of RatioVolatility scoring
20 */
21 class IMPSAXSEXPORT RatioVolatilityScore : public IMP::Object {
22  public:
23  RatioVolatilityScore(double dmax = 400)
24  : IMP::Object("RatioVolatilityScore%1%"), dmax_(dmax) {}
25 
26  double compute_score(const Profile* exp_profile, const Profile* model_profile,
27  bool use_offset = false) const;
28 
29  double compute_scale_factor(const Profile* exp_profile,
30  const Profile* model_profile,
31  double offset = 0.0) const;
32 
33  double compute_offset(const Profile* exp_profile,
34  const Profile* model_profile) const {
35  // not implemented for now
36  IMP_UNUSED(exp_profile);
37  IMP_UNUSED(model_profile);
38  return 0.0;
39  }
41 
42  private:
43  double dmax_;
44 };
45 
46 IMPSAXS_END_NAMESPACE
47 
48 #endif /* IMPSAXS_RATIO_VOLATILITY_SCORE_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Common base class for heavy weight IMP objects.
Definition: Object.h:111
#define IMP_UNUSED(variable)
A class for profile storing and computation.