BALL
1.4.1
|
00001 // $Id: polarSolvation.h,v 1.2 2006/05/21 17:49:46 anker Exp $ 00002 00003 #ifndef BALL_SCORING_COMPONENTS_POLARSOLVATION_H 00004 #define BALL_SCORING_COMPONENTS_POLARSOLVATION_H 00005 00006 #include <BALL/SCORING/COMMON/scoringComponent.h> 00007 00008 #include <BALL/SOLVATION/poissonBoltzmann.h> 00009 #include <BALL/SOLVATION/generalizedBornCase.h> 00010 00011 namespace BALL 00012 { 00013 00017 class PolarSolvation 00018 : public ScoringComponent 00019 { 00020 00021 public: 00022 00025 enum CalculationMethod 00026 { 00027 00030 CALCULATION__FRESNO, 00031 00034 CALCULATION__FULL_SLICK, 00035 00038 CALCULATION__FULL_CYCLE, 00039 00042 CALCULATION__FULL_CYCLE_FOCUSED, 00043 00046 CALCULATION__COULOMB, 00047 00050 CALCULATION__EEF1 00051 00052 }; 00053 00056 enum AveragingMethod 00057 { 00060 AVERAGING__NONE, 00061 00065 AVERAGING__STATIC, 00066 00070 AVERAGING__RANDOM_FACTOR, 00071 00076 AVERAGING__RANDOM 00077 00078 }; 00079 00080 00081 struct Option 00082 { 00083 00086 static const char* POLAR_METHOD; 00087 00090 static const char* POLAR_GB; 00091 00094 static const char* POLAR_AVG; 00095 00098 static const char* POLAR_FOCUS_GRID_AROUND_LIGAND; 00099 00102 static const char* GB_SCALING_FILE; 00103 00106 static const char* UNITE_ATOMS; 00107 00110 static const char* VERBOSITY; 00111 00114 static const char* POLAR_OVERWRITE_RADII; 00115 00118 static const char* POLAR_OVERWRITE_CHARGES; 00119 00122 static const char* POLAR_RADIUS_RULES; 00123 00126 static const char* POLAR_CHARGE_RULES; 00127 00128 }; 00129 00130 00131 struct Default 00132 { 00133 00136 static const Size POLAR_METHOD; 00137 00140 static const bool POLAR_GB; 00141 00144 static const Size POLAR_AVG; 00145 00148 static const bool POLAR_FOCUS_GRID_AROUND_LIGAND; 00149 00152 static const String GB_SCALING_FILE; 00153 00156 static const bool UNITE_ATOMS; 00157 00160 static const Size VERBOSITY; 00161 00164 static const bool POLAR_OVERWRITE_RADII; 00165 00168 static const bool POLAR_OVERWRITE_CHARGES; 00169 00172 static const String POLAR_RADIUS_RULES; 00173 00176 static const String POLAR_CHARGE_RULES; 00177 00178 }; 00179 00180 00184 00187 PolarSolvation() 00188 ; 00189 00192 PolarSolvation(ScoringFunction& sf) 00193 ; 00194 00197 PolarSolvation(const PolarSolvation& fhb) 00198 ; 00199 00202 virtual ~PolarSolvation() 00203 ; 00204 00206 00209 00212 const PolarSolvation& operator = (const PolarSolvation& fr) 00213 ; 00214 00217 virtual void clear() 00218 ; 00219 00221 00224 00225 bool operator == (const PolarSolvation& fr) const 00226 ; 00227 00229 00232 00235 virtual bool setup() 00236 ; 00237 00239 00242 00245 virtual double calculateScore() 00246 ; 00247 00249 00250 private: 00251 00252 /*_ 00253 */ 00254 Molecule desolv_protein_; 00255 00256 /*_ 00257 */ 00258 Molecule desolv_ligand_; 00259 00260 /*_ 00261 */ 00262 Size calculation_method_; 00263 00264 /*_ 00265 */ 00266 Size averaging_; 00267 00268 /*_ 00269 */ 00270 bool unite_atoms_; 00271 00272 /*_ 00273 */ 00274 Size verbosity_; 00275 00276 /*_ 00277 */ 00278 FDPB fdpb_; 00279 00280 /*_ 00281 */ 00282 GeneralizedBornModel gbm_; 00283 00284 /*_ 00285 */ 00286 bool use_gb_; 00287 00288 /*_ 00289 */ 00290 float spacing_; 00291 00292 /*_ 00293 */ 00294 float bulk_water_dc_; 00295 00296 /*_ 00297 */ 00298 float vacuum_dc_; 00299 00300 /*_ 00301 */ 00302 bool computeEnergyDifference_(System& system, float& energy) 00303 ; 00304 00305 /*_ 00306 */ 00307 bool computeESEnergy_(System& system, float& energy) 00308 ; 00309 00310 /*_ 00311 */ 00312 float computeESInteractionEnergy_(const Molecule& molecule, const 00313 HashMap<const Atom*, float>& p_hash) 00314 ; 00315 00316 /*_ 00317 */ 00318 bool computeFullCycle_(System& system, Molecule& protein, 00319 Molecule& ligand, float& energy) 00320 ; 00321 00322 /*_ 00323 */ 00324 Vector3 permuteComponentSigns_(Vector3 vector, Size permutation) 00325 ; 00326 00327 /*_ Condense hydrogens without radius but bearing charges on the heavy 00328 atom they are attached to 00329 */ 00330 Size uniteAtoms_(Molecule& molecule) 00331 ; 00332 00333 }; 00334 00335 } // namespace BALL 00336 00337 #endif // BALL_SCORING_COMPONENTS_POLARSOLVATION_H 00338