IMP logo
IMP Reference Guide  develop.45c11de31d,2024/03/27
The Integrative Modeling Platform
saxs/RadiusOfGyrationRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/saxs/RadiusOfGyrationRestraint.h
3  * \brief Calculate score based on fit to SAXS profile.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPSAXS_RADIUS_OF_GYRATION_RESTRAINT_H
10 #define IMPSAXS_RADIUS_OF_GYRATION_RESTRAINT_H
11 
12 #include <IMP/saxs/saxs_config.h>
13 
14 #include <IMP/saxs/Profile.h>
15 
16 #include <IMP/Model.h>
17 #include <IMP/Restraint.h>
18 #include <IMP/Object.h>
19 
20 IMPSAXS_BEGIN_NAMESPACE
21 
22 //! Calculate score based on radius of gyration, taken from saxs profile
23 /** \ingroup exp_restraint
24 
25  */
26 class IMPSAXSEXPORT RadiusOfGyrationRestraint : public Restraint {
27  public:
28  //! Constructor
29  /**
30  \param[in] particles The particles participating in the fitting score
31  \param[in] exp_profile The experimental profile used in the fitting score
32  \param[in] end_q_rg The range of profile used for approximation:
33  i.e. q*rg < end_q_rg. Use 1.3 for globular proteins, 0.8 for elongated
34  */
35  RadiusOfGyrationRestraint(const Particles& particles,
36  const Profile* exp_profile,
37  const double end_q_rg = 1.3);
38 
39  virtual double unprotected_evaluate(DerivativeAccumulator* accum)
40  const override;
41  virtual ModelObjectsTemp do_get_inputs() const override;
43 
44  private:
45  Particles particles_; // non-rigid bodies particles
46  double exp_rg_; // radius of gyration from experimental profile
47 };
48 
49 IMPSAXS_END_NAMESPACE
50 
51 #endif /* IMPSAXS_RADIUS_OF_GYRATION_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Calculate score based on fit to SAXS profile.
Storage of a model, its restraints, constraints and particles.
Calculate score based on radius of gyration, taken from saxs profile.
virtual IMP::ModelObjectsTemp do_get_inputs() const override
virtual double unprotected_evaluate(IMP::DerivativeAccumulator *accum) const override
Return the unweighted score for the restraint.
A shared base class to help in debugging and things.
Abstract base class for all restraints.
Class for adding derivatives from restraints to the model.
A class for profile storing and computation.