polarSolvation.h

Go to the documentation of this file.
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