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

Fullatom Membrane Solvation Energy - Statistically Derived, and smoothed derivatives. More...

#include <FaMPEnvSmoothEnergy.hh>

Inheritance diagram for core::scoring::membrane::FaMPEnvSmoothEnergy:
Inheritance graph
[legend]

Public Types

typedef
core::scoring::methods::ContextDependentOneBodyEnergy 
parent
 
- Public Types inherited from core::scoring::methods::ContextDependentOneBodyEnergy
typedef OneBodyEnergy parent
 
- Public Types inherited from core::scoring::methods::OneBodyEnergy
typedef EnergyMethod parent
 
- Public Types inherited from core::scoring::methods::EnergyMethod
typedef utility::VirtualBase parent
 

Public Member Functions

 FaMPEnvSmoothEnergy ()
 Default Constructor. More...
 
core::scoring::methods::EnergyMethodOP clone () const override
 Create a clone of this energy method. More...
 
void setup_for_scoring (core::pose::Pose &pose, core::scoring::ScoreFunction const &) const override
 Computes dScore/dNumNeighbors for all residues for rapid use in later atom derivate calculations. More...
 
void setup_for_derivatives (core::pose::Pose &pose, core::scoring::ScoreFunction const &sf) const override
 Causes a neighbor graph update. More...
 
void residue_energy (core::conformation::Residue const &rsd, core::pose::Pose const &, core::scoring::EnergyMap &) const override
 Evaluates the one-body energy for a residue. More...
 
void eval_atom_derivative (core::id::AtomID const &atom_id, core::pose::Pose const &pose, core::kinematics::DomainMap const &, core::scoring::ScoreFunction const &, core::scoring::EnergyMap const &weights, core::Vector &F1, core::Vector &F2) const override
 Increments the F1 and F2 derivative vectors for an atom. More...
 
Distance atomic_interaction_cutoff () const
 Unused by the FaMPEnvSmoothEnergy class, returns 0. More...
 
void indicate_required_context_graphs (utility::vector1< bool > &context_graphs_required) const override
 Tells the scoring function to maintain the TwelveANeighborGraph. More...
 
- Public Member Functions inherited from core::scoring::methods::ContextDependentOneBodyEnergy
 ContextDependentOneBodyEnergy (EnergyMethodCreatorOP)
 Constructor with an EnergyMethodCreator to inform the EnergyMethod parent which ScoreTypes this EnergyMethod is responsible for computing. More...
 
EnergyMethodType method_type () const override
 Returns the cd_1b element of the EnergyMethodType enumeration; this method should NOT be overridden by derived classes. More...
 
- Public Member Functions inherited from core::scoring::methods::OneBodyEnergy
 OneBodyEnergy (EnergyMethodCreatorOP)
 Constructor with an EnergyMethodCreator to inform the EnergyMethod parent which ScoreTypes this EnergyMethod is responsible for computing. More...
 
 ~OneBodyEnergy () override
 
virtual bool defines_score_for_residue (conformation::Residue const &) const
 During minimization, energy methods are allowed to decide that they say nothing about a particular residue (e.g. no non-zero energy) and as a result they will not be queried for a derivative or an energy. The default behavior is to return "true" for all residues. More...
 
virtual bool use_extended_residue_energy_interface () const
 Rely on the extended version of the residue_energy function during score-function evaluation in minimization? The extended version (below) takes a ResSingleMinimizationData. Return 'true' for the extended version. The default method implemented in this class returns 'false'. More...
 
virtual void residue_energy_ext (conformation::Residue const &rsd, ResSingleMinimizationData const &min_data, pose::Pose const &pose, EnergyMap &emap) const
 Evaluate the one-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 one body energies into the input EnergyMap. 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 setup_for_minimizing_for_residue before this function is invoked. This function should not be called unless the use_extended_residue_energy_interface() method returns "true". Default implementation provided by this base class calls utility::exit(). The Pose merely serves as context, and the input residue is not required to be a member of the Pose. More...
 
virtual void setup_for_minimizing_for_residue (conformation::Residue const &rsd, pose::Pose const &, ScoreFunction const &, kinematics::MinimizerMapBase const &, basic::datacache::BasicDataCache &, ResSingleMinimizationData &) const
 Called at the beginning of minimization, allowing this energy method to cache data pertinent for a single residue in the the ResSingleMinimizationData 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. The Pose merely serves as context, and the input residue is not required to be a member of the Pose. More...
 
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. More...
 
virtual bool requires_a_setup_for_derivatives_for_residue_opportunity (pose::Pose const &pose) const
 Does this EnergyMethod require the opportunity to examine the residue before derivative evaluation 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_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 void eval_residue_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 an atom in a residue in the context of a particular pose, and increment the F1 and F2 vectors. 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 Pose merely serves as context, and the input residue is not required to be a member of the Pose. DEPRECATED – too slow. More...
 
