![]() |
Rosetta
2021.16
|
Table of pre-computed LK membrane solvation energies. More...
#include <MembEtable.hh>

Public Member Functions | |
| MembEtable (chemical::AtomTypeSetCAP atom_set_in, EtableOptions const &options, std::string const &alternate_parameter_set="") | |
| MembEtable (MembEtable const &src) | |
| ~MembEtable () override | |
| ObjexxFCL::FArray3D< Real > const & | solv1 () const override |
| Provide Constnat Access to Arrays. More... | |
| ObjexxFCL::FArray3D< Real > const & | solv2 () const override |
| ObjexxFCL::FArray3D< Real > const & | memb_solv1 () const |
| ObjexxFCL::FArray3D< Real > const & | memb_solv2 () const |
| ObjexxFCL::FArray3D< Real > const & | dsolv1 () const override |
| Return the solvation derivative table for the desolvation of atom1 by atom2. More... | |
| ObjexxFCL::FArray3D< Real > const & | dsolv2 () const |
| Return the solvation derivative table that combines atom1 and atom2's desolvations. More... | |
| ObjexxFCL::FArray3D< Real > const & | memb_dsolv1 () const |
| Return the solvation derivative table for the desolvation of atom1 by atom2. More... | |
| ObjexxFCL::FArray3D< Real > const & | memb_dsolv2 () const |
| return the solvation derivative table that combines atom1 and atom2's desolvations More... | |
| virtual Real | max_non_hydrogen_lj_radius () const |
| Returns the maximum lj radius for any non-hydrogen atom as defined by the atom-type-set used to create this Etable. More... | |
| virtual Real | max_hydrogen_lj_radius () const |
| Returns the maximum lj radius for any hydrogen atom as defined by the input atom-type-set used to create this Etable. More... | |
| Real | lj_radius (int const i) const override |
| set these up in the ctor More... | |
| Real | lk_dgfree (int const i) const override |
| Return the Lazardis Karplus DGFree value for an atom. More... | |
| Real | lk_volume (int const i) const override |
| Return the Lazaridis Karplus volume for an atom. More... | |
| Real | lk_lambda (int const i) const override |
| Return the Lazaridis Karplus "lambda" value (correlation distance) for an atom. More... | |
| Real | memb_lk_dgfree (int const i) const |
| ObjexxFCL::FArray1D< Real > const & | lk_dgrefce () const |
| ObjexxFCL::FArray1D< Real > const & | memb_lk_dgrefce () const |
| void | output_etable (ObjexxFCL::FArray3D< Real > &etable, std::string label, std::ostream &out) override |
| Output Etable: Output etable data in a file in the same format used in input. More... | |
| void | input_etable (ObjexxFCL::FArray3D< Real > &etable, std::string const &label, std::istream &in) override |
| : Input Etable: read in etable from a datafile More... | |
Public Member Functions inherited from core::scoring::etable::Etable | |
| ~Etable () override | |
| Automatically generated virtual destructor for class deriving directly from VirtualBase. More... | |
| Etable (chemical::AtomTypeSetCAP atom_set_in, EtableOptions const &options, std::string const &alternate_parameter_set="") | |
| constructor More... | |
| int | n_atomtypes () const |
| Real | Wradius () const |
| Real | lj_switch_dis2sigma () const |
| Real | etable_disbins () const |
| bool | lj_use_lj_deriv_slope () const |
| Real | lj_slope_intercept () const |
| bool | lj_use_hbond_radii () const |
| bool | lj_use_water_radii () const |
| Real | lj_water_dis () const |
| Real | lj_water_hdis () const |
| Real | lk_min_dis2sigma () const |
| Real | min_dis () const |
| Real | min_dis2 () const |
| bool | add_long_range_damping () const |
| Real | long_range_damping_length () const |
| Real | epsilon () const |
| ObjexxFCL::FArray3D< Real > const & | ljatr () const |
| const access to the arrays More... | |
| ObjexxFCL::FArray3D< Real > const & | ljrep () const |
| ObjexxFCL::FArray3D< Real > const & | dljatr () const |
| const access to the deriv arrays More... | |
| ObjexxFCL::FArray3D< Real > const & | dljrep () const |
| ObjexxFCL::FArray3D< Real > const & | dsolv () const |
| return the solvation derivative table that combines atom1 and atom2's desolvations More... | |
| Real | max_dis () const |
| Real | max_dis2 () const |
| Real | get_safe_max_dis2 () const |
| int | get_bins_per_A2 () const |
| chemical::AtomTypeSetCAP | atom_set () const |
| bool | fa_hatr () const |
| Do hydrogens provide attractive forces or do they only repell? More... | |
| Real | hydrogen_interaction_cutoff2 () const |
| Real | max_heavy_heavy_cutoff () const |
| Real | max_heavy_hydrogen_cutoff () const |
| Real | max_hydrogen_hydrogen_cutoff () const |
| virtual Real | nblist_dis2_cutoff_XX () const |
| The square distance cutoff beyond which any pair of heavy-atoms is guaranteed to have an interaction energy of zero. This function is used by the NeighborList. More... | |
| virtual Real | nblist_dis2_cutoff_XH () const |
| The square distance cutoff beyond which a hydrogen/heavy-atom pair is guaranteed to have an interaction energy of zero. This function is used by the NeighborList. More... | |
| virtual Real | nblist_dis2_cutoff_HH () const |
| The square distance cutoff beyond which any hydrogen/hydrogen pair is guaranteed to have an interaction energy of zero. This function is used by the NeighborList. More... | |
| Real | max_non_hydrogen_lj_radius () const |
| Returns the maximum lj radius for any non-hydrogen atom as defined by the atom-type-set used to create this Etable. More... | |
| Real | max_hydrogen_lj_radius () const |
| Returns the maximum lj radius for any hydrogen atom as defined by the input atom-type-set used to create this Etable. More... | |
| Real | lj_wdepth (int const i) const |
| Return the Lennard-Jones well depth for an atom. More... | |
| Real | lk_inv_lambda2 (int const i) const |
| chemical::AtomType const & | atom_type (int const type) |
| Real | fasol_cubic_poly_far_xlo () const |
| Real | fasol_cubic_poly_far_xhi () const |
| void | interpolated_analytic_etable_evaluation (conformation::Atom const &at1, conformation::Atom const &at2, Real &lj_atrE, Real &lj_repE, Real &fa_solE, Real &d2) const |
| Use the analytic_etable_evaluation function to evaluate the energy of two atoms, but evaluate the function at the old grid points and then interpolate between them the way the existing etable does (in square distance space). Useful for comparing the original etable evaluation with the analytic evaluation. More... | |
| void | analytic_etable_evaluation (conformation::Atom const &at1, conformation::Atom const &at2, Real &lj_atrE, Real &lj_repE, Real &fa_solE, Real &d2) const |
| Use an analytic functional form of the etable to evaluate an atom-pair energy without reading from the enormous and uncachable tables. More... | |
| void | analytic_lk_energy (conformation::Atom const &at1, conformation::Atom const &at2, Real &fa_solE1, Real &fa_solE2) const |
| Use an analytic functional form of the etable to evaluate only the LK atom-pair energy computing the desolvation of atom1 by atom2 separately from the desolvation of atom2 by atom1. More... | |
| void | analytic_etable_derivatives (conformation::Atom const &at1, conformation::Atom const &at2, Real &dljatrE_ddis, Real &dljrepE_ddis, Real &dfasolE_ddis, Real &inv_d) const |
| Analytically evaluate the energy derivatives for a pair of atoms. More... | |
| void | analytic_lk_derivatives (conformation::Atom const &at1, conformation::Atom const &at2, Real &dfasolE1_ddis, Real &dfasolE2_ddis, Real &inv_d) const |
| Analytically evaluate the LK solvation derivatives for a pair of atoms, separately computing the derivative for atom2's desolvation of atom1 (dfasolE1_ddis) and atom1's desolvation of atom2 (dfasolE2_ddis). More... | |
| EtableParamsOnePair const & | analytic_params_for_pair (Size atype1, Size atype2) const |
| Real | get_lj_hbond_OH_donor_dis () const |
| Real | get_lj_hbond_hdis () const |
| Real | get_lj_hbond_dis () const |
Private Member Functions | |
| void | dimension_memb_etable_arrays () |
| void | initialize_from_atomset (chemical::AtomTypeSetCAP atom_set_in) |
| void | smooth_etables () |
| void | modify_pot () |
| Modify Potential: Modify Etable to better treat 0-0, C-C, and H-H interactions. More... | |
| void | make_pairenergy_table () |
| Make Pair Energy Table: Compute Fast Lookup for vdw and solvation energy. More... | |
| void | precalc_etable_coefficients (ObjexxFCL::FArray2< Real > &lj_sigma, ObjexxFCL::FArray1< Real > &lk_inv_lambda2, ObjexxFCL::FArray2< Real > &lk_coeff, ObjexxFCL::FArray2< Real > &memb_lk_coeff, ObjexxFCL::FArray2< Real > &lk_min_dis2sigma_value, ObjexxFCL::FArray2< Real > &memb_lk_min_dis2sigma_value) |
| precalculate non-distance dependent coefficients of energy functions More... | |
| void | calc_etable_value (Real &dis2, int &atype1, int &atype2, Real &solvE1, Real &solvE2, Real &dsolvE1, Real &dsolvE2, ObjexxFCL::FArray2< Real > &lj_sigma, ObjexxFCL::FArray1< Real > &lk_inv_lambda2, ObjexxFCL::FArray2< Real > &lk_coeff, ObjexxFCL::FArray2< Real > &lk_min_dis2sigma_value, Real &memb_solvE1, Real &memb_solvE2, ObjexxFCL::FArray2< Real > &memb_lk_coeff, ObjexxFCL::FArray2< Real > &memb_lk_min_dis2sigma_value, Real &memb_dsolvE1, Real &memb_dsolvE2) |
| calc all etable values given a distance and atom-type pair More... | |
Private Attributes | |
| Real | max_non_hydrogen_lj_radius_ |
| Real | max_hydrogen_lj_radius_ |
| utility::vector1< Real > | lj_radius_ |
| utility::vector1< Real > | lk_dgfree_ |
| utility::vector1< Real > | lk_volume_ |
| utility::vector1< Real > | lk_lambda_ |
| utility::vector1< Real > | memb_lk_dgfree_ |
| ObjexxFCL::FArray1D< Real > | lk_dgrefce_ |
| ObjexxFCL::FArray1D< Real > | memb_lk_dgrefce_ |
| ObjexxFCL::FArray3D< Real > | solv1_ |
| ObjexxFCL::FArray3D< Real > | solv2_ |
| ObjexxFCL::FArray3D< Real > | dsolv1_ |
| ObjexxFCL::FArray3D< Real > | dsolv2_ |
| ObjexxFCL::FArray3D< Real > | memb_solv1_ |
| ObjexxFCL::FArray3D< Real > | memb_solv2_ |
| ObjexxFCL::FArray3D< Real > | memb_dsolv1_ |
| ObjexxFCL::FArray3D< Real > | memb_dsolv2_ |
Table of pre-computed LK membrane solvation energies.
| core::scoring::etable::MembEtable::MembEtable | ( | chemical::AtomTypeSetCAP | atom_set_in, |
| EtableOptions const & | options, | ||
| std::string const & | alternate_parameter_set = "" |
||
| ) |
References dimension_memb_etable_arrays(), initialize_from_atomset(), and make_pairenergy_table().
| core::scoring::etable::MembEtable::MembEtable | ( | MembEtable const & | src | ) |
|
overridedefault |
|
private |
calc all etable values given a distance and atom-type pair
given a pair of atom types and the squared inter-atomic separation distance (and a whole bunch of pre-computed coeffecients), this returns the value of the lennard-jones and lk solvation potentials and their derivatives w.r.t. the separation distance
| [in] | dis2 | - in - atomic separation distance squared |
| [in] | atype1 | - in - chemical type of atom 1 |
| [in] | atype2 | - in - chemical type of atom 2 |
| [out] | atrE | - out - atractive lj energy |
| [out] | d_atrE | - out - d(atrE)/d(dis) |
| [out] | repE | - out - repulsive lj energy |
| [out] | d_repE | - out - d(repE)/d(dis) |
| [out] | solvE1 | - out - lk solvation energy |
| [out] | solvE2 | - out - lk solvation energy |
| [out] | dsolvE | - out - d(solvE1+solvE2)/d(dis) |
| [in] | lj_sigma | - in - for atomtypes i and j: (radius_i+radius_j) |
| [in] | lj_r6_coeff | - in - precalced coefficient on the (1/dis)**6 term in lj |
| [in] | lj_r12_coeff | - in - precalced coefficient on the (1/dis)**12 term in lj |
| [in] | lj_switch_intercept | - in - for close contacts calculate lj from a line with this intercept |
| [in] | lj_switch_slope | - in - for close contacts calculate lj from a line with this slope |
| [in] | lk_inv_lambda2 | - in - surprise! it's the 1/(lambda)**2 term in the lk equation |
| [in] | lk_coeff | - in - precalculation of all non-distance dependent terms outside of the exponential in the lk equation |
| [in] | lk_min_dis2sigma_value | - in - below the min dis2sigma ratio for lk, this value is assigned to the solvation |
References core::scoring::etable::Etable::epsilon(), lj_radius(), core::scoring::etable::Etable::lk_inv_lambda2(), core::scoring::etable::Etable::lk_min_dis2sigma(), core::scoring::etable::Etable::max_dis2(), and core::scoring::etable::Etable::min_dis2().
Referenced by make_pairenergy_table().
|
private |
References dsolv1_, dsolv2_, core::scoring::etable::Etable::etable_disbins(), lj_radius_, lk_dgfree_, lk_dgrefce_, lk_lambda_, lk_volume_, memb_dsolv1_, memb_dsolv2_, memb_lk_dgfree_, memb_lk_dgrefce_, memb_solv1_, memb_solv2_, core::scoring::etable::Etable::n_atomtypes(), solv1_, and solv2_.
Referenced by MembEtable().
|
inlineoverridevirtual |
Return the solvation derivative table for the desolvation of atom1 by atom2.
Reimplemented from core::scoring::etable::Etable.
References dsolv1_.
|
inline |
Return the solvation derivative table that combines atom1 and atom2's desolvations.
References dsolv2_.
|
private |
|
overridevirtual |
: Input Etable: read in etable from a datafile
file first line is <etable> <etable_disbins()> and other lines are <atom type 1> <atomtype 1> <eval bin 1> <eval bin 2>...
Reimplemented from core::scoring::etable::Etable.
References core::scoring::etable::Etable::etable_disbins(), and core::scoring::etable::TR().
Referenced by make_pairenergy_table().
|
inlineoverridevirtual |
set these up in the ctor
Reimplemented from core::scoring::etable::Etable.
References lj_radius_.
Referenced by calc_etable_value(), and precalc_etable_coefficients().
|
inlineoverridevirtual |
Return the Lazardis Karplus DGFree value for an atom.
Reimplemented from core::scoring::etable::Etable.
References lk_dgfree_.
Referenced by precalc_etable_coefficients().
|
inline |
References lk_dgrefce_.
|
inlineoverridevirtual |
Return the Lazaridis Karplus "lambda" value (correlation distance) for an atom.
Reimplemented from core::scoring::etable::Etable.
References lk_lambda_.
Referenced by precalc_etable_coefficients().
|
inlineoverridevirtual |
Return the Lazaridis Karplus volume for an atom.
Reimplemented from core::scoring::etable::Etable.
References lk_volume_.
Referenced by precalc_etable_coefficients().
|
private |
Make Pair Energy Table: Compute Fast Lookup for vdw and solvation energy.
Several energies are precomputed when fullatom mode is initialized and stored in lookup tables to speed fullatom calculation. Currently pre-computed values are the Lennard-Jones van der Waals approximation (lj) and the Lazaridis-Karplus implicit solvation function (lk). For each of these energies the derivative w.r.t. atom pair separation distance is calculated and stored as well. Note that the lj energy is artificially divided into atractive and repulsive components.
References core::scoring::etable::Etable::add_long_range_damping(), calc_etable_value(), dsolv1_, dsolv2_, core::scoring::etable::Etable::etable_disbins(), core::scoring::etable::Etable::get_bins_per_A2(), input_etable(), core::scoring::etable::Etable::lk_inv_lambda2(), core::scoring::etable::Etable::long_range_damping_length(), core::scoring::etable::Etable::max_dis(), core::scoring::etable::Etable::max_dis2(), memb_dsolv1_, memb_dsolv2_, memb_solv1_, memb_solv2_, modify_pot(), core::scoring::etable::Etable::n_atomtypes(), core::conformation::membrane::out, output_etable(), precalc_etable_coefficients(), smooth_etables(), solv1_, solv2_, and core::scoring::etable::TR().
Referenced by MembEtable().
|
inlinevirtual |
Returns the maximum lj radius for any hydrogen atom as defined by the input atom-type-set used to create this Etable.
References max_hydrogen_lj_radius_.
|
inlinevirtual |
Returns the maximum lj radius for any non-hydrogen atom as defined by the atom-type-set used to create this Etable.
References max_non_hydrogen_lj_radius_.
|
inline |
Return the solvation derivative table for the desolvation of atom1 by atom2.
References memb_dsolv1_.
|
inline |
return the solvation derivative table that combines atom1 and atom2's desolvations
References memb_dsolv2_.
|
inline |
References memb_lk_dgfree_.
Referenced by precalc_etable_coefficients().
|
inline |
References memb_lk_dgrefce_.
|
inline |
References memb_solv1_.
|
inline |
References memb_solv2_.
|
private |
Modify Potential: Modify Etable to better treat 0-0, C-C, and H-H interactions.
The Etables are modified in three ways: (1) the LK solvation energy is set to a constant below 4.2A to avoid shifting the position of the minimum on the LJatr potential. in refined decoys the peak in the C C pair distribution function shifts to around 3.8 A from ~4.0A in native structures; the LJatr potential has a minimum at 4.0A but this shifts towards smaller values because of the LK solvation term, which became increasingly favorable at shorter distances (2) the backbone carbonyl oxygen-carbonyl oxygen LJrep term has been modified to become moderately repulsive at distances less than 3.6A. this is to counteract the favorable LJatr between the atoms (which have radii of ~1.4A and so a minimum at ~2.8A; very few counts are observed in the pdb until around 3.2A) which leads to a significant shift in the O O pair distribution function towards smaller values in refined decoys. the repulsion is a temporary proxy for the lack of explicit electrostatic repulsion in the current force field. (3) a third soft repulsion between non polar hydrogens that was also based on comparison of refined decoy to native pdf's is currently commented out as the effects on packing have not been tested. it was observed that the protons tend to pile up at just beyond the point where the repulsion becomes strong, perhaps due to a general tendency to overcontraction because of long range LJatr interactions not compensated by interactions with solvent (which are of course missing)
References core::scoring::etable::Etable::atom_set(), core::pack::dunbrack::c, dsolv1_, dsolv2_, core::scoring::etable::Etable::etable_disbins(), memb_dsolv1_, memb_dsolv2_, memb_solv1_, memb_solv2_, solv1_, solv2_, and core::scoring::etable::TR().
Referenced by make_pairenergy_table().
|
overridevirtual |
Output Etable: Output etable data in a file in the same format used in input.
File first line is <etable> <etable_disbins()> and other lines are <atom type 1> <atomtype 1> <eval bin 1> <eval bin 2>...
Reimplemented from core::scoring::etable::Etable.
References core::scoring::etable::Etable::etable_disbins(), and core::scoring::etable::Etable::n_atomtypes().
Referenced by make_pairenergy_table().
|
private |
precalculate non-distance dependent coefficients of energy functions
| [out] | lj_sigma | - out - for atomtypes i and j: (radius_i+radius_j) |
| [out] | lj_r6_coeff | - out - precalced coefficient on the (1/dis)**6 term in lj |
| [out] | lj_r12_coeff | - out - precalced coefficient on the (1/dis)**12 term in lj |
| [out] | lj_switch_intercept | - out - for close contacts calculate lj from a line with this intercept |
| [out] | lj_switch_slope | - out - for close contacts calculate lj from a line with this slope |
| [out] | lk_inv_lambda2 | - out - surprise! it's the 1/(lambda)**2 term in the lk equation |
| [out] | lk_coeff | - out - precalculation of all non-distance dependent terms outside of the exponential in the lk equation |
| [out] | lk_min_dis2sigma_value | - out - below the min dis2sigma ratio for lk, this value is assigned to the solvation |
References core::scoring::etable::Etable::atom_type(), core::scoring::etable::Etable::get_lj_hbond_dis(), core::scoring::etable::Etable::get_lj_hbond_hdis(), core::chemical::AtomType::is_acceptor(), core::chemical::AtomType::is_donor(), core::scoring::rna::chemical_shift::is_polar_hydrogen(), lj_radius(), core::scoring::etable::Etable::lj_use_hbond_radii(), core::scoring::etable::Etable::lj_use_water_radii(), core::scoring::etable::Etable::lj_water_dis(), core::scoring::etable::Etable::lj_water_hdis(), lk_dgfree(), core::scoring::etable::Etable::lk_inv_lambda2(), lk_lambda(), core::scoring::etable::Etable::lk_min_dis2sigma(), lk_volume(), memb_lk_dgfree(), core::scoring::etable::Etable::n_atomtypes(), and core::scoring::etable::Etable::Wradius().
Referenced by make_pairenergy_table().
|
private |
References dsolv1_, dsolv2_, core::scoring::etable::Etable::etable_disbins(), core::scoring::etable::Etable::get_bins_per_A2(), protocols::mean_field::max(), core::scoring::etable::Etable::max_dis(), memb_dsolv1_, memb_dsolv2_, memb_solv1_, memb_solv2_, protocols::mean_field::min(), core::scoring::etable::Etable::n_atomtypes(), solv1_, solv2_, and core::scoring::etable::TR().
Referenced by make_pairenergy_table().
|
inlineoverridevirtual |
Provide Constnat Access to Arrays.
Reimplemented from core::scoring::etable::Etable.
References solv1_.
|
inlineoverridevirtual |
Reimplemented from core::scoring::etable::Etable.
References solv2_.
|
private |
Referenced by dimension_memb_etable_arrays(), dsolv1(), make_pairenergy_table(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), dsolv2(), make_pairenergy_table(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and lj_radius().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and lk_dgfree().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and lk_dgrefce().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and lk_lambda().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and lk_volume().
|
private |
Referenced by initialize_from_atomset(), and max_hydrogen_lj_radius().
|
private |
Referenced by initialize_from_atomset(), and max_non_hydrogen_lj_radius().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), memb_dsolv1(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), memb_dsolv2(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and memb_lk_dgfree().
|
private |
Referenced by dimension_memb_etable_arrays(), initialize_from_atomset(), and memb_lk_dgrefce().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), memb_solv1(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), memb_solv2(), modify_pot(), and smooth_etables().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), modify_pot(), smooth_etables(), and solv1().
|
private |
Referenced by dimension_memb_etable_arrays(), make_pairenergy_table(), modify_pot(), smooth_etables(), and solv2().
1.8.7