BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
BALL::GeneralizedBornModel Class Reference

#include <BALL/SOLVATION/generalizedBornCase.h>

Classes

struct  Default
 
class  GBParameters
 
struct  Option
 

Public Member Functions

 GeneralizedBornModel () throw (Exception::FileNotFound)
 
 ~GeneralizedBornModel ()
 
void clear ()
 
bool setup (const AtomContainer &ac) throw (Exception::FileNotFound)
 We need an additional optioned version of that piece of code. More...
 
void setScalingFactorFile (const String &filename)
 ??? This should be done through Options! More...
 
void setScalingFactors (const StringHashMap< float > &scaling_factors)
 
const StringHashMap< float > & getScalingFactors () const
 
void setSolventDC (float solvent_dc)
 ??? Should be done by options More...
 
void setSoluteDC (float solute_dc)
 ??? Should be done by options More...
 
float calculateEnergy ()
 Compute the total energy of the system. More...
 
float calculateSolvationEnergy ()
 
void calculatePotential (HashMap< const Atom *, float > &p_hash) const
 
float calculatePotential (const Atom &atom_i) const
 
bool readScalingFactors (const String &inifile_name) throw (Exception::FileNotFound)
 

Private Member Functions

void calculateBornRadii_ ()
 
float calculateCreationEnergy_ () const
 
float calculateTransferEnergy_ () const
 
float f_GB_ (Size i, Size j) const
 
float coulombIntegralApproximation_ (float distance, float scaled_radius_j, float radius_i) const
 

Private Attributes

AtomContainerac_
 
std::vector< const Atom * > atoms_
 
std::vector< floatborn_radii_
 
std::vector< std::pair< Size,
Size > > 
pair_list_
 
std::vector< floatpair_distances_
 
std::vector< floatpair_charges_
 
std::vector< std::vector< float > > squared_distances_
 
float dc_solute_
 
float dc_solvent_
 
StringHashMap< floatscaling_factors_
 
std::vector< floatscaling_factor_
 
String scaling_factor_filename_
 
float lambda_
 
float delta_
 
float kappa_
 
float rho_0_
 
float to_kJ_mol_
 

Detailed Description

Compute the electrostatics of a molecule in solution.

This implementation bases on

[1] "Modification of the Generalized Born Model Suitable for Macromolecules" Onufriev, Bashford, Case J. Phys. Chem. B 104:3712-3720, 2000

This paper uses techniques from

[2] "Semianalytical Treatment of Solvation for Molecular Mechanics and Dynamics" Still, Tempczyk, Hawley, Hendrickson J. Am. Chem. Soc. 112(16):6127-6129, 1990

[3] "Application of a pairwise generalized Born model to proteins and nucleic acids: inclusion of salt eff¤ects " Srinivasan, Trevathan, Beroza, Case Theor. Chem. Acc. 101(6):426-434, 1999

Definition at line 61 of file generalizedBornCase.h.

Constructor & Destructor Documentation

BALL::GeneralizedBornModel::GeneralizedBornModel ( ) throw (Exception::FileNotFound)
BALL::GeneralizedBornModel::~GeneralizedBornModel ( )

Member Function Documentation

void BALL::GeneralizedBornModel::calculateBornRadii_ ( )
private

Calculate the Born radii of all atoms

float BALL::GeneralizedBornModel::calculateCreationEnergy_ ( ) const
private

Calculate the energetic cost of creating a charge distribution in a uniform dielectric

float BALL::GeneralizedBornModel::calculateEnergy ( )

Compute the total energy of the system.

void BALL::GeneralizedBornModel::calculatePotential ( HashMap< const Atom *, float > &  p_hash) const

Calculate the total potential created by every other atom of the system for every atom and return a hashmap conteining the potential values.

float BALL::GeneralizedBornModel::calculatePotential ( const Atom atom_i) const

Calculate the total potential created by every other atom of the system at the position of atom_i

float BALL::GeneralizedBornModel::calculateSolvationEnergy ( )

Compoute only the solvation energy (meaning the transfer energy which is a kind of a reaction field energy)