virtual bool defines_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_residue_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...
 
- 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 (pose::Pose &, utility::vector1< bool > const &, utility::vector1< bool > const &) const
 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...
 
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 prepare_rotamers_for_packing (pose::Pose const &, conformation::RotamerSetBase &) const
 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...
 
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 finalize_after_derivatives (pose::Pose &, ScoreFunction const &) const
 called at the end of derivatives evaluation More...
 
virtual 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...
 
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...
 
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...
 

Private Member Functions

std::string const & representative_atom_name (core::chemical::AA const aa) const
 returns the atom name for the atom used to represent the sidechain for a particular amino acid; this atom was used to derive the statistics this potential is based on. More...
 
void calc_energy (core::conformation::Residue const &rsd, core::pose::Pose const &pose, core::Real const neighbor_count, core::chemical::AA const aa, core::Real &score, core::Real &dscore_dneighbor_count) const
 convert the neighbor counts for a residue and its aa type into a score and a score derivative. More...
 
core::Real sigmoidish_neighbor (DistanceSquared const sqdist) const
 given the square distance between a representative atom and a neighbor atom, return the neighborlyness. Ramps from 1 down to 0 over a range. More...
 
void increment_f1_f2_for_atom_pair (core::conformation::Atom const &atom1, core::conformation::Atom const &atom2, core::Real weighted_dScore_dN, core::Vector &F1, core::Vector &F2) const
 given a pair of atoms, one of which is a neighbor atom and the other of which is a representative atom, and given the weighted score derivative, increments the F1 and F2 derivatives. More...
 
core::Size version () const override
 Return the version of the energy method. More...
 

Private Attributes

utility::vector1< core::Realresidue_N_
 
utility::vector1< core::Realresidue_E_
 
utility::vector1< core::Realresidue_dEdN_
 
ObjexxFCL::FArray3D< core::Realmem_env_log10_
 

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...
 

Detailed Description

Fullatom Membrane Solvation Energy - Statistically Derived, and smoothed derivatives.

Member Typedef Documentation

Constructor & Destructor Documentation

core::scoring::membrane::FaMPEnvSmoothEnergy::FaMPEnvSmoothEnergy ( )

Default Constructor.

References protocols::cluster::calibur::aa, and mem_env_log10_.

Member Function Documentation

Distance core::scoring::membrane::FaMPEnvSmoothEnergy::atomic_interaction_cutoff ( ) const

Unused by the FaMPEnvSmoothEnergy class, returns 0.

FaMPEnvSmoothEnergy distance cutoff.

void core::scoring::membrane::FaMPEnvSmoothEnergy::calc_energy ( core::conformation::Residue const &  rsd,
core::pose::Pose const &  pose,
core::Real const  neighbor_count,
core::chemical::AA const  aa,
core::Real score,
core::Real dscore_dneighbor_count 
) const
private

convert the neighbor counts for a residue and its aa type into a score and a score derivative.

References core::pose::Pose::conformation(), mem_env_log10_, core::conformation::Conformation::membrane_info(), core::conformation::Residue::seqpos(), and core::conformation::membrane::thickness.

Referenced by residue_energy(), and setup_for_derivatives().

methods::EnergyMethodOP core::scoring::membrane::FaMPEnvSmoothEnergy::clone ( ) const
overridevirtual

Create a clone of this energy method.

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

void core::scoring::membrane::FaMPEnvSmoothEnergy::eval_atom_derivative ( core::id::AtomID const &  atom_id,
core::pose::Pose const &  pose,
core::kinematics::DomainMap const &  ,
core::scoring::ScoreFunction const &  ,
core::scoring::EnergyMap const &  weights,
core::Vector F1,
core::Vector F2 
) const
override
void core::scoring::membrane::FaMPEnvSmoothEnergy::increment_f1_f2_for_atom_pair ( core::conformation::Atom const &  atom1,
core::conformation::Atom const &  atom2,
core::Real  weighted_dScore_dN,
core::Vector F1,
core::Vector F2 
) const
private

given a pair of atoms, one of which is a neighbor atom and the other of which is a representative atom, and given the weighted score derivative, increments the F1 and F2 derivatives.

References core::scoring::membrane::end_sig, core::scoring::membrane::end_sig2, core::scoring::membrane::start_sig, core::scoring::membrane::start_sig2, and core::conformation::Atom::xyz().

Referenced by eval_atom_derivative().

void core::scoring::membrane::FaMPEnvSmoothEnergy::indicate_required_context_graphs ( utility::vector1< bool > &  context_graphs_required) const
overridevirtual
std::string const & core::scoring::membrane::FaMPEnvSmoothEnergy::representative_atom_name ( core::chemical::AA const  aa) const
private

