nonpolarSolvation.h

Go to the documentation of this file.
00001 // $Id: nonpolarSolvation.h,v 1.2 2006/05/21 17:33:47 anker Exp $
00002 
00003 #ifndef BALL_SCORING_COMPONENTS_NONPOLAR_H
00004 #define BALL_SCORING_COMPONENTS_NONPOLAR_H
00005 
00006 #include <BALL/SCORING/COMMON/scoringComponent.h>
00007 #include <BALL/SCORING/COMMON/scoringFunction.h>
00008 #include <BALL/SOLVATION/uhligCavFreeEnergyProcessor.h>
00009 #include <BALL/SOLVATION/PCMCavFreeEnergyProcessor.h>
00010 #include <BALL/SOLVATION/pair6_12InteractionEnergyProcessor.h>
00011 
00012 namespace BALL
00013 {
00014 
00018   class NonpolarSolvation
00019     : public ScoringComponent
00020   {
00021 
00022     public:
00023 
00026     enum CalculationMethod
00027     {
00028 
00031       CALCULATION__NONE,
00032 
00035       CALCULATION__UHLIG,
00036 
00039       CALCULATION__PCM,
00040 
00043       CALCULATION__VDW_SOLVENT,
00044 
00047       CALCULATION__VDW_INTERACTION
00048 
00049     };
00050 
00051 
00054     struct Option
00055     {
00056 
00059       static const char* PROBE_RADIUS;
00060 
00063       static const char* SURFACE_TENSION;
00064 
00067       static const char* UHLIG_CONSTANT;
00068 
00071       static const char* SOLVENT_NUMBER_DENSITY;
00072 
00075       static const char* ABSOLUTE_TEMPERATURE;
00076 
00079       static const char* NONPOLAR_METHOD;
00080 
00083       static const char* VERBOSITY;
00084 
00087       static const char* SOLVENT_DESCRIPTOR_FILE;
00088 
00091       static const char* LJ_PARAM_FILE;
00092 
00095       static const char* ATOM_TYPE_FILE;
00096 
00099       static const char* NONPOLAR_OVERWRITE_RADII;
00100 
00103       static const char* NONPOLAR_RADIUS_RULES;
00104 
00107       static const char* NONPOLAR_RADIUS_SCALING;
00108 
00109     };
00110 
00111     
00114     struct Default
00115     {
00116 
00119       static const float PROBE_RADIUS;
00120 
00123       static const float SURFACE_TENSION;
00124 
00127       static const float UHLIG_CONSTANT;
00128 
00131       static const float SOLVENT_NUMBER_DENSITY;
00132 
00135       static const float ABSOLUTE_TEMPERATURE;
00136 
00139       static const Size NONPOLAR_METHOD;
00140 
00143       static const Size VERBOSITY;
00144 
00147       static const String SOLVENT_DESCRIPTOR_FILE;
00148 
00151       static const String LJ_PARAM_FILE;
00152 
00155       static const String ATOM_TYPE_FILE;
00156 
00159       static const bool NONPOLAR_OVERWRITE_RADII;
00160 
00163       static const String NONPOLAR_RADIUS_RULES;
00164 
00167       static const float NONPOLAR_RADIUS_SCALING;
00168 
00169     };
00170 
00171 
00175 
00178     NonpolarSolvation()
00179       ;
00180 
00183     NonpolarSolvation(ScoringFunction& sf)
00184       ;
00185 
00188     NonpolarSolvation(const NonpolarSolvation& fhb)
00189       ;
00190 
00193     virtual ~NonpolarSolvation()
00194       ;
00195 
00197 
00200 
00203     const NonpolarSolvation& operator = (const NonpolarSolvation& fr)
00204       ;
00205 
00208     virtual void clear()
00209       ;
00210 
00212 
00215 
00216     bool operator == (const NonpolarSolvation& fr) const
00217       ;
00218 
00220 
00223 
00226     virtual bool setup()
00227       ;
00228 
00230 
00233 
00236     virtual double calculateScore()
00237       ;
00238 
00240 
00241     private:
00242 
00243     /*_
00244     */
00245     System receptor_;
00246 
00247     /*_
00248     */
00249     System ligand_;
00250 
00251     /*_
00252     */
00253     System complex_;
00254 
00255     /*_
00256     */
00257     EnergyProcessor* processor_;
00258 
00259     /*_
00260     */
00261     Size verbosity_;
00262 
00263     /*_
00264     */
00265     double factor_;
00266 
00267     /*_
00268     */
00269     Size calculation_method_;
00270 
00271     /*_
00272     */
00273     float probe_radius_;
00274 
00275     /*_
00276     */
00277     float surface_tension_;
00278 
00279     /*_
00280     */
00281     float constant_;
00282 
00283     /*_
00284     */
00285     float solvent_number_density_;
00286 
00287     /*_
00288     */
00289     float absolute_temperature_;
00290 
00291     /*_
00292     */
00293     UhligCavFreeEnergyProcessor uhlig_;
00294 
00295     /*_
00296     */
00297     PCMCavFreeEnergyProcessor pcm_;
00298 
00299     /*_
00300     */
00301     Pair6_12InteractionEnergyProcessor vdw_solvent_;
00302 
00303   };
00304 
00305 } // namespace BALL
00306 
00307 #endif // BALL_SCORING_COMPONENTS_NONPOLAR_H