Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
core::scoring::hbonds::HBondEnergy Class Reference

#include <HBondEnergy.hh>

Inheritance diagram for core::scoring::hbonds::HBondEnergy:
Inheritance graph
[legend]

Public Member Functions

 HBondEnergy (HBondOptions const &opts)
 ctor More...
 
 HBondEnergy (HBondEnergy const &src)
 copy ctor More...
 
 ~HBondEnergy () override
 
methods::EnergyMethodOP clone () const override
 clone More...
 
void setup_for_packing (pose::Pose &pose, utility::vector1< bool > const &, utility::vector1< bool > const &) const override
 if an energy method needs to cache data in the Energies object, before packing begins, then it does so during this function. The packer must ensure this function is called. The default behavior is to do nothing. More...
 
void prepare_rotamers_for_packing (pose::Pose const &pose, conformation::RotamerSetBase &set) const override
 If an energy method needs to cache data in a packing::RotamerSet object before rotamer energies are calculated, it does so during this function. The packer must ensure this function is called. The default behavior is to do nothing. More...
 
void update_residue_for_packing (pose::Pose &pose, Size resid) const override
 
void setup_for_scoring (pose::Pose &pose, ScoreFunction const &) const override
 if an energy method needs to cache something in the pose (e.g. in pose.energies()), before scoring begins, it must do so in this method. All long range energy functions must initialize their LREnergyContainers before scoring begins. The default is to do nothing. More...
 
void residue_pair_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &, EnergyMap &emap) const override
 note that this only evaluates sc-sc and sc-bb energies More...
 
bool defines_score_for_residue_pair (conformation::Residue const &res1, conformation::Residue const &res2, bool res_moving_wrt_eachother) const override
 Returns false if two residues are not moving wrt each other; the two parts of the HBondEnergy function which are non-pairwise-decomposable are held fixed during minimization – the neighbor counts, and the bb/bb hbond availability status. This means that the hbond-energy function can be efficiently evaluated during minimization. More...
 
bool minimize_in_whole_structure_context (pose::Pose const &) const override
 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 use_extended_residue_pair_energy_interface () const override
 Use the extended residue pair energy interface to distinguish between score function evaluation during minimization from score function evaluation during regular scoring. More...
 
void 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 override
 Evaluate the energy between a pair of residues during minimization; during minimization, the bb/bb hbond status is held fixed, so it is possible to evaluate the bb/bb, bb/sc and sc/sc hydrogen bonds in this function call. More...
 
void setup_for_minimizing_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, kinematics::MinimizerMapBase const &minmap, basic::datacache::BasicDataCache &, ResSingleMinimizationData &res_data_cache) const override
 Setup the bb/bb hbond presence data for a particular residue – this data is taken out of the HbondSet in the Pose. More...
 
void 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 override
 Link the bb/bb hbond information in the ResidueSingleMinimizationData to the ResiduePairMinimizationData. More...
 
bool requires_a_setup_for_derivatives_for_residue_pair_opportunity (pose::Pose const &pose) const override
 Construct the set of all hydrogen bonds between two residues before. More...
 
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 override
 Do any setup work necessary before evaluating the derivatives for this residue. More...
 
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 override
 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...
 
void hbond_derivs_1way (EnergyMap const &weights, HBondSet const &hbond_set, HBondDatabaseCOP database, conformation::Residue const &don_rsd, conformation::Residue const &acc_rsd, Size const don_nb, Size const acc_nb, bool const exclude_bsc, bool const exclude_scb, Real const ssdep_weight_factor, utility::vector1< DerivVectorPair > &don_atom_derivs, utility::vector1< DerivVectorPair > &acc_atom_derivs, bool bond_near_wat=false) const
 
void backbone_backbone_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const override
 Evaluates the interaction between the backbone of rsd1 and the backbone of rsd2 and accumulates the unweighted energy. More...
 
void backbone_sidechain_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const override
 Evaluates the interaction between the backbone of rsd1 and the sidechain of rsd2 and accumulates the unweighted energy. More...
 
