RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
ChromDihedralRefData.h
1/***********************************************************************
2 * The rDock program was developed from 1998 - 2006 by the software team
3 * at RiboTargets (subsequently Vernalis (R&D) Ltd).
4 * In 2006, the software was licensed to the University of York for
5 * maintenance and distribution.
6 * In 2012, Vernalis and the University of York agreed to release the
7 * program as Open Source software.
8 * This version is licensed under GNU-LGPL version 3.0 with support from
9 * the University of Barcelona.
10 * http://rdock.sourceforge.net/
11 ***********************************************************************/
12
13// Manages the fixed reference data for a single dihedral angle chromosome
14// element Also provides methods to map the genotype (dihedral angle value) onto
15// the phenotype (model coords) A single instance is designed to be shared
16// between all clones of a given element
17#ifndef RBTCHROMDIHEDRALREFDATA_H_
18#define RBTCHROMDIHEDRALREFDATA_H_
19
20#include "rxdock/Atom.h"
21#include "rxdock/Bond.h"
22#include "rxdock/ChromElement.h"
23
24namespace rxdock {
25
27public:
28 // Class type string
29 static const std::string _CT;
30 // Sole constructor
31 // If the tetheredAtoms list is empty, then
32 // the end of the bond with the fewest pendant atoms is rotated (other half
33 // remains fixed)
34 // else if the tetheredAtoms list is not empty, then
35 // the end of the bond with the fewest tethered atoms is rotated (other half
36 // remains fixed)
38 BondPtr spBond, // Rotatable bond
39 AtomList tetheredAtoms, // Tethered atom list
40 double stepSize, // maximum mutation step size (degrees)
41 ChromElement::eMode mode = ChromElement::FREE, // sampling mode
42 double maxDihedral =
43 0.0); // max deviation from reference (tethered mode only)
44 virtual ~ChromDihedralRefData();
45
46 // Gets the maximum step size for this bond
47 double GetStepSize() const { return m_stepSize; }
48 // Gets the sampling mode for this bond
49 ChromElement::eMode GetMode() const { return m_mode; }
50 // Gets the maximum deviation from the reference dihedral (tethered mode only)
51 double GetMaxDihedral() const { return m_maxDihedral; }
52 // Gets the current dihedral angle (phenotype) for this bond
53 // from the model coords
54 double GetModelValue() const;
55 // Sets the phenotype (model coords) for this bond
56 // to a given dihedral angle
57 void SetModelValue(double dihedralAngle);
58 // Gets the initial dihedral angle for this bond
59 //(initialised from model coords in ChromDihedralRefData constructor)
60 double GetInitialValue() const { return m_initialValue; }
61
62private:
63 // Sets up the movable atom list for this bond
64 void Setup(BondPtr spBond, const AtomList &tetheredAtoms);
65 Atom *m_atom1;
66 Atom *m_atom2;
67 Atom *m_atom3;
68 Atom *m_atom4;
69 AtomRList m_rotAtoms;
70 double m_stepSize;
71 double m_initialValue;
72 ChromElement::eMode m_mode;
73 double m_maxDihedral; // max deviation from reference (tethered mode only)
74};
75
77
78} // namespace rxdock
79
80#endif /*RBTCHROMDIHEDRALREFDATA_H_*/
Definition Atom.h:49
Definition ChromDihedralRefData.h:26