Rosetta Core  2014.35
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
core::scoring::methods::LK_BallEnergy Class Reference

#include <LK_BallEnergy.hh>

Public Types

typedef
ContextIndependentTwoBodyEnergy 
parent
 
typedef chemical::ResidueType ResidueType
 convenience typedefs More...
 
typedef utility::vector1< SizeSizes
 
typedef utility::vector1< VectorVectors
 
- Public Types inherited from core::scoring::methods::ContextIndependentTwoBodyEnergy
typedef ShortRangeTwoBodyEnergy parent
 
- Public Types inherited from core::scoring::methods::ShortRangeTwoBodyEnergy
typedef TwoBodyEnergy parent
 
- Public Types inherited from core::scoring::methods::TwoBodyEnergy
typedef EnergyMethod parent
 
- Public Types inherited from core::scoring::methods::EnergyMethod
typedef
utility::pointer::ReferenceCount 
parent
 

Public Member Functions

 LK_BallEnergy (EnergyMethodOptions const &options)
 HACKING //////////////////////////. More...
 
virtual EnergyMethodOP clone () const
 clone More...
 
 LK_BallEnergy (LK_BallEnergy const &src)
 
virtual void setup_for_packing (pose::Pose &pose, utility::vector1< bool > const &, utility::vector1< bool > const &) const
 
virtual void setup_for_scoring (pose::Pose &pose, ScoreFunction const &) const
 
virtual void prepare_rotamers_for_packing (pose::Pose const &pose, conformation::RotamerSetBase &rotamer_set) const
 
virtual void update_residue_for_packing (pose::Pose &, Size resid) const
 ensure this function gets called. The default behavior is to do nothing. More...
 
virtual void setup_for_derivatives (pose::Pose &pose, ScoreFunction const &scfxn) const
 I AM HAVING A SLEEPOVER. More...
 
Real calculate_lk_desolvation_of_single_atom_by_residue (Size const atom1, conformation::Residue const &rsd1, conformation::Residue const &rsd2)
 helper function for outside use More...
 
Real calculate_lk_desolvation_of_single_atom_by_residue_no_count_pair (Size const atom1, conformation::Residue const &rsd1, conformation::Residue const &rsd2)
 
void calculate_lk_ball_atom_energies (Size const atom1, conformation::Residue const &rsd1, Vectors const &atom1_waters, Size const atom2, conformation::Residue const &rsd2, Real &lk_desolvation_of_atom1_by_atom2, Real &lk_ball_desolvation_of_atom1_by_atom2) const
 get the lk-ball desolvation of atom1 by atom2, and the unoriented lk desolvation of atom1 by atom2 More...
 
void calculate_lk_ball_atom_energies_cp (Size const atom1, conformation::Residue const &rsd1, Vectors const &atom1_waters, Size const atom2, conformation::Residue const &rsd2, etable::count_pair::CPCrossoverBehavior const &cp_crossover, Real &lk_desolvation_of_atom1_by_atom2, Real &lk_ball_desolvation_of_atom1_by_atom2) const
 
Real get_lk_fractional_contribution_for_single_water (Vector const &atom2_xyz, Size const atom2_type, Vector const &atom1_water) const
 
void eval_desolvation_derivs_no_count_pair (Real const d2, Size const atom1, conformation::Residue const &rsd1, Size const atom2, conformation::Residue const &rsd2, Real &atom1_lk_desolvation_by_atom2_deriv, Real &atom2_lk_desolvation_by_atom1_deriv)
 
virtual void eval_residue_pair_derivatives (conformation::Residue const &rsd1, conformation::Residue const &rsd2, ResSingleMinimizationData const &, ResSingleMinimizationData const &, ResPairMinimizationData const &min_data, pose::Pose const &pose, EnergyMap const &weights, utility::vector1< DerivVectorPair > &r1_atom_derivs, utility::vector1< DerivVectorPair > &r2_atom_derivs) const
 
virtual void residue_pair_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &, EnergyMap &emap) const
 This guy is used during scoring if we are not minimizing. More...
 
void residue_pair_energy (conformation::Residue const &rsd1, LKB_ResidueInfo const &rsd1_info, conformation::Residue const &rsd2, LKB_ResidueInfo const &rsd2_info, EnergyMap &emap) const
 
void accumulate_single_atom_contributions (Size const atom1, Size const atom1_type_index, Vectors const &atom1_waters, utility::vector1< Real > const &atom1_wts, conformation::Residue const &rsd1, Size const atom2_type_index, Vector const &atom2_xyz, Real const lk_desolvation_of_atom1_by_atom2, EnergyMap &emap) const
 
void setup_for_minimizing_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &scorefxn, kinematics::MinimizerMapBase const &min_map, ResSingleMinimizationData &resdata) const
 Called at the beginning of minimization, allowing this energy method to cache data pertinent for a single residue in the the ResPairMinimizationData that is used for a particular residue in the context of a particular Pose. This base class provides a noop implementation for this function if there is nothing that the derived class needs to perform in this setup phase. More...
 
void setup_for_minimizing_for_residue_pair (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &, ScoreFunction const &scorefxn, kinematics::MinimizerMapBase const &min_map, ResSingleMinimizationData const &res1data, ResSingleMinimizationData const &res2data, ResPairMinimizationData &pairdata) const
 Called at the beginning of minimization, allowing this energy method to cache data pertinent for a single residue in the the ResPairMinimizationData that is used for a particular residue in the context of a particular Pose. This base class provides a noop implementation for this function if there is nothing that the derived class needs to perform in this setup phase. More...
 