void sidechain_sidechain_energy (conformation::Residue const &rsd1, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const override
 Evaluates the interaction between the sidechain of rsd1 and the sidechain of rsd2 and accumulates the unweighted energy. More...
 
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 override
 Batch computation of rotamer pair energies. Need not be overriden in derived class – by default, iterates over all pairs of rotamers, and calls the derived class's residue_pair_energy method. More...
 
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 override
 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 rotamr. More...
 
void finalize_total_energy (pose::Pose &pose, ScoreFunction const &, EnergyMap &totals) const override
 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...
 
Distance atomic_interaction_cutoff () const override
 f1 and f2 are zeroed More...
 
bool divides_backbone_and_sidechain_energetics () const override
 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...
 
Real hydrogen_interaction_cutoff2 () const
 the atomic interaction cutoff and the hydrogen interaction cutoff are the same. More...
 
void indicate_required_context_graphs (utility::vector1< bool > &context_graphs_required) const override
 HBondEnergy is context sensitive. More...
 
bool defines_intrares_energy (EnergyMap const &weights) const override
 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...
 
void eval_intrares_energy (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, EnergyMap &emap) const override
 Evaluate the intra-residue energy for a given residue. More...
 
Energy heavyatom_heavyatom_energy (hbtrie::HBAtom const &at1, hbtrie::HBAtom const &at2, DistanceSquared &d2, Size &) const
 
Energy heavyatom_hydrogenatom_energy (hbtrie::HBAtom const &at1, hbtrie::HBAtom const &at2, bool const flipped, core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const cached_data) const
 
Energy drawn_out_heavyatom_hydrogenatom_energy (hbtrie::HBAtom const &at1, hbtrie::HBAtom const &at2, bool flipped, core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const cached_data) const
 code to evaluate a hydrogen bond energy for the trie that didn't belong in the header itself – it certainly does enough work such that inlining it would not likely produce a speedup. More...
 
Energy hydrogenatom_heavyatom_energy (hbtrie::HBAtom const &at1, hbtrie::HBAtom const &at2, Size &, core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const cached_data) const
 
Energy hydrogenatom_hydrogenatom_energy (hbtrie::HBAtom const &, hbtrie::HBAtom const &, Size &, core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const ) const
 
- Public Member Functions inherited from core::scoring::methods::ContextDependentTwoBodyEnergy
 ContextDependentTwoBodyEnergy (EnergyMethodCreatorOP creator)
 
 ~ContextDependentTwoBodyEnergy () override
 
EnergyMethodType method_type () const override
 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...
 
 ~ShortRangeTwoBodyEnergy () override
 
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 override
 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...
 
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 override
 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 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 override
 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...
 
 ~TwoBodyEnergy () override
 
virtual bool requires_a_setup_for_scoring_for_residue_opportunity_during_minimization (pose::Pose const &pose) 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...
 
virtual void setup_for_scoring_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, ResSingleMinimizationData &min_data) 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...
 
virtual bool requires_a_setup_for_derivatives_for_residue_opportunity (pose::Pose const &pose) 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...
 
virtual void setup_for_derivatives_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, ResSingleMinimizationData &min_data, basic::datacache::BasicDataCache &res_data_cache) const
 Do any setup work necessary before evaluating the derivatives for this residue. 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 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 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 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...
 
virtual void setup_for_packing_with_rotsets (pose::Pose &pose, pack_basic::RotamerSetsBaseOP const &rotsets, ScoreFunction const &sfxn) const
 if an energy method needs to cache data in the Energies object, before packing begins and requires access to the RotamerSets object, then it does so during this function. The default behavior is to do nothing. More...
 
virtual void update_residue_for_packing (pose::Pose &, Size resid) const
 If the pose changes in the middle of a packing (as happens in rotamer trials) and if an energy method needs to cache data in the pose that corresponds to its current state, then the method must update that data when this function is called. The packer must ensure this function gets called. The default behavior is to do nothing. More...
 
virtual bool requires_a_setup_for_scoring_for_residue_opportunity_during_regular_scoring (pose::Pose const &pose) const
 Does this EnergyMethod require the opportunity to examine the residue before (regular) scoring begins? Not all energy methods would. The ScoreFunction will not ask energy methods to examine residues that are uninterested in doing so. The default implmentation of this function returns false. More...
 
virtual void setup_for_scoring_for_residue (conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &sfxn, basic::datacache::BasicDataCache &residue_data_cache) const
 Do any setup work before scoring, caching any slow-to-compute data that will be used during energy evaluation inside of the input Residue object's data cache. (The Residue on the whole is given as a constant reference, but non-constant access to its data cache is granted.) More...
 
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_minimizing (pose::Pose &pose) const
 Called after minimization, allowing a derived class to do some teardown steps. More...
 
