#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
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
std::vector<const Atom*> BALL::GeneralizedBornModel::atoms_ [private] |
The atom list
std::vector<float> BALL::GeneralizedBornModel::born_radii_ [private] |
The Born radii of all atoms
float BALL::GeneralizedBornModel::dc_solute_ [private] |
Dielectric constants of the solute and the surrounding solvent
float BALL::GeneralizedBornModel::dc_solvent_ [private] |
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.
float BALL::GeneralizedBornModel::kappa_ [private] |
Debye-Hueckel parameter describing salt effects (ionic strength) in units of 1/Angstrom.
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).
std::vector< float > BALL::GeneralizedBornModel::pair_charges_ [private] |
std::vector< float > BALL::GeneralizedBornModel::pair_distances_ [private] |
Distances between atoms of the pair list.
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,
float BALL::GeneralizedBornModel::rho_0_ [private] |
Radius offset (see [2] for details).
std::vector<float> BALL::GeneralizedBornModel::scaling_factor_ [private] |
Empirical scaling factor for the estimation of effective Born radii. See [3] for details.
std::vector< std::vector< float > > BALL::GeneralizedBornModel::squared_distances_ [private] |
float BALL::GeneralizedBornModel::to_kJ_mol_ [private] |