bool use_extended_residue_pair_energy_interface () const
 Rely on the extended version of the residue_pair_energy function during score-function evaluation in minimization? The extended version (below) takes a ResPairMinimizationData in which the derived base class has (or should have) cached a piece of data that will make residue-pair energy evaluation faster than its absense (e.g. a neighbor list). Derived energy methods should return 'true' from this function to use the extended interface. The default method implemented in this class returns 'false'. More...
 
void residue_pair_energy_ext (conformation::Residue const &rsd1, conformation::Residue const &rsd2, ResPairMinimizationData const &pairdata, pose::Pose const &, ScoreFunction const &, EnergyMap &emap) const
 Evaluate the two-body energies for a particular residue, in the context of a given Pose, and with the help of a piece of cached data for minimization, increment those two body energies into the input EnergyMap. The calling function must guarantee that this EnergyMethod has had the opportunity to update the input ResPairMinimizationData object for the given residues in a call to setup_for_minimizing_for_residue_pair before this function is invoked. This function should not be called unless the use_extended_residue_pair_energy_interface() method returns "true". Default implementation provided by this base class calls utility::exit(). More...
 
bool minimize_in_whole_structure_context (pose::Pose const &) const
 Should this EnergyMethod have score and derivative evaluation evaluated only in the context of the whole Pose, or can it be included in a decomposed manner for a residue or a set of residue-pairs that are not part of the Pose that's serving as their context? The default method implemented in the base class returns true in order to grandfather in EnergyMethods that have not had their derivatives changed to take advantage of the new derivative-evaluation machinery. Methods that return "true" will not have their residue-energy(-ext) / residue-pair-energy(-ext) methods invoked by the ScoreFunction during its traversal of the MinimizationGraph, and instead will be asked to perform all their work during finalize_total_energies(). Similarly, they will be expected to perform all their work during eval_atom_deriv() instead of during the ScoreFunction's traversal of the MinimizationGraph for derivative evaluation. IMPORTANT: Methods that return "true" cannot be included in RTMin. More...
 
bool requires_a_setup_for_scoring_for_residue_opportunity (pose::Pose const &) const
 Does this EnergyMethod require the opportunity to examine the residue before scoring begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residues that are uninterested in doing so. More...
 
void setup_for_scoring_for_residue (conformation::Residue const &rsd, pose::Pose const &, ScoreFunction const &sfxn, ResSingleMinimizationData &resdata) const
 Do any setup work should the coordinates of this residue (who is still guaranteed to be of the same residue type as when setup_for_minimizing_for_residue was called) have changed so dramatically as to possibly require some amount of setup work before scoring should proceed. This function is used for both intra-residue setup and pre-inter-residue setup. More...
 
bool requires_a_setup_for_derivatives_for_residue_opportunity (pose::Pose const &) const
 Does this EnergyMethod require the opportunity to examine each residue before derivative evaluation begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residue pairs that are uninterested in doing so. More...
 
void setup_for_derivatives_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, ResSingleMinimizationData &min_data) const
 Do any setup work necessary before evaluating the derivatives for this residue. More...
 
virtual bool defines_intrares_energy (EnergyMap const &) const
 Two body energies are able to define intra-residue energies, and to do so only in the presence of certain non-zero weights. The ScoreFunction will hand over its weight set as it asks whether the energy method defines an intraresidue energy or not. More...
 
virtual void eval_intrares_energy (conformation::Residue const &, pose::Pose const &, ScoreFunction const &, EnergyMap &) const
 Evaluate the intra-residue energy for a given residue. More...
 
virtual Distance atomic_interaction_cutoff () const
 how far apart must two heavy atoms be to have a zero interaction energy? More...
 
void indicate_required_context_graphs (utility::vector1< bool > &context_graphs_required) const
 Indicate in the context-graphs-required list which context-graphs this energy method requires that the Pose maintain when doing neighbor evaluation. Context graphs are allowed. More...
 
Real eval_lk_fraction (Real const d2_delta) const
 
Real eval_d_lk_fraction_dr_over_r (Real const d2_delta) const
 
Real get_lk_fractional_contribution (Vector const &atom2_xyz, Size const atom2_type_index, Vectors const &atom1_waters, Size &closest_water, Real &closest_water_dis2) const
 
Real get_lk_fractional_contribution (Vector const &atom2_xyz, Size const atom2_type_index, Vectors const &atom1_waters) const
 
Real eval_lk_ball_fraction_deriv (Vector const &atom2_xyz, Size const atom2_type_index, Vectors const &atom1_waters, bool const evaluate_deriv, Vector &f1, Vector &f2) const
 for external use More...
 
virtual void evaluate_rotamer_pair_energies (conformation::RotamerSetBase const &set1, conformation::RotamerSetBase const &set2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap const &weights, ObjexxFCL::FArray2D< core::PackerEnergy > &energy_table) const
 Batch computation of rotamer pair energies. Need not be overriden in derived class – by default, iterates over all pairs of rotamers, and calls derived class's residue_pair_energy method. Since short range rotamer pairs may not need calculation, the default method looks at blocks of residue type pairs and only calls the residue_pair_energy method if the rotamer pairs are within range. More...
 
virtual void evaluate_rotamer_background_energies (conformation::RotamerSetBase const &set, conformation::Residue const &residue, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap const &weights, utility::vector1< core::PackerEnergy > &energy_vector) const
 Batch computation of rotamer/background energies. Need not be overriden in derived class – by default, iterates over all rotamers in the set, and calls derived class's residue_pair_energy method for each one against the background rotamer Since short range rotamer pairs may not need calculation, the default method looks at blocks of residue type pairs and only calls the residue_pair_energy method if the rotamer pairs are within range. More...
 