returns the atom name for the atom used to represent the sidechain for a particular amino acid; this atom was used to derive the statistics this potential is based on.

returns const & to static data members to avoid expense of string allocation and destruction. Do not call this function on non-canonical aas

References core::chemical::aa_ala, core::chemical::aa_arg, core::chemical::aa_asn, core::chemical::aa_asp, core::chemical::aa_cys, core::chemical::aa_gln, core::chemical::aa_glu, core::chemical::aa_gly, core::chemical::aa_his, core::chemical::aa_ile, core::chemical::aa_leu, core::chemical::aa_lys, core::chemical::aa_met, core::chemical::aa_phe, core::chemical::aa_pro, core::chemical::aa_ser, core::chemical::aa_thr, core::chemical::aa_trp, core::chemical::aa_tyr, core::chemical::aa_val, core::chemical::name_from_aa(), and core::chemical::num_canonical_aas.

Referenced by eval_atom_derivative(), residue_energy(), and setup_for_derivatives().

void core::scoring::membrane::FaMPEnvSmoothEnergy::residue_energy ( core::conformation::Residue const &  rsd,
core::pose::Pose const &  pose,
core::scoring::EnergyMap emap 
) const
overridevirtual

Evaluates the one-body energy for a residue.

counts the number of nbr atoms within a given radius of the for the input residue. Because the representative atom on the input residue may be in a different location than the representative atom on the same residue when scoring_begin() is called, these neighbor counts cannot be reused; therefore, scoring_begin does not keep neighbor counts.

Implements core::scoring::methods::ContextDependentOneBodyEnergy.

References core::conformation::Residue::aa(), core::chemical::aa_vrt, core::conformation::Residue::atom(), core::conformation::Residue::atom_index(), calc_energy(), core::pose::Pose::energies(), core::scoring::FaMPEnvSmooth, core::conformation::Residue::is_protein(), representative_atom_name(), core::pose::Pose::residue(), protocols::hybridization::score, core::conformation::Residue::seqpos(), sigmoidish_neighbor(), core::scoring::Energies::twelveA_neighbor_graph(), and core::conformation::Atom::xyz().

void core::scoring::membrane::FaMPEnvSmoothEnergy::setup_for_derivatives ( core::pose::Pose pose,
core::scoring::ScoreFunction const &  sf 
) const
overridevirtual

Causes a neighbor graph update.

stores dScore/dNumNeighbors so that when neighbor atoms on adjacent residues move, their influence on the score of the surrounding residues is rapidly computed.

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

References core::pose::Pose::aa(), core::conformation::Residue::atom_index(), calc_energy(), core::pose::Pose::energies(), representative_atom_name(), core::pose::Pose::residue(), residue_dEdN_, residue_E_, residue_N_, protocols::hybridization::score, sigmoidish_neighbor(), core::pose::Pose::size(), core::pose::Pose::update_residue_neighbors(), and core::conformation::Atom::xyz().

void core::scoring::membrane::FaMPEnvSmoothEnergy::setup_for_scoring ( core::pose::Pose pose,
core::scoring::ScoreFunction const &   
) const
overridevirtual

Computes dScore/dNumNeighbors for all residues for rapid use in later atom derivate calculations.

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

References core::pose::Pose::update_residue_neighbors().

Real core::scoring::membrane::FaMPEnvSmoothEnergy::sigmoidish_neighbor ( DistanceSquared const  sqdist) const
private

given the square distance between a representative atom and a neighbor atom, return the neighborlyness. Ramps from 1 down to 0 over a range.

References core::scoring::membrane::end_sig, core::scoring::membrane::end_sig2, core::scoring::membrane::sqr(), core::scoring::membrane::start_sig, and core::scoring::membrane::start_sig2.

Referenced by residue_energy(), and setup_for_derivatives().

core::Size core::scoring::membrane::FaMPEnvSmoothEnergy::version ( ) const
overrideprivatevirtual

Return the version of the energy method.

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

Member Data Documentation

ObjexxFCL::FArray3D< core::Real > core::scoring::membrane::FaMPEnvSmoothEnergy::mem_env_log10_
private

Referenced by calc_energy(), and FaMPEnvSmoothEnergy().

utility::vector1< core::Real > core::scoring::membrane::FaMPEnvSmoothEnergy::residue_dEdN_
mutableprivate
utility::vector1< core::Real > core::scoring::membrane::FaMPEnvSmoothEnergy::residue_E_
mutableprivate

Referenced by setup_for_derivatives().

utility::vector1< core::Real > core::scoring::membrane::FaMPEnvSmoothEnergy::residue_N_
mutableprivate

Referenced by setup_for_derivatives().


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