virtual void setup_for_derivatives (pose::Pose &pose, ScoreFunction const &sfxn) const
 Called immediately before atom- and DOF-derivatives are calculated allowing the derived class a chance to prepare for future calls. 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...
 
ScoreTypes const & score_types () const
 Returns the score types that this energy method computes. More...
 
virtual void show_additional_info (std::ostream &, pose::Pose &, bool) const
 show additional information of the energy method More...
 
virtual bool energy_method_provides_citation_info () const
 Does this energy method provide information about how to cite it? More...
 
virtual utility::vector1
< basic::citation_manager::CitationCollectionCOP > 
provide_citation_info () const
 Provide the citation. More...
 
virtual bool energy_method_is_unpublished () const
 Does this energy method indicate that it is unpublished (and, by extension, that the author should be included in publications resulting from it)? More...
 
virtual utility::vector1
< basic::citation_manager::UnpublishedModuleInfoCOP > 
provide_authorship_info_for_unpublished () const
 Provide a list of authors and their e-mail addresses, as strings. More...
 

Public Attributes

 __pad0__:ContextDependentTwoBodyEnergy parent
 

Private Member Functions

hbtrie::HBondRotamerTrieOP create_rotamer_trie (conformation::RotamerSetBase const &rotset, pose::Pose const &pose) const
 
hbtrie::HBondRotamerTrieOP create_rotamer_trie (conformation::Residue const &res, pose::Pose const &pose) const
 
core::Size version () const override
 

Private Attributes

HBondOptionsCOP options_
 
HBondDatabaseCOP database_
 
Vector normal_
 
Vector center_
 
Real thickness_
 
Real steepness_
 
Real membrane_core_
 

Additional Inherited Members

- Public Types inherited from core::scoring::methods::ContextDependentTwoBodyEnergy
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::VirtualBase parent
 
- 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...
 

Constructor & Destructor Documentation

core::scoring::hbonds::HBondEnergy::HBondEnergy ( HBondOptions const &  opts)

ctor

core::scoring::hbonds::HBondEnergy::HBondEnergy ( HBondEnergy const &  src)

copy ctor

core::scoring::hbonds::HBondEnergy::~HBondEnergy ( )
overridedefault

Member Function Documentation

Distance core::scoring::hbonds::HBondEnergy::atomic_interaction_cutoff ( ) const
overridevirtual

f1 and f2 are zeroed

HACK! MAX_R defines the maximum donorH to acceptor distance.

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

References core::scoring::hbonds::MAX_R.

Referenced by create_rotamer_trie(), eval_residue_pair_derivatives(), and residue_pair_energy_ext().

void core::scoring::hbonds::HBondEnergy::backbone_backbone_energy ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::backbone_sidechain_energy ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
overridevirtual
methods::EnergyMethodOP core::scoring::hbonds::HBondEnergy::clone ( ) const
overridevirtual
hbtrie::HBondRotamerTrieOP core::scoring::hbonds::HBondEnergy::create_rotamer_trie ( conformation::RotamerSetBase const &  rotset,
pose::Pose const &  pose 
) const
private
hbtrie::HBondRotamerTrieOP core::scoring::hbonds::HBondEnergy::create_rotamer_trie ( conformation::Residue const &  res,
pose::Pose const &  pose 
) const
private
bool core::scoring::hbonds::HBondEnergy::defines_intrares_energy ( EnergyMap const &  weights) const
overridevirtual

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.

References core::scoring::hbond, and core::scoring::hbond_intra.

bool core::scoring::hbonds::HBondEnergy::defines_score_for_residue_pair ( conformation::Residue const &  res1,
conformation::Residue const &  res2,
bool  res_moving_wrt_eachother 
) const
overridevirtual

Returns false if two residues are not moving wrt each other; the two parts of the HBondEnergy function which are non-pairwise-decomposable are held fixed during minimization – the neighbor counts, and the bb/bb hbond availability status. This means that the hbond-energy function can be efficiently evaluated during minimization.

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

bool core::scoring::hbonds::HBondEnergy::divides_backbone_and_sidechain_energetics ( ) const
inlineoverridevirtual

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.

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

Energy core::scoring::hbonds::HBondEnergy::drawn_out_heavyatom_hydrogenatom_energy ( hbtrie::HBAtom const &  at1,
hbtrie::HBAtom const &  at2,
bool  flipped,
core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const  cached_data 
) const
void core::scoring::hbonds::HBondEnergy::eval_intrares_derivatives ( conformation::Residue const &  rsd,
ResSingleMinimizationData const &  min_data,
pose::Pose const &  pose,
EnergyMap const &  weights,
utility::vector1< DerivVectorPair > &  atom_derivs 
) const
overridevirtual

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.

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