void sum_deriv_contributions_for_atom_pair_one_way (Size const atom1, conformation::Residue const &rsd1, Vectors const &atom1_waters, utility::vector1< Real > const &atom1_wts, Size const atom2, conformation::Residue const &rsd2, scoring::EnergyMap const &weights, Real const weight_factor, Real const d2, Vector &F1, Vector &F2) const
 
void sum_deriv_contributions_for_atom_pair (Size const atom1, conformation::Residue const &rsd1, LKB_ResidueInfo const &rsd1_info, Size const atom2, conformation::Residue const &rsd2, LKB_ResidueInfo const &rsd2_info, pose::Pose const &pose, scoring::EnergyMap const &weights, Real const cp_weight, Vector &F1, Vector &F2) const
 
void setup_d2_bounds ()
 
- Public Member Functions inherited from core::scoring::methods::ContextIndependentTwoBodyEnergy
 ContextIndependentTwoBodyEnergy (EnergyMethodCreatorOP)
 Constructor with an EnergyMethodCreator to inform the ancestor EnergyMethod class which ScoreTypes this EnergyMethod is responsible for computing. More...
 
virtual ~ContextIndependentTwoBodyEnergy ()
 
EnergyMethodType method_type () const
 Return one of the 7 kinds of energy methods that exist: e.g. context-dependent-one-body vs whole-structure. More...
 
- Public Member Functions inherited from core::scoring::methods::ShortRangeTwoBodyEnergy
 ShortRangeTwoBodyEnergy (EnergyMethodCreatorOP)
 Constructor with EnergyMethodCreator to provide to the EnergyMethod grandparent the list of the ScoreTypes this EnergyMethod is responsible for computing. More...
 
virtual ~ShortRangeTwoBodyEnergy ()
 
virtual bool divides_backbone_and_sidechain_energetics () const
 A derived class should return true for this function if it implements its own versions of the backbone_backbone_energy, backbone_sidechain_energy and sidechain_sidechain_energy functions. The default sidechain_sidechain_energy implemented by the TwoBodyEnergy base class calls residue_pair_energy. If the derived class implements its own versions of these functions, then calling code may avoid calling it on pairs of residues that are "provably distant" based on a pair of bounding spheres for a sidechains and backbones and this method's atomic_interaction_cutoff energy method. More...
 
virtual void evaluate_rotamer_background_energy_maps (conformation::RotamerSetBase const &set, conformation::Residue const &residue, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap const &weights, utility::vector1< EnergyMap > &emaps) const
 Batch computation of rotamer/background energies. Need not be overriden in derived class – by default, iterates over all rotamers in the set, and calls derived class's residue_pair_energy method for each one against the background rotamer Since short range rotamer pairs may not need calculation, the default method looks at blocks of residue type pairs and only calls the residue_pair_energy method if the rotamer pairs are within range. More...
 
- Public Member Functions inherited from core::scoring::methods::TwoBodyEnergy
 TwoBodyEnergy (EnergyMethodCreatorOP)
 Constructor, requiring an EnergyMethodCreator. No default constructor provided to force EnergyMethod writers to provide an energy-method-creator at construction time. More...
 
virtual ~TwoBodyEnergy ()
 
virtual bool defines_score_for_residue_pair (conformation::Residue const &res1, conformation::Residue const &res2, bool res_moving_wrt_eachother) const
 During minimization, energy methods are allowed to decide that they say nothing about a particular residue pair (e.g. no non-zero energy) and as a result they will not be queried for a derivative or an energy. The default implementation returns "true" for all residue pairs. Context-dependent two-body energies have the option of behaving as if they are context-independent by returning "false" for residue pairs that do no move wrt each other. More...
 
virtual bool requires_a_setup_for_scoring_for_residue_pair_opportunity (pose::Pose const &pose) const
 Does this EnergyMethod require the opportunity to examine each residue pair before scoring begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residue pairs that are uninterested in doing so. More...
 
virtual void setup_for_scoring_for_residue_pair (conformation::Residue const &rsd1, conformation::Residue const &rsd2, ResSingleMinimizationData const &minsingle_data1, ResSingleMinimizationData const &minsingle_data2, pose::Pose const &pose, ScoreFunction const &sfxn, ResPairMinimizationData &data_cache) const
 Do any setup work should the coordinates of a pair of residues, who are still guaranteed to be of the same residue type as when setup_for_minimizing_for_residue was called, have changed so dramatically as to possibly require some amount of setup work before scoring should proceed. More...
 
virtual bool requires_a_setup_for_derivatives_for_residue_pair_opportunity (pose::Pose const &pose) const
 Does this EnergyMethod require the opportunity to examine each residue pair before derivative evaluation begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residue pairs that are uninterested in doing so. More...
 
virtual void setup_for_derivatives_for_residue_pair (conformation::Residue const &rsd1, conformation::Residue const &rsd2, ResSingleMinimizationData const &minsingle_data1, ResSingleMinimizationData const &minsingle_data2, pose::Pose const &pose, ScoreFunction const &sfxn, ResPairMinimizationData &data_cache) const
 Do any setup work necessary before evaluating the derivatives for this residue pair. More...
 
virtual void backbone_backbone_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const
 Evaluate the interaction between the backbone of rsd1 and the backbone of rsd2 and accumulate the unweighted energies. The sum bb_bb(r1,r2) + bb_sc(r1,r2) + bb_sc(r2,r1) + sc_sc( r1,r2) must equal the weighted result of a call to residue_pair_energy. By default, bb_bb & bb_sc return 0 and sc_sc returns residue pair energy. More...
 
