#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. | |
void | setScalingFactorFile (const String &filename) |
??? This should be done through Options! | |
void | setScalingFactors (const StringHashMap< float > &scaling_factors) |
const StringHashMap< float > & | getScalingFactors () const |
void | setSolventDC (float solvent_dc) |
??? Should be done by options | |
void | setSoluteDC (float solute_dc) |
??? Should be done by options | |
float | calculateEnergy () |
Compute the total energy of the system. | |
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 | |
AtomContainer * | ac_ |
std::vector< const Atom * > | atoms_ |
std::vector< float > | born_radii_ |
std::vector< std::pair< Size, Size > > | pair_list_ |
std::vector< float > | pair_distances_ |
std::vector< float > | pair_charges_ |
std::vector< std::vector< float > > | squared_distances_ |
float | dc_solute_ |
float | dc_solvent_ |
StringHashMap< float > | scaling_factors_ |
std::vector< float > | scaling_factor_ |
String | scaling_factor_filename_ |
float | lambda_ |
float | delta_ |
float | kappa_ |
float | rho_0_ |
float | to_kJ_mol_ |
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.
BALL::GeneralizedBornModel::GeneralizedBornModel | ( | ) | throw (Exception::FileNotFound) |
BALL::GeneralizedBornModel::~GeneralizedBornModel | ( | ) |
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.
Calculate the total potential created by every other atom of the system at the position of atom_i
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::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
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.
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.
Definition at line 259 of file generalizedBornCase.h.
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.