References core::scoring::hbonds::calculate_intra_res_hbonds(), core::scoring::Energies::data(), database_, core::pose::Pose::energies(), hbond_derivs_1way(), core::scoring::EnergiesCacheableDataType::HBOND_SET, options_, core::scoring::hbonds::residue_near_water(), and core::conformation::Residue::seqpos().

void core::scoring::hbonds::HBondEnergy::eval_intrares_energy ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::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
overridevirtual

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

Retrieves the cached hbond data from the minpair_data object and calculates the derivative for an atom on rsd1 wrt rsd2. This method requires that setup_for_derivatives_for_residue_pair have been called on this residue pair beforehand, and that the two residues have not changed since that call.

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

References atomic_interaction_cutoff(), core::scoring::Energies::data(), database_, core::kinematics::tree::distance_squared(), core::pose::Pose::energies(), core::scoring::ResPairMinimizationData::get_data(), core::scoring::ResPairMinimizationData::get_data_ref(), core::scoring::hbonds::get_ssdep_weight(), hbond_derivs_1way(), core::scoring::hbond_respair_data, core::scoring::EnergiesCacheableDataType::HBOND_SET, core::conformation::Residue::nbr_atom(), core::conformation::Residue::nbr_radius(), options_, core::scoring::hbonds::residue_near_water(), core::conformation::Residue::seqpos(), core::scoring::hbonds::SSWeightParameters::ssdep_, and core::conformation::Residue::xyz().

void core::scoring::hbonds::HBondEnergy::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
overridevirtual
void core::scoring::hbonds::HBondEnergy::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
overridevirtual

Batch computation of rotamer pair energies. Need not be overriden in derived class – by default, iterates over all pairs of rotamers, and calls the derived class's residue_pair_energy method.

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

References core::scoring::Energies::data(), core::pose::Pose::energies(), core::conformation::RotamerSetBase::get_trie(), core::scoring::methods::hbond_method, core::scoring::EnergiesCacheableDataType::HBOND_SET, options_, core::conformation::RotamerSetBase::resid(), core::pose::Pose::residue(), and core::scoring::Energies::tenA_neighbor_graph().

void core::scoring::hbonds::HBondEnergy::finalize_total_energy ( pose::Pose pose,
ScoreFunction const &  sfxn,
EnergyMap total_energy 
) const
overridevirtual

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.

called at the end of energy evaluation

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

References core::scoring::Energies::data(), core::pose::Pose::energies(), core::scoring::hbonds::get_hbond_energies(), core::scoring::hbond_bb_sc, core::scoring::hbond_intra, core::scoring::hbond_lr_bb_sc, core::scoring::hbond_sc, core::scoring::EnergiesCacheableDataType::HBOND_SET, core::scoring::hbond_sr_bb_sc, core::scoring::hbond_wat, options_, core::scoring::Energies::use_nblist(), and core::scoring::wat_entropy.

void core::scoring::hbonds::HBondEnergy::hbond_derivs_1way ( EnergyMap const &  weights,
HBondSet const &  hbond_set,
HBondDatabaseCOP  database,
conformation::Residue const &  don_rsd,
conformation::Residue const &  acc_rsd,
Size const  don_nb,
Size const  acc_nb,
bool const  exclude_bsc,
bool const  exclude_scb,
Real const  ssdep_weight_factor,
utility::vector1< DerivVectorPair > &  don_atom_derivs,
utility::vector1< DerivVectorPair > &  acc_atom_derivs,
bool  bond_near_wat = false 
) const

Triplication of the loops that iterate across hbond donors and acceptors Find all hbonds for a pair of residues and add those found hbonds to the hb_pair_dat object; these hbonds will be used for derivative evaluation, so evaluate the F1/F2 derivative vectors now. This function respects the exclude bsc and scb variables to avoid hbonds. Called by setup_for_derivatives_for_residue_pair pba modified