virtual void backbone_sidechain_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const
 Evaluate the interaction between the backbone of rsd1 and the sidechain of rsd2 and accumulate the unweighted energies. The sum bb_bb(r1,r2) + bb_sc(r1,r2) + bb_sc(r2,r1) + sc_sc( r1,r2) must equal the unweighted result of a call to residue_pair_energy. By default, bb_bb & bb_sc return 0 and sc_sc returns residue pair energy. More...
 
virtual void sidechain_sidechain_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const
 Evaluate the interaction between the sidechain of rsd1 and the sidechain of rsd2 and accumulate the unweighted energies. The sum bb_bb(r1,r2) + bb_sc(r1,r2) + bb_sc(r2,r1) + sc_sc( r1,r2) must equal the unweighted result of a call to residue_pair_energy. By default, bb_bb & bb_sc return 0 and sc_sc returns residue pair energy. More...
 
virtual bool defines_intrares_energy_for_residue (conformation::Residue const &res) const
 If a score function defines no intra-residue scores for a particular residue, then it may opt-out of being asked during minimization to evaluate the score for this residue. More...
 
virtual bool use_extended_intrares_energy_interface () const
 Derived classes wishing to invoke the alternate, extended interface for eval_intrares_energy during minimization routines should return "true" when this function is invoked on them. This class provides a default "return false" implementation so that classes not desiring to take advantage of this alternate interface need to do nothing. More...
 
