Victor
 All Data Structures Functions Variables Friends Pages
PhiPsiPreAngle.h
1 /* This file is part of Victor.
2 
3  Victor is free software: you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation, either version 3 of the License, or
6  (at your option) any later version.
7 
8  Victor is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with Victor. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 
18 #ifndef _PHIPSIPREANGLE_H_
19 #define _PHIPSIPREANGLE_H_
20 
21 
22 // Includes:
23 #include <TorsionPotential.h>
24 #include <vector>
25 #include <Spacer.h>
26 #include <AminoAcidCode.h>
27 
28 // Global constants, typedefs, etc. (to avoid):
29 
30 using namespace Victor::Biopool;
31 using namespace Victor::Energy;
32 using namespace Victor;
33 namespace Victor { namespace Energy {
34 
43  public:
44 
45  // CONSTRUCTORS/DESTRUCTOR:
46  PhiPsiPreAngle(int SET_ARC1 = 10, int SET_ARC2 = 40, string knownledge = "data/tor.par");
47 
48  virtual ~PhiPsiPreAngle() {
49  pResetData();
50  }
51 
52  // PREDICATES:
53  virtual long double calculateEnergy(Spacer& sp);
54  virtual long double calculateEnergy(Spacer& sp, unsigned int index1,
55  unsigned int index2);
56  virtual long double calculateEnergy(AminoAcid& aa);
57 
58  virtual long double calculateEnergy(AminoAcid& aa, Spacer& sp) {
59  return calculateEnergy(aa);
60  }
61 
62  virtual long double calculateEnergy(AminoAcid& diheds, AminoAcidCode code) {
63  ERROR("ERROR. NOT IMPLEMENTED FOR THIS CLASS.", exception)
64  }
65 
66  virtual double pReturnMaxPropensities(int amino);
67  virtual double pReturnMaxPropensitiesPreAngle(int amino, int prephi, int prepsi);
68  virtual int sGetPropBin2(double p);
69  // MODIFIERS:
70  virtual void setArcStep(int n);
71 
72  // OPERATORS:
73 
74  protected:
75 
76  // HELPERS:
77  virtual void pConstructData();
78  virtual void pResetData();
79  virtual double pGetMaxPropensities(int amino);
80  virtual double pGetMaxPropensities(int amino, int prephi, int prepsi);
81  void sAddProp(int code, int x, int y, int z, int l);
82  int sGetPropBin(double p);
83  virtual void pConstructMaxPropensities();
84 
85  private:
86 
87  // ATTRIBUTES:
88  string TOR_PARAM_FILE; // File with prop torsion angles
89  int ARC_STEP; // important: must be a divisior of 360 !!!!
90  int ARC_STEP2;
91  int SIZE_OF_TABLE; // "granularity" props
92  int SIZE_OF_TABLE2; //"granularity" props for the (i-1) aa.
93  int amino_count[AminoAcid_CODE_SIZE];
94  // total number of entries for all amino acids
95  vector<vector<vector<vector<vector<int>* >* >* >* > propensities;
96  vector<vector<vector<vector<int>* >* >* > all_propensities;
97  double total;
98  vector<double> amino_max_propensities; //vector with max amino propensities
99  // according to knowledge.
100  vector<vector<vector<double>* >* > amino_max_propensities_pre_angle;
101 
102  };
103 
104  // ---------------------------------------------------------------------------
105  // TorsionPotentialB
106  // -----------------x-------------------x-------------------x-----------------
107 }} // namespace
108 #endif //_PHIPSIPREANGLE_H_
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
It mplements a simple amino acid.
Definition: AminoAcid.h:43
This class implements a simple torsion potential based on the statistical preference of aminoacid typ...
Definition: TorsionPotential.h:40
Implements a "Spacer" for a protein chain. Includes methods to obtain values from the atoms and its p...
Definition: Spacer.h:42
class manages the angle qualities and the energy, torsion potential.
Definition: PhiPsiPreAngle.h:42