References core::conformation::Residue::abase2(), core::conformation::Residue::accpt_pos(), core::scoring::hbonds::HBDerivAssigner::assignment(), core::conformation::Residue::atom(), core::conformation::Residue::atom_base(), core::conformation::Residue::atom_is_backbone(), core::scoring::hbonds::calculate_intra_res_hbonds(), center_, core::scoring::hbonds::HBondDerivs::deriv(), core::scoring::hbonds::AssignmentScaleAndDerivVectID::dvect_id_, core::scoring::hbonds::HBEvalTuple::eval_type(), core::scoring::hbonds::get_environment_dependent_weight(), core::scoring::hbonds::get_membrane_depth_dependent_weight(), core::scoring::hbonds::hb_energy_deriv(), core::scoring::hbonds::hb_eval_type_weight(), core::scoring::hbonds::HBondSet::hbond_options(), core::conformation::Residue::Hpos_polar(), core::scoring::hbonds::HBDerivAssigner::ind(), core::scoring::hbonds::MAX_R2, core::scoring::hbonds::n_hb_atoms, normal_, options_, core::scoring::hbonds::HBondOptions::put_intra_into_total(), core::scoring::hbonds::AssignmentScaleAndDerivVectID::scale_, core::conformation::Residue::seqpos(), steepness_, thickness_, core::scoring::hbonds::HBondOptions::use_hb_env_dep(), core::scoring::hbonds::HBondOptions::water_hybrid_sf(), core::scoring::hbonds::which_hb_unassigned, core::scoring::hbonds::which_last_donor_atm, core::conformation::Atom::xyz(), and core::conformation::Residue::xyz().

Referenced by eval_intrares_derivatives(), and eval_residue_pair_derivatives().

Energy core::scoring::hbonds::HBondEnergy::heavyatom_heavyatom_energy ( hbtrie::HBAtom const &  at1,
hbtrie::HBAtom const &  at2,
DistanceSquared d2,
Size  
) const
inline
Energy core::scoring::hbonds::HBondEnergy::heavyatom_hydrogenatom_energy ( hbtrie::HBAtom const &  at1,
hbtrie::HBAtom const &  at2,
bool const  flipped,
core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const  cached_data 
) const
inline
Real core::scoring::hbonds::HBondEnergy::hydrogen_interaction_cutoff2 ( ) const

the atomic interaction cutoff and the hydrogen interaction cutoff are the same.

References core::scoring::hbonds::MAX_R.

Energy core::scoring::hbonds::HBondEnergy::hydrogenatom_heavyatom_energy ( hbtrie::HBAtom const &  at1,
hbtrie::HBAtom const &  at2,
Size ,
core::scoring::trie::TrieVsTrieCachedDataContainerBase const *const  cached_data 
) const
inline
Energy core::scoring::hbonds::HBondEnergy::hydrogenatom_hydrogenatom_energy ( hbtrie::HBAtom const &  ,
hbtrie::HBAtom const &  ,
Size ,
core::scoring::trie::TrieVsTrieCachedDataContainerBase const *  const 
) const
inline
void core::scoring::hbonds::HBondEnergy::indicate_required_context_graphs ( utility::vector1< bool > &  context_graphs_required) const
overridevirtual
bool core::scoring::hbonds::HBondEnergy::minimize_in_whole_structure_context ( pose::Pose const &  ) const
overridevirtual

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::hbonds::HBondEnergy::prepare_rotamers_for_packing ( pose::Pose const &  ,
conformation::RotamerSetBase  
) const
overridevirtual

If an energy method needs to cache data in a packing::RotamerSet object before rotamer energies are calculated, it does so during this function. The packer must ensure this function is called. The default behavior is to do nothing.

default implementation noop

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

References create_rotamer_trie(), core::scoring::methods::hbond_method, and core::conformation::RotamerSetBase::store_trie().

bool core::scoring::hbonds::HBondEnergy::requires_a_setup_for_derivatives_for_residue_pair_opportunity ( pose::Pose const &  pose) const
overridevirtual

Construct the set of all hydrogen bonds between two residues before.

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

void core::scoring::hbonds::HBondEnergy::residue_pair_energy ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  ,
EnergyMap emap 
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::residue_pair_energy_ext ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
ResPairMinimizationData const &  pairdata,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
overridevirtual

Evaluate the energy between a pair of residues during minimization; during minimization, the bb/bb hbond status is held fixed, so it is possible to evaluate the bb/bb, bb/sc and sc/sc hydrogen bonds in this function call.

computes the residue pair energy during minimization; this includes bb/bb energies as opposed to the standard residue_pair_energy interface, which does not include bb/bb energies. On the other hand, this interface presumes that no new bb/bb hydrogen bonds are formed during the course of minimization, and no existing bb/bb hydrogen bonds are lost. Note: this function does not directly enforce the bb/sc exclusion rule logic, but rather, takes the boolean "bb_don_avail" and "bb_acc_avail" data stored in the pairdata object

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