virtual void eval_intrares_energy_ext (conformation::Residue const &rsd, ResSingleMinimizationData const &data_cache, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const
 Evaluate the intra-residue energy for a given residue using the data held within the ResSingleMinimizationData object. This function should be invoked only on derived instances of this class if they return "true" in a call to their use_extended_intrares_energy_interface method. This base class provides a noop implementation for classes that do not implement this interface, or that do not define intrares energies. More...
 
virtual void eval_intrares_derivatives (conformation::Residue const &rsd, ResSingleMinimizationData const &min_data, pose::Pose const &pose, EnergyMap const &weights, utility::vector1< DerivVectorPair > &atom_derivs) const
 Evaluate the derivative for the intra-residue component of this energy method for all the atoms in a residue in the context of a particular pose, and increment the F1 and F2 vectors held in the atom_derivs vector1. This base class provides a default noop implementation of this function. The calling function must guarantee that this EnergyMethod has had the opportunity to update the input ResSingleMinimizationData object for the given residue in a call to prepare_for_minimization before this function is invoked. The calling function must also guarantee that there are at least as many entries in the atom_derivs vector1 as there are atoms in the input rsd. More...
 
virtual bool defines_intrares_dof_derivatives (pose::Pose const &p) const
 Use the dof_derivative interface for this energy method when calculating derivatives? It is possible to define both dof_derivatives and atom-derivatives; they are not mutually exclusive. More...
 
virtual Real eval_intraresidue_dof_derivative (conformation::Residue const &rsd, ResSingleMinimizationData const &min_data, id::DOF_ID const &dof_id, id::TorsionID const &torsion_id, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap const &weights) const
 Evaluate the DOF derivative for a particular residue. The Pose merely serves as context, and the input residue is not required to be a member of the Pose. More...
 
virtual void bump_energy_full (conformation::Residue const &, conformation::Residue const &, pose::Pose const &, ScoreFunction const &, EnergyMap &) const
 
virtual void bump_energy_backbone (conformation::Residue const &, conformation::Residue const &, pose::Pose const &, ScoreFunction const &, EnergyMap &) const
 
virtual void evaluate_rotamer_intrares_energies (conformation::RotamerSetBase const &set, pose::Pose const &pose, ScoreFunction const &sfxn, utility::vector1< core::PackerEnergy > &energies) const
 Batch computation of rotamer intrares energies. Need not be overriden in derived class – by default, iterates over all rotamers, and calls derived class's intrares _energy method. More...
 
virtual void evaluate_rotamer_intrares_energy_maps (conformation::RotamerSetBase const &set, pose::Pose const &pose, ScoreFunction const &sfxn, utility::vector1< EnergyMap > &emaps) const
 Batch computation of rotamer intrares energy map. Need not be overriden in derived class – by default, iterates over all rotamers, and calls derived class's intrares _energy method. More...
 
- Public Member Functions inherited from core::scoring::methods::EnergyMethod
 EnergyMethod (EnergyMethodCreatorOP creator)
 Constructor with EnergyMethodCreator, which lists the score types that this energy method is responsible for. More...
 
 EnergyMethod (EnergyMethod const &src)
 Copy constructor copies over the score types of the source. More...
 
virtual ~EnergyMethod ()
 
virtual void setup_for_minimizing (pose::Pose &, ScoreFunction const &, kinematics::MinimizerMapBase const &) const
 Called at the beginning of atom tree minimization, this method allows the derived class the opportunity to initialize pertinent data that will be used during minimization. During minimzation, the chemical structure of the pose is constant, so assumptions on the number of atoms per residue and their identities are safe so long as the pose's Energies object's "use_nblist()" method returns true. More...
 
virtual void finalize_after_derivatives (pose::Pose &, ScoreFunction const &) const
 called at the end of derivatives evaluation More...
 
virtual bool defines_high_order_terms (pose::Pose const &) const
 Should this EnergyMethod have score and derivative evaluation evaluated both in the context of the whole Pose and in the context of residue or residue-pairs? This covers scoring terms like env-smooth wherein the CBeta's get derivatives for increasing the neighbor counts for surrounding residues, and terms like constraints, which are definable on arbitrary number of residues (e.g. more than 2); both of these terms could be used in RTMin, and both should use the residue and residue-pair evaluation scheme with the MinimizationGraph for the majority of the work they do. (Now, high-order constraints (3-body or above) will not be properly evaluated within RTMin.). The default implementation returns "false". More...
 
virtual void eval_atom_derivative (id::AtomID const &id, pose::Pose const &pose, kinematics::DomainMap const &domain_map, ScoreFunction const &sfxn, EnergyMap const &emap, Vector &F1, Vector &F2) const
 Evaluate the XYZ derivative for an atom in the pose. Called during the atomtree derivative calculation, atom_tree_minimize.cc, through the ScoreFunction::eval_atom_derivative intermediary. F1 and F2 should not zeroed, rather, this class should accumulate its contribution from this atom's XYZ derivative. More...
 
virtual void finalize_total_energy (pose::Pose &pose, ScoreFunction const &sfxn, EnergyMap &total_energy) const
 called by the ScoreFunction at the end of energy evaluation. The derived class has the opportunity to accumulate a score into the pose's total_energy EnergyMap. WholeStructure energies operate within this method; any method using a NeighborList during minimization would also operate within this function call. More...
 
ScoreTypes const & score_types () const
 Returns the score types that this energy method computes. More...
 

Private Member Functions

virtual core::Size version () const
 HACK. More...
 

Private Attributes

etable::Etable const & etable_
 
ObjexxFCL::FArray3D< Real > const & solv1_
 these guys are taken from the etable More...
 
ObjexxFCL::FArray3D< Real > const & solv2_
 
ObjexxFCL::FArray3D< Real > const & dsolv1_
 
Real const safe_max_dis2_
 
Real const etable_bins_per_A2_
 
bool const use_intra_dna_cp_crossover_4_
 
utility::vector1< Reald2_low_
 
utility::vector1< boolatom_type_is_charged_
 
utility::vector1< Reallk_ball_prefactor_
 

Static Private Attributes

static Real const ramp_width_A2_
 

Additional Inherited Members

- Protected Member Functions inherited from core::scoring::methods::EnergyMethod
void set_score_types (EnergyMethodCreatorOP creator)
 Override the entirety of the score types list if they were initialized incorrectly in a parent's constructor. More...
 

Member Typedef Documentation

convenience typedefs

Constructor & Destructor Documentation

core::scoring::methods::LK_BallEnergy::LK_BallEnergy ( EnergyMethodOptions const &  options)

HACKING //////////////////////////.

References setup_d2_bounds().

Referenced by clone().

core::scoring::methods::LK_BallEnergy::LK_BallEnergy ( LK_BallEnergy const &  src)

References setup_d2_bounds().

Member Function Documentation

void core::scoring::methods::LK_BallEnergy::accumulate_single_atom_contributions ( Size const  atom1,
Size const  atom1_type_index,
Vectors const &  atom1_waters,
utility::vector1< Real > const &  atom1_wts,
conformation::Residue const &  rsd1,
Size const  atom2_type_index,
Vector const &  atom2_xyz,
Real const  lk_desolvation_of_atom1_by_atom2,
EnergyMap emap 
) const
Distance core::scoring::methods::LK_BallEnergy::atomic_interaction_cutoff ( ) const
virtual

how far apart must two heavy atoms be to have a zero interaction energy?

If hydrogen atoms interact at the same range as heavy atoms, then this distance should build-in a 2 * max-bound-h-distance-cutoff buffer. There is an improper mixing here between run-time aquired chemical knowledge (max-bound-h-distance-cutoff) and compile time aquired scoring knowledge (max atom cutoff); this could be resolved by adding a boolean uses_hydrogen_interaction_distance() to the SRTBEnergy class along with a method of the ChemicalManager max_bound_h_distance_cutoff().

Implements core::scoring::methods::ShortRangeTwoBodyEnergy.

References etable_, and core::scoring::etable::Etable::max_dis().

void core::scoring::methods::LK_BallEnergy::calculate_lk_ball_atom_energies ( Size const  atom1,
conformation::Residue const &  rsd1,
Vectors const &  atom1_waters,
Size const  atom2,
conformation::Residue const &  rsd2,
Real lk_desolvation_of_atom1_by_atom2,
Real lk_ball_desolvation_of_atom1_by_atom2 
) const
void core::scoring::methods::LK_BallEnergy::calculate_lk_ball_atom_energies_cp ( Size const  atom1,
conformation::Residue const &  rsd1,
Vectors const &  atom1_waters,
Size const  atom2,
conformation::Residue const &  rsd2,
etable::count_pair::CPCrossoverBehavior const &  cp_crossover,
Real lk_desolvation_of_atom1_by_atom2,
Real lk_ball_desolvation_of_atom1_by_atom2 
) const
Real core::scoring::methods::LK_BallEnergy::calculate_lk_desolvation_of_single_atom_by_residue ( Size const  atom1,
conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2 
)
Real core::scoring::methods::LK_BallEnergy::calculate_lk_desolvation_of_single_atom_by_residue_no_count_pair ( Size const  atom1,
conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2 
)
EnergyMethodOP core::scoring::methods::LK_BallEnergy::clone ( ) const
virtual
virtual bool core::scoring::methods::LK_BallEnergy::defines_intrares_energy ( EnergyMap const &  weights) const
inlinevirtual

Two body energies are able to define intra-residue energies, and to do so only in the presence of certain non-zero weights. The ScoreFunction will hand over its weight set as it asks whether the energy method defines an intraresidue energy or not.

For example, the Etable method defines intra-residue energies only when one or more of the fa_intra_{atr,rep,sol} weights are non-zero.

Implements core::scoring::methods::TwoBodyEnergy.

Real core::scoring::methods::LK_BallEnergy::eval_d_lk_fraction_dr_over_r ( Real const  d2_delta) const
void core::scoring::methods::LK_BallEnergy::eval_desolvation_derivs_no_count_pair ( Real const  d2,
Size const  atom1,
conformation::Residue const &  rsd1,
Size const  atom2,
conformation::Residue const &  rsd2,
Real atom1_lk_desolvation_by_atom2_deriv,
Real atom2_lk_desolvation_by_atom1_deriv 
)
virtual void core::scoring::methods::LK_BallEnergy::eval_intrares_energy ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
inlinevirtual

Evaluate the intra-residue energy for a given residue.

Implements core::scoring::methods::TwoBodyEnergy.

Real core::scoring::methods::LK_BallEnergy::eval_lk_ball_fraction_deriv ( Vector const &  atom2_xyz,
Size const  atom2_type,
Vectors const &  atom1_waters,
bool const  evaluate_deriv,
Vector f1,
Vector f2 
) const

for external use

Note that we calculate the lk_ball_iso derivative as well as the lk_ball derivative...

Derivatives are only included for heavyatoms.

For a non-polar heavyatom, the derivs are for all polar atoms that it desolvates

For a polar heavyatom, derivs are for all polar atoms that it desolvates as well as all atoms it's being desolvated by.

Given an atom desolvating a polar atom: the lk_ball_iso deriv is the standard lk deriv, but make sure we use the correct array! (see LK_hack code)

the lk_ball score = wt * lk_polar, so the derivs have two components. One looks like wt * lk_polar deriv contribution. The other looks like the lk_polar term * the derivative of the wt. The derivative of the wt is found by getting the closest water, taking the derivative of the wt term wrt distance and using f1/f2 contributions for the desolvating atom xyz and the water xyz.

Compute the f1 and f2 vectors for the derivative of the lk_fraction term for atom2 desolvating atom1

Note
f1 and f2 are zeroed and filled within this function, rather than being accumulated into
We pretend that atom1 is the "moving" atom Should eliminate code duplication with next routine... currently this is for outside use.

References numeric::xyzVector< class >::clear(), numeric::xyzVector< class >::cross(), eval_d_lk_fraction_dr_over_r(), and get_lk_fractional_contribution().

Referenced by core::scoring::methods::apply_lk_ball_fraction_weight_for_hbonds().

Real core::scoring::methods::LK_BallEnergy::eval_lk_fraction ( Real const  d2_delta) const

Stolen from LK_SigmoidalFunc in lk_hack d2_delta = d2 - d2_low

References ramp_width_A2_.

Referenced by get_lk_fractional_contribution(), and get_lk_fractional_contribution_for_single_water().

void core::scoring::methods::LK_BallEnergy::eval_residue_pair_derivatives ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
ResSingleMinimizationData const &  res1data,
ResSingleMinimizationData const &  res2data,
ResPairMinimizationData const &  min_data,
pose::Pose const &  pose,
EnergyMap const &  weights,
utility::vector1< DerivVectorPair > &  r1_atom_derivs,
utility::vector1< DerivVectorPair > &  r2_atom_derivs 
) const
virtual
void core::scoring::methods::LK_BallEnergy::evaluate_rotamer_background_energies ( conformation::RotamerSetBase const &  set,
conformation::Residue const &  residue,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap const &  weights,
utility::vector1< core::PackerEnergy > &  energy_vector 
) const
virtual

