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