Victor
 All Data Structures Functions Variables Friends Pages
PolarSolvationPotential.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 #ifndef _POLARSOLVATIONPOTENTIAL_H_
18 #define _POLARSOLVATIONPOTENTIAL_H_
19 
20 
21 // Includes:
22 #include <vector>
23 #include <Spacer.h>
24 #include <Potential.h>
25 
26 // Global constants, typedefs, etc. (to avoid):
27 using namespace Victor::Biopool;
28  namespace Victor { namespace Energy {
29 
30  const double SOLVATION_CUTOFF_DISTANCE_POLAR = 7.0;
31 
41  public:
42 
43  // CONSTRUCTORS/DESTRUCTOR:
45 
46  virtual ~PolarSolvationPotential() {
47  PRINT_NAME;
48  }
49 
50  // PREDICATES:
51 
52  virtual long double calculateEnergy(Spacer& sp) {
53  return calculateSolvation(sp);
54  }
55  virtual long double calculateEnergy(Spacer& sp, unsigned int index1,
56  unsigned int index2);
57 
58  virtual long double calculateEnergy(AminoAcid& aa, Spacer& sp) {
59  return calculateSolvation(aa, sp);
60  }
61  long double calculateSolvation(Spacer& sp);
62  long double calculateSolvation(AminoAcid& aa, Spacer& sp,
63  unsigned int start = 0,
64  unsigned int end = 9999);
65 
66  // MODIFIERS:
67 
68  // OPERATORS:
69 
70  protected:
71 
72  // HELPERS:
73 
74  private:
75 
76  // ATTRIBUTES:
77  vector<vector<vector<int> > > sumPolar;
78 
79  static unsigned int MAX_BINS;
80  static unsigned int BIN_POLAR;
81  static string SOLV_PARAM_FILE;
82  };
83 
84 }} // namespace
85 #endif //_POLARSOLVATIONPOTENTIAL_H_
Abstract class for the energy potential.
Definition: Potential.h:37
This class implements a knowledge-based solvation with polar/hydrophobic information potential...
Definition: PolarSolvationPotential.h:40
It mplements a simple amino acid.
Definition: AminoAcid.h:43
Implements a "Spacer" for a protein chain. Includes methods to obtain values from the atoms and its p...
Definition: Spacer.h:42