Batch computation of rotamer/background energies. Need not be overriden in derived class – by default, iterates over all rotamers in the set, and calls derived class's residue_pair_energy method for each one against the background rotamer Since short range rotamer pairs may not need calculation, the default method looks at blocks of residue type pairs and only calls the residue_pair_energy method if the rotamer pairs are within range.

Reimplemented from core::scoring::methods::ShortRangeTwoBodyEnergy.

References core::scoring::EMapVector::dot(), core::conformation::RotamerSetBase::get_n_residue_types(), core::conformation::RotamerSetBase::get_n_rotamers_for_residue_type(), core::conformation::RotamerSetBase::get_residue_type_begin(), core::scoring::methods::LKB_ResidueInfo::has_waters(), residue_pair_energy(), core::scoring::methods::retrieve_lkb_residue_info(), core::scoring::methods::retrieve_lkb_rotamer_set_info(), core::conformation::RotamerSetBase::rotamer(), and core::conformation::Residue::seqpos().

void core::scoring::methods::LK_BallEnergy::evaluate_rotamer_pair_energies ( conformation::RotamerSetBase const &  set1,
conformation::RotamerSetBase const &  set2,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap const &  weights,
ObjexxFCL::FArray2D< core::PackerEnergy > &  energy_table 
) const
virtual

Batch computation of rotamer pair energies. Need not be overriden in derived class – by default, iterates over all pairs of rotamers, and calls derived class's residue_pair_energy method. Since short range rotamer pairs may not need calculation, the default method looks at blocks of residue type pairs and only calls the residue_pair_energy method if the rotamer pairs are within range.

Reimplemented from core::scoring::methods::ShortRangeTwoBodyEnergy.

