IMP logo
IMP Reference Guide  develop.36b5e40f34,2024/10/14
The Integrative Modeling Platform
UniformBackboneSampler.h
Go to the documentation of this file.
1 /**
2  \file IMP/kinematics/UniformBackboneSampler.h
3  \brief A class for uniform sampling of backbone angles
4 
5  \authors Dina Schneidman, Barak Raveh
6  Copyright 2007-2022 IMP Inventors. All rights reserved.
7  */
8 
9 #ifndef IMPKINEMATICS_UNIFORM_BACKBONE_SAMPLER_H
10 #define IMPKINEMATICS_UNIFORM_BACKBONE_SAMPLER_H
11 
12 #include <IMP/kinematics/kinematics_config.h>
13 #include "DOFsSampler.h"
14 #include "revolute_joints.h"
15 #include <boost/random/uniform_real_distribution.hpp>
16 
17 IMPKINEMATICS_BEGIN_NAMESPACE
18 
19 // TODO: is it necessarily backbone? could be any dihedrals too?
20 
21 //! Sample uniformly over a set of backbone dihedral joints
22 class IMPKINEMATICSEXPORT UniformBackboneSampler : public DOFsSampler {
23  public:
24  /**
25  Construct a uniform backbone sampler over joints, with
26  corresponding dof properties specified in dofs
27 
28  @param joints the dihedral joints over which to sample uniformly
29  @param dofs corresponding list of dofs for each joint in joints
30  respectively, with information about minimal /
31  maximal dof values, etc.
32  */
34 
35  virtual void apply(const DOFValues& values) override;
36  virtual void apply_floats(const Floats& values);
37 
38  DihedralAngleRevoluteJoints get_joints() { return joints_; }
39 
40  protected:
41  virtual DOFValues do_get_sample() const override;
42 
43  private:
44  // boost::mt19937 rng_; // init random number generator
45  mutable std::vector<boost::random::uniform_real_distribution<> > u_rand_;
47 };
48 
50 
51 IMPKINEMATICS_END_NAMESPACE
52 
53 #endif /* IMPKINEMATICS_UNIFORM_BACKBONE_SAMPLER_H */
Copyright 2007-2022 IMP Inventors. All rights reserved.
Sample uniformly over a set of backbone dihedral joints.
Base class for sampling certain combinations of degrees of freedom.
Definition: DOFsSampler.h:17
A class that holds DOF values for DOFs.
Definition: DOFValues.h:23
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition: object_macros.h:44
virtual void apply(const DOFValues &values)=0
functionality for defining various revolute kinematic joints between rigid bodies as part of a kinema...