9 #ifndef IMPROTAMER_ROTAMER_LIBRARY_H
10 #define IMPROTAMER_ROTAMER_LIBRARY_H
14 #include <boost/range/iterator_range.hpp>
17 #include <IMP/rotamer/rotamer_config.h>
19 IMPROTAMER_BEGIN_NAMESPACE
43 , probability_(probability)
78 out <<
"RotamerAngleTuple: " << chi1_ <<
' '
80 << chi3_ <<
' ' << chi4_ <<
' '
105 typedef RotamerAngleTuples::const_iterator RotamerIterator;
106 typedef boost::iterator_range<RotamerIterator> RotamerRange;
126 RotamerRange get_rotamers_fast(
128 float probability_thr)
const;
142 float probability_thr)
const;
146 void read_library_file(
const std::string &lib_file_name);
151 unsigned backbone_angle_to_index(
float phi,
float psi)
const;
153 typedef std::vector<RotamerAngleTuples> RotamerAngleTuplesByBackbone;
154 typedef std::vector<RotamerAngleTuplesByBackbone> RotamersByResidue;
155 RotamersByResidue library_;
157 unsigned angle_step_;
158 unsigned rotamers_by_backbone_size_;
162 IMPROTAMER_END_NAMESPACE
float get_chi2() const
query the chi2 angle
float get_probability() const
query the probability
RotamerAngleTuple(float chi1, float chi2, float chi3, float chi4, float probability)
constructor. build rotamer data corresponding to 1 line from
float get_chi3() const
query the chi3 angle
A class storing a whole rotamer library read from a file.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
A simple class storing chi angles and their probability.
A decorator for Residues.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Common base class for heavy weight IMP objects.
RotamerAngleTuple()
default constructor. Build identity rotations with zero probability
float get_chi1() const
query the chi1 angle
A shared base class to help in debugging and things.
float get_chi4() const
query the chi4 angle