References core::scoring::EMapVector::dot(), core::conformation::RotamerSetBase::get_n_residue_types(), core::conformation::RotamerSetBase::get_n_rotamers_for_residue_type(), core::conformation::RotamerSetBase::get_residue_type_begin(), residue_pair_energy(), core::scoring::methods::retrieve_lkb_rotamer_set_info(), and core::conformation::RotamerSetBase::rotamer().

Real core::scoring::methods::LK_BallEnergy::get_lk_fractional_contribution ( Vector const &  atom2_xyz,
Size const  atom2_type,
Vectors const &  atom1_waters,
Size closest_water,
Real closest_water_d2_delta 
) const
Real core::scoring::methods::LK_BallEnergy::get_lk_fractional_contribution ( Vector const &  atom2_xyz,
Size const  atom2_type_index,
Vectors const &  atom1_waters 
) const
Real core::scoring::methods::LK_BallEnergy::get_lk_fractional_contribution_for_single_water ( Vector const &  atom2_xyz,
Size const  atom2_type,
Vector const &  atom1_water 
) const
void core::scoring::methods::LK_BallEnergy::indicate_required_context_graphs ( utility::vector1< bool > &  context_graphs_required) const
virtual

Indicate in the context-graphs-required list which context-graphs this energy method requires that the Pose maintain when doing neighbor evaluation. Context graphs are allowed.

Implements core::scoring::methods::EnergyMethod.

bool core::scoring::methods::LK_BallEnergy::minimize_in_whole_structure_context ( pose::Pose const &  ) const
virtual

Should this EnergyMethod have score and derivative evaluation evaluated only in the context of the whole Pose, or can it be included in a decomposed manner for a residue or a set of residue-pairs that are not part of the Pose that's serving as their context? The default method implemented in the base class returns true in order to grandfather in EnergyMethods that have not had their derivatives changed to take advantage of the new derivative-evaluation machinery. Methods that return "true" will not have their residue-energy(-ext) / residue-pair-energy(-ext) methods invoked by the ScoreFunction during its traversal of the MinimizationGraph, and instead will be asked to perform all their work during finalize_total_energies(). Similarly, they will be expected to perform all their work during eval_atom_deriv() instead of during the ScoreFunction's traversal of the MinimizationGraph for derivative evaluation. IMPORTANT: Methods that return "true" cannot be included in RTMin.

Reimplemented from core::scoring::methods::EnergyMethod.

void core::scoring::methods::LK_BallEnergy::prepare_rotamers_for_packing ( pose::Pose const &  ,
conformation::RotamerSetBase  
) const
virtual
bool core::scoring::methods::LK_BallEnergy::requires_a_setup_for_derivatives_for_residue_opportunity ( pose::Pose const &  pose) const
virtual

Does this EnergyMethod require the opportunity to examine each residue before derivative evaluation begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residue pairs that are uninterested in doing so.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

bool core::scoring::methods::LK_BallEnergy::requires_a_setup_for_scoring_for_residue_opportunity ( pose::Pose const &  pose) const
virtual

Does this EnergyMethod require the opportunity to examine the residue before scoring begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residues that are uninterested in doing so.

Default return-false implementation.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

void core::scoring::methods::LK_BallEnergy::residue_pair_energy ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  ,
EnergyMap emap 
) const
virtual
void core::scoring::methods::LK_BallEnergy::residue_pair_energy ( conformation::Residue const &  rsd1,
LKB_ResidueInfo const &  rsd1_info,
conformation::Residue const &  rsd2,
LKB_ResidueInfo const &  rsd2_info,
EnergyMap emap 
) const
void core::scoring::methods::LK_BallEnergy::residue_pair_energy_ext ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
ResPairMinimizationData const &  min_data,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
virtual

Evaluate the two-body energies for a particular residue, in the context of a given Pose, and with the help of a piece of cached data for minimization, increment those two body energies into the input EnergyMap. The calling function must guarantee that this EnergyMethod has had the opportunity to update the input ResPairMinimizationData object for the given residues in a call to setup_for_minimizing_for_residue_pair before this function is invoked. This function should not be called unless the use_extended_residue_pair_energy_interface() method returns "true". Default implementation provided by this base class calls utility::exit().

Reimplemented from core::scoring::methods::TwoBodyEnergy.

References core::scoring::methods::LKB_ResPairMinData::res1_data(), core::scoring::methods::LKB_ResPairMinData::res2_data(), residue_pair_energy(), and core::scoring::methods::retrieve_lkb_pairdata().

void core::scoring::methods::LK_BallEnergy::setup_d2_bounds ( )
void core::scoring::methods::LK_BallEnergy::setup_for_derivatives ( pose::Pose pose,
ScoreFunction const &  scfxn 
) const
virtual
void core::scoring::methods::LK_BallEnergy::setup_for_derivatives_for_residue ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
ResSingleMinimizationData min_data 
) const
virtual

Do any setup work necessary before evaluating the derivatives for this residue.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

References setup_for_scoring_for_residue().

void core::scoring::methods::LK_BallEnergy::setup_for_minimizing_for_residue ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
kinematics::MinimizerMapBase const &  minmap,
ResSingleMinimizationData res_data_cache 
) const
virtual

Called at the beginning of minimization, allowing this energy method to cache data pertinent for a single residue in the the ResPairMinimizationData that is used for a particular residue in the context of a particular Pose. This base class provides a noop implementation for this function if there is nothing that the derived class needs to perform in this setup phase.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

References core::scoring::methods::LKB_ResidueInfo::build_waters(), core::scoring::methods::LKB_ResidueInfo::initialize(), core::scoring::methods::retrieve_nonconst_lkb_resdata(), and core::conformation::Residue::type().

