00001 // $Id: buriedPolar.h,v 1.3 2006/05/21 17:38:39 anker Exp $ 00002 // Molecular Mechanics: Fresno force field, lipophilic component 00003 00004 #ifndef BALL_SCORING_COMPONENTS_FRESNOBURIEDPOLAR_H 00005 #define BALL_SCORING_COMPONENTS_FRESNOBURIEDPOLAR_H 00006 00007 #include <BALL/SCORING/COMMON/scoringComponent.h> 00008 00009 namespace BALL 00010 { 00011 00015 class BuriedPolar 00016 : public ScoringComponent 00017 { 00018 00019 public: 00020 00023 struct Option 00024 { 00025 00028 static const char* BP_R1_OFFSET; 00029 00032 static const char* BP_R2_OFFSET; 00033 00036 static const char* CREATE_INTERACTIONS_FILE; 00037 00040 static const char* VERBOSITY; 00041 00042 }; 00043 00046 struct Default 00047 { 00048 00051 static const float BP_R1_OFFSET; 00052 00055 static const float BP_R2_OFFSET; 00056 00059 static const bool CREATE_INTERACTIONS_FILE; 00060 00063 static const Size VERBOSITY; 00064 00065 }; 00066 00067 00068 00072 00075 BuriedPolar() 00076 ; 00077 00080 BuriedPolar(ScoringFunction& sf) 00081 ; 00082 00085 BuriedPolar(const BuriedPolar& bp) 00086 ; 00087 00090 virtual ~BuriedPolar() 00091 ; 00092 00094 00097 00100 const BuriedPolar& operator = (const BuriedPolar& bp) 00101 ; 00102 00105 virtual void clear() 00106 ; 00107 00109 00112 00113 bool operator == (const BuriedPolar& bp) const 00114 ; 00115 00117 00120 00123 virtual bool setup() 00124 ; 00125 00127 00130 00133 virtual double calculateScore() 00134 ; 00135 00137 00138 private: 00139 00140 /*_ 00141 */ 00142 std::vector< std::pair<const Atom*, const Atom*> > possible_buried_polar_interactions_; 00143 00144 /*_ 00145 */ 00146 double factor_; 00147 00148 /*_ This length will be added to the sum of the van-der-Waals radii for 00149 obtaining the lower bound of the scoring function. 00150 */ 00151 double r1_offset_; 00152 00153 /*_ The upper bound for the scoring function is obtained by adding a 00154 constant to the lower bound. 00155 */ 00156 double r2_offset_; 00157 00158 // The following two variables are only necessary if the buried polar 00159 // component is meant to assign its own radii. They are unused at the 00160 // moment. 00161 00163 Molecule* bp_receptor_; 00164 00166 Molecule* bp_ligand_; 00167 00169 bool write_interactions_file_; 00170 00172 Size verbosity_; 00173 00174 }; 00175 00176 } // namespace BALL 00177 00178 #endif // BALL_SCORING_COMPONENTS_FRESNOBURIEDPOLAR_H