float BALL::GeneralizedBornModel::calculateTransferEnergy_ ( ) const
private

Calculate the energetic cost of transfering a solute into a dielectric medium.

void BALL::GeneralizedBornModel::clear ( )
float BALL::GeneralizedBornModel::coulombIntegralApproximation_ ( float  distance,
float  scaled_radius_j,
float  radius_i 
) const
private

An approximation of the coulomb integral

float BALL::GeneralizedBornModel::f_GB_ ( Size  i,
Size  j 
) const
private

A smooth function describing an approximation of the solute volume and several Born-dependent effects (including Coulomb integrals). There are several techniques in usage. We implement the on described in [1].

const StringHashMap<float>& BALL::GeneralizedBornModel::getScalingFactors ( ) const
bool BALL::GeneralizedBornModel::readScalingFactors ( const String inifile_name) throw (Exception::FileNotFound)
void BALL::GeneralizedBornModel::setScalingFactorFile ( const String filename)

??? This should be done through Options!

void BALL::GeneralizedBornModel::setScalingFactors ( const StringHashMap< float > &  scaling_factors)
void BALL::GeneralizedBornModel::setSoluteDC ( float  solute_dc)

??? Should be done by options

void BALL::GeneralizedBornModel::setSolventDC ( float  solvent_dc)

??? Should be done by options

bool BALL::GeneralizedBornModel::setup ( const AtomContainer ac) throw (Exception::FileNotFound)

We need an additional optioned version of that piece of code.

Member Data Documentation

AtomContainer* BALL::GeneralizedBornModel::ac_
private

The atom container representing the molecule

Definition at line 225 of file generalizedBornCase.h.

std::vector<const Atom*> BALL::GeneralizedBornModel::atoms_
private

The atom list

Definition at line 229 of file generalizedBornCase.h.

std::vector<float> BALL::GeneralizedBornModel::born_radii_
private

The Born radii of all atoms

Definition at line 233 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::dc_solute_
private

Dielectric constants of the solute and the surrounding solvent

Definition at line 248 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::dc_solvent_
private

Definition at line 249 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::delta_
private

Downshift of the effictve Born radii for rectifying the energy increase caused by the lambda factor. More or less magic (see [1] for details) but allows to use the scaling_factors_ without reparamterizing them.

Definition at line 272 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::kappa_
private

Debye-Hueckel parameter describing salt effects (ionic strength) in units of 1/Angstrom.

Definition at line 277 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::lambda_
private

Scaling factor of integral part of effective Born radii calculation rectifying the underestimation of the radii caused by the vdW approximation (instead of real SAS calculations).

Definition at line 265 of file generalizedBornCase.h.

std::vector< float > BALL::GeneralizedBornModel::pair_charges_
private

Definition at line 243 of file generalizedBornCase.h.

std::vector< float > BALL::GeneralizedBornModel::pair_distances_
private

Distances between atoms of the pair list.

Definition at line 242 of file generalizedBornCase.h.

std::vector< std::pair<Size, Size> > BALL::GeneralizedBornModel::pair_list_
private

The pairs of atoms we have to look at. This list only inlcudes different atoms. Not suitable for self-energy calculations,

Definition at line 238 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::rho_0_
private

Radius offset (see [2] for details).

Definition at line 281 of file generalizedBornCase.h.

std::vector<float> BALL::GeneralizedBornModel::scaling_factor_
private

Definition at line 255 of file generalizedBornCase.h.

String BALL::GeneralizedBornModel::scaling_factor_filename_
private

Definition at line 259 of file generalizedBornCase.h.

StringHashMap<float> BALL::GeneralizedBornModel::scaling_factors_
private

Empirical scaling factor for the estimation of effective Born radii. See [3] for details.

Definition at line 254 of file generalizedBornCase.h.

std::vector< std::vector< float > > BALL::GeneralizedBornModel::squared_distances_
private

Definition at line 244 of file generalizedBornCase.h.

float BALL::GeneralizedBornModel::to_kJ_mol_
private

Definition at line 285 of file generalizedBornCase.h.