void core::scoring::methods::LK_BallEnergy::setup_for_minimizing_for_residue_pair ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
kinematics::MinimizerMapBase const &  minmap,
ResSingleMinimizationData const &  res1_data_cache,
ResSingleMinimizationData const &  res2_data_cache,
ResPairMinimizationData data_cache 
) const
virtual

Called at the beginning of minimization, allowing this energy method to cache data pertinent for a single residue in the the ResPairMinimizationData that is used for a particular residue in the context of a particular Pose. This base class provides a noop implementation for this function if there is nothing that the derived class needs to perform in this setup phase.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

References core::scoring::methods::LKB_ResPairMinData::initialize(), core::scoring::methods::retrieve_lkb_resdata_ptr(), and core::scoring::methods::retrieve_nonconst_lkb_pairdata().

void core::scoring::methods::LK_BallEnergy::setup_for_packing ( pose::Pose ,
utility::vector1< bool > const &  ,
utility::vector1< bool > const &   
) const
virtual
void core::scoring::methods::LK_BallEnergy::setup_for_scoring ( pose::Pose pose,
ScoreFunction const &   
) const
virtual
void core::scoring::methods::LK_BallEnergy::setup_for_scoring_for_residue ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
ResSingleMinimizationData min_data 
) const
virtual

Do any setup work should the coordinates of this residue (who is still guaranteed to be of the same residue type as when setup_for_minimizing_for_residue was called) have changed so dramatically as to possibly require some amount of setup work before scoring should proceed. This function is used for both intra-residue setup and pre-inter-residue setup.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

References core::scoring::methods::LKB_ResidueInfo::build_waters(), and core::scoring::methods::retrieve_nonconst_lkb_resdata().

Referenced by setup_for_derivatives_for_residue().

void core::scoring::methods::LK_BallEnergy::sum_deriv_contributions_for_atom_pair ( Size const  atom1,
conformation::Residue const &  rsd1,
LKB_ResidueInfo const &  rsd1_info,
Size const  atom2,
conformation::Residue const &  rsd2,
LKB_ResidueInfo const &  rsd2_info,
pose::Pose const &  pose,
scoring::EnergyMap const &  weights,
Real const  cp_weight,
Vector F1,
Vector F2 
) const
Note
Assumes that atom1 is the "moving" atom, ie the atom for which eval_atom_derivative was called
Calculates the water positions for atom2 if d2 < safe_max_dis2

References core::scoring::methods::LKB_ResidueInfo::atom_weights(), numeric::xyzVector< class >::distance_squared(), safe_max_dis2_, sum_deriv_contributions_for_atom_pair_one_way(), core::scoring::methods::LKB_ResidueInfo::waters(), and core::conformation::Residue::xyz().

Referenced by eval_residue_pair_derivatives().

void core::scoring::methods::LK_BallEnergy::sum_deriv_contributions_for_atom_pair_one_way ( Size const  atom1,
conformation::Residue const &  rsd1,
Vectors const &  atom1_waters,
utility::vector1< Real > const &  atom1_wts,
Size const  atom2,
conformation::Residue const &  rsd2,
scoring::EnergyMap const &  weights,
Real const  weight_factor,
Real const  d2,
Vector F1,
Vector F2 
) const
void core::scoring::methods::LK_BallEnergy::update_residue_for_packing ( pose::Pose ,
Size  resid 
) const
virtual

ensure this function gets called. The default behavior is to do nothing.

default implementation noop

Reimplemented from core::scoring::methods::EnergyMethod.

References core::scoring::methods::LKB_ResidueInfo::build_waters(), core::pose::Pose::residue(), and core::scoring::methods::retrieve_nonconst_lkb_residue_info().

bool core::scoring::methods::LK_BallEnergy::use_extended_residue_pair_energy_interface ( ) const
virtual

Rely on the extended version of the residue_pair_energy function during score-function evaluation in minimization? The extended version (below) takes a ResPairMinimizationData in which the derived base class has (or should have) cached a piece of data that will make residue-pair energy evaluation faster than its absense (e.g. a neighbor list). Derived energy methods should return 'true' from this function to use the extended interface. The default method implemented in this class returns 'false'.

Reimplemented from core::scoring::methods::TwoBodyEnergy.

core::Size core::scoring::methods::LK_BallEnergy::version ( ) const
privatevirtual

Member Data Documentation

utility::vector1< bool > core::scoring::methods::LK_BallEnergy::atom_type_is_charged_
private

Referenced by setup_d2_bounds().

utility::vector1< Real > core::scoring::methods::LK_BallEnergy::d2_low_
private
ObjexxFCL::FArray3D< Real > const& core::scoring::methods::LK_BallEnergy::dsolv1_
private
etable::Etable const& core::scoring::methods::LK_BallEnergy::etable_
private
Real const core::scoring::methods::LK_BallEnergy::etable_bins_per_A2_
private
utility::vector1< Real > core::scoring::methods::LK_BallEnergy::lk_ball_prefactor_
private

Referenced by setup_d2_bounds().

Real const core::scoring::methods::LK_BallEnergy::ramp_width_A2_
staticprivate
Real const core::scoring::methods::LK_BallEnergy::safe_max_dis2_
private
ObjexxFCL::FArray3D< Real > const& core::scoring::methods::LK_BallEnergy::solv1_
private
ObjexxFCL::FArray3D< Real > const& core::scoring::methods::LK_BallEnergy::solv2_
private

Referenced by residue_pair_energy().

bool const core::scoring::methods::LK_BallEnergy::use_intra_dna_cp_crossover_4_
private

Referenced by residue_pair_energy().


The documentation for this class was generated from the following files: