00001
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 }
00306
00307 #endif // BALL_SCORING_COMPONENTS_NONPOLAR_H