References atomic_interaction_cutoff(), core::scoring::Energies::data(), database_, core::kinematics::tree::distance_squared(), core::pose::Pose::energies(), core::scoring::ResPairMinimizationData::get_data(), core::scoring::ResPairMinimizationData::get_data_ref(), core::scoring::hbonds::get_ssdep_weight(), core::scoring::hbonds::SSWeightParameters::h_, core::scoring::hbond_respair_data, core::scoring::EnergiesCacheableDataType::HBOND_SET, core::scoring::hbonds::identify_hbonds_1way(), core::scoring::hbonds::identify_hbonds_1way_membrane(), core::scoring::hbonds::SSWeightParameters::l_, core::scoring::hbonds::SSWeightParameters::len_h_, core::scoring::hbonds::SSWeightParameters::len_l_, core::conformation::Residue::nbr_atom(), core::conformation::Residue::nbr_radius(), options_, core::scoring::hbonds::residue_near_water(), core::conformation::Residue::seqpos(), core::scoring::hbonds::SSWeightParameters::ssdep_, and core::conformation::Residue::xyz().

void core::scoring::hbonds::HBondEnergy::setup_for_minimizing_for_residue ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
kinematics::MinimizerMapBase const &  minmap,
basic::datacache::BasicDataCache &  ,
ResSingleMinimizationData res_data_cache 
) const
overridevirtual

Setup the bb/bb hbond presence data for a particular residue – this data is taken out of the HbondSet in the Pose.

Note that this function helps enforce the bb/sc exclusion rule by setting the donor and acceptor availability for backbone donors and acceptors. If the backbone-sidechain-exclusion rule is not being enforced, then this function marks all donors and acceptors as being available. If it is being enforced, then is uses the hbondset functions don_bbg_in_bb_bb_hbond and acc_bbg_in_bb_bb_hbond. The decisions made in this function impact the evaluation of energies in the above residue_pair_energy_ext method.

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

References core::scoring::Energies::data(), core::pose::Pose::energies(), core::scoring::ResSingleMinimizationData::get_data(), core::scoring::hbond_res_data, core::scoring::EnergiesCacheableDataType::HBOND_SET, core::conformation::Residue::is_protein(), core::conformation::Residue::natoms(), options_, core::conformation::Residue::seqpos(), core::scoring::ResSingleMinimizationData::set_data(), and core::scoring::hbonds::HBondResidueMinData::set_nneighbors().

void core::scoring::hbonds::HBondEnergy::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
overridevirtual
void core::scoring::hbonds::HBondEnergy::setup_for_packing ( pose::Pose ,
utility::vector1< bool > const &  ,
utility::vector1< bool > const &   
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::setup_for_scoring ( pose::Pose ,
ScoreFunction const &   
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::sidechain_sidechain_energy ( conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2,
pose::Pose const &  pose,
ScoreFunction const &  sfxn,
EnergyMap emap 
) const
overridevirtual
void core::scoring::hbonds::HBondEnergy::update_residue_for_packing ( pose::Pose pose,
Size  resid 
) const
override
bool core::scoring::hbonds::HBondEnergy::use_extended_residue_pair_energy_interface ( ) const
overridevirtual

Use the extended residue pair energy interface to distinguish between score function evaluation during minimization from score function evaluation during regular scoring.

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

core::Size core::scoring::hbonds::HBondEnergy::version ( ) const
overrideprivatevirtual

Version 2: 2011-06-27 Fixing chi2 SER/THR and chi3 TYR derivatives when they act as acceptors.

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

Member Data Documentation

core::scoring::hbonds::HBondEnergy::__pad0__
Vector core::scoring::hbonds::HBondEnergy::center_
mutableprivate
HBondDatabaseCOP core::scoring::hbonds::HBondEnergy::database_
private
Real core::scoring::hbonds::HBondEnergy::membrane_core_
mutableprivate
Vector core::scoring::hbonds::HBondEnergy::normal_
mutableprivate
HBondOptionsCOP core::scoring::hbonds::HBondEnergy::options_
private
Real core::scoring::hbonds::HBondEnergy::steepness_
mutableprivate
Real core::scoring::hbonds::HBondEnergy::thickness_
mutableprivate

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