Rosetta
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::nmr::pcs::PCSEnergy Class Reference

#include <PCSEnergy.hh>

Inheritance diagram for protocols::nmr::pcs::PCSEnergy:
Inheritance graph
[legend]

Public Types

typedef core::Real Real
 
typedef core::Size Size
 
typedef numeric::xyzVector< core::RealVector
 
typedef core::pose::Pose Pose
 
typedef core::scoring::ScoreFunction ScoreFunction
 
typedef core::scoring::EnergyMap EnergyMap
 
typedef core::scoring::nmr::pcs::PCSData PCSData
 
typedef core::scoring::nmr::pcs::PCSMultiSet PCSMultiSet
 
- Public Types inherited from core::scoring::methods::WholeStructureEnergy
typedef EnergyMethod parent
 
- Public Types inherited from core::scoring::methods::EnergyMethod
typedef utility::VirtualBase parent
 

Public Member Functions

 PCSEnergy ()
 default constructor More...
 
 PCSEnergy (PCSEnergy const &other)
 copy constructor More...
 
 ~PCSEnergy () override
 destructor More...
 
core::scoring::methods::EnergyMethodOP clone () const override
 
PCSDataget_pcs_data_from_pose (Pose &pose) const
 Return PCSData from pose. Create PCSData if not present and attach them to the pose. More...
 
void finalize_total_energy (Pose &pose, ScoreFunction const &, EnergyMap &totals) const override
 Calculate the PCS score and write it into the pose's total energy EnergyMap. More...
 
Real calcualate_total_score_and_tensors (Pose &pose) const
 Calculate the total PCS score from PCSData retrieved from the pose. More...
 
void setup_for_minimizing (Pose &pose, ScoreFunction const &, core::kinematics::MinimizerMapBase const &) const override
 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. Here, the function creates and updates the atom_id_to_pcs_xyz_deriv_map_ which is needed by the eval_atom_derivative() function. More...
 
void eval_atom_derivative (core::id::AtomID const &id, Pose const &pose, core::kinematics::DomainMap const &, ScoreFunction const &, EnergyMap const &weights, Vector &F1, Vector &F2) const override
 Evaluate the xyz derivative of the PCS 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, setup_for_minimizing() accumulates its contribution from the xyz derivatives of atom id. More...
 
void indicate_required_context_graphs (utility::vector1< bool > &) const override
 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...
 
void show_additional_info (std::ostream &TR, Pose &pose, bool verbose=false) const override
 show additional information of the energy method More...
 
core::Size version () const override
 Return the version of the energy method. More...
 
- Public Member Functions inherited from core::scoring::methods::WholeStructureEnergy
 WholeStructureEnergy (EnergyMethodCreatorOP)
 Constructor with EnergyMethodCreator to list the ScoreTypes computed by this WholeStructureEnergy. More...
 
 ~WholeStructureEnergy () 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...
 
virtual Distance atomic_interaction_cutoff () const
 how far apart must two heavy atoms be to have a zero interaction energy? 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 void setup_for_scoring (pose::Pose &, ScoreFunction const &) const
 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...
 
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 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 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 bool has_atomistic_energies () const
 Does this EnergyMethod have a non-trivial implementation of the (one body) atomistic energy method? Note that this may return false even if the score term theoretically could support atomistic energies. And even if this function returns true, it's not necessarily the case that all atoms will get assigned an energy, or that the sum over all atoms (or atom pairs) will result in the same energy as the residue-level approach. The atomistic functions are intended for supplemental informational purposes only. The residue-level energies are the main interface for EnergyMethods. More...
 
virtual bool has_atomistic_pairwise_energies () const
 Does this EnergyMethod have a non-trivial implementation of the pairwise atomistic energy method? NOTE: all the cautions of EnergyMethod::has_atomistic_energies() apply here. More...
 
virtual void atomistic_energy (core::Size atmno, conformation::Residue const &rsd, pose::Pose const &pose, ScoreFunction const &scorefxn, EnergyMap &emap) const
 Evaluate the (one body) energy associated with a particular atom This may be a "self" energy, or it may be the single atom contribution from a whole structure term. NOTE: all the cautions of EnergyMethod::has_atomistic_energies() apply here. For most terms this is likely a no-op. Terms which implement this non-trivially should return true from has_atomistic_energies() More...
 
virtual void atomistic_pair_energy (core::Size atmno1, conformation::Residue const &rsd1, core::Size atomno2, conformation::Residue const &rsd2, pose::Pose const &pose, ScoreFunction const &scorefxn, EnergyMap &emap) const
 Evaluate the energy for a particular pair of atoms This function may be fed the same residue with different atom numbers NOTE: all the cautions of EnergyMethod::has_atomistic_energies() apply here. For most terms this is likely a no-op. Terms which implement this non-trivially should return true from has_atomistic_pairwise_energies() 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 provide_citation_info (basic::citation_manager::CitationCollectionList &) const
 Provide citations to the passed CitationCollectionList Subclasses should add the info for themselves and any other classes they use. More...
 

Private Member Functions

void register_options ()
 register options More...
 
Real calculate_score_and_tensors_with_spinlabel (Pose &pose, PCSMultiSet &pcs_data, bool optimize_tensors=false) const
 Calculate PCS score for input PCSMultiSet with spinlabel. More...
 
Real calculate_score_and_tensors_with_gridsearch (Pose &pose, PCSMultiSet &pcs_data, bool optimize_tensors=false) const
 Calculate PCS score for input PCSMultiSet with grid search. More...
 
Real calculate_score_and_tensors_by_svd (Pose &pose, utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &pcs_singlesets, Vector &metal_coords, core::Size tag_residue_number, bool optimize_tensors=false) const
 Calculate PCS score for input PCSSingleSets at input metal position by SVD. More...
 
Real calculate_score_and_tensors_by_nls (Pose &pose, utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &pcs_singlesets, Vector &metal_coords, utility::fixedsizearray1< Real, 6 > const &metal_coord_range, core::Size tag_residue_number) const
 Calculate PCS score for input PCSSingleSets at input metal position by NLS. More...
 
Real minimize_tensors (utility::vector1< Real > &tensor_params_for_optimization, utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &singlesets_for_optimization) const
 Minimize input PCS tensors with line search. More...
 

Private Attributes

core::id::AtomID_Map< Vectoratom_id_to_pcs_xyz_deriv_map_
 

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

◆ EnergyMap

◆ PCSData

◆ PCSMultiSet

◆ Pose

◆ Real

◆ ScoreFunction

◆ Size

◆ Vector

Constructor & Destructor Documentation

◆ PCSEnergy() [1/2]

protocols::nmr::pcs::PCSEnergy::PCSEnergy ( )

default constructor

◆ PCSEnergy() [2/2]

protocols::nmr::pcs::PCSEnergy::PCSEnergy ( PCSEnergy const &  other)

copy constructor

◆ ~PCSEnergy()

protocols::nmr::pcs::PCSEnergy::~PCSEnergy ( )
override

destructor

Member Function Documentation

◆ calcualate_total_score_and_tensors()

core::Real protocols::nmr::pcs::PCSEnergy::calcualate_total_score_and_tensors ( Pose pose) const

◆ calculate_score_and_tensors_by_nls()

core::Real protocols::nmr::pcs::PCSEnergy::calculate_score_and_tensors_by_nls ( Pose pose,
utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &  pcs_singlesets,
Vector metal_coords,
utility::fixedsizearray1< Real, 6 > const &  metal_coord_range,
core::Size  tag_residue_number 
) const
private

Calculate PCS score for input PCSSingleSets at input metal position by NLS.

References protocols::nmr::pcs::TR().

Referenced by calculate_score_and_tensors_with_gridsearch(), and calculate_score_and_tensors_with_spinlabel().

◆ calculate_score_and_tensors_by_svd()

core::Real protocols::nmr::pcs::PCSEnergy::calculate_score_and_tensors_by_svd ( Pose pose,
utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &  pcs_singlesets,
Vector metal_coords,
core::Size  tag_residue_number,
bool  optimize_tensors = false 
) const
private

Calculate PCS score for input PCSSingleSets at input metal position by SVD.

References minimize_tensors(), and protocols::nmr::pcs::TR().

Referenced by calculate_score_and_tensors_with_gridsearch(), and calculate_score_and_tensors_with_spinlabel().

◆ calculate_score_and_tensors_with_gridsearch()

core::Real protocols::nmr::pcs::PCSEnergy::calculate_score_and_tensors_with_gridsearch ( Pose pose,
PCSMultiSet pcs_data,
bool  optimize_tensors = false 
) const
private

◆ calculate_score_and_tensors_with_spinlabel()

core::Real protocols::nmr::pcs::PCSEnergy::calculate_score_and_tensors_with_spinlabel ( Pose pose,
PCSMultiSet pcs_data,
bool  optimize_tensors = false 
) const
private

◆ clone()

core::scoring::methods::EnergyMethodOP protocols::nmr::pcs::PCSEnergy::clone ( ) const
overridevirtual

◆ eval_atom_derivative()

void protocols::nmr::pcs::PCSEnergy::eval_atom_derivative ( core::id::AtomID const &  id,
Pose const &  pose,
core::kinematics::DomainMap const &  ,
ScoreFunction const &  ,
EnergyMap const &  weights,
Vector F1,
Vector F2 
) const
override

Evaluate the xyz derivative of the PCS 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, setup_for_minimizing() accumulates its contribution from the xyz derivatives of atom id.

Evaluate the xyz derivative of the PCS 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 be zeroed, rather, setup_for_minimizing() accumulates the PCS contribution from the xyz derivatives of atom id.

References atom_id_to_pcs_xyz_deriv_map_, core::id::AtomID_Map< T >::get(), core::id::AtomID_Map< T >::has(), core::scoring::nmr_pcs, and core::pose::Pose::xyz().

◆ finalize_total_energy()

void protocols::nmr::pcs::PCSEnergy::finalize_total_energy ( Pose pose,
ScoreFunction const &  ,
EnergyMap totals 
) const
overridevirtual

Calculate the PCS score and write it into the pose's total energy EnergyMap.

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

References calcualate_total_score_and_tensors(), and core::scoring::nmr_pcs.

◆ get_pcs_data_from_pose()

core::scoring::nmr::pcs::PCSData & protocols::nmr::pcs::PCSEnergy::get_pcs_data_from_pose ( Pose pose) const

Return PCSData from pose. Create PCSData if not present and attach them to the pose.

References core::pose::Pose::data(), and update_ResidueType_enum_files::input_file.

Referenced by calcualate_total_score_and_tensors(), setup_for_minimizing(), and show_additional_info().

◆ indicate_required_context_graphs()

void protocols::nmr::pcs::PCSEnergy::indicate_required_context_graphs ( utility::vector1< bool > &  ) const
overridevirtual

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.

◆ minimize_tensors()

core::Real protocols::nmr::pcs::PCSEnergy::minimize_tensors ( utility::vector1< Real > &  tensor_params_for_optimization,
utility::vector1< core::scoring::nmr::pcs::PCSSingleSetOP > &  singlesets_for_optimization 
) const
private

Minimize input PCS tensors with line search.

References core::optimization::Minimizer::run().

Referenced by calculate_score_and_tensors_by_svd().

◆ register_options()

void protocols::nmr::pcs::PCSEnergy::register_options ( )
private

register options

◆ setup_for_minimizing()

void protocols::nmr::pcs::PCSEnergy::setup_for_minimizing ( Pose pose,
ScoreFunction const &  ,
core::kinematics::MinimizerMapBase const &   
) const
overridevirtual

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. Here, the function creates and updates the atom_id_to_pcs_xyz_deriv_map_ which is needed by the eval_atom_derivative() function.

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

References core::scoring::nmr::apply_vector_rotation(), atom_id_to_pcs_xyz_deriv_map_, core::id::AtomID_Map< T >::default_value(), core::id::AtomID_Map< T >::fill_with(), core::id::AtomID_Map< T >::get(), core::scoring::nmr::pcs::PCSData::get_number_tags(), get_pcs_data_from_pose(), core::scoring::nmr::pcs::PCSData::get_pcs_multiset_vec(), core::pose::symmetry::is_symmetric(), core::id::AtomID_Map< T >::set(), and core::pose::symmetry::symmetry_info().

◆ show_additional_info()

void protocols::nmr::pcs::PCSEnergy::show_additional_info ( std::ostream &  TR,
Pose pose,
bool  verbose = false 
) const
overridevirtual

◆ version()

core::Size protocols::nmr::pcs::PCSEnergy::version ( ) const
overridevirtual

Return the version of the energy method.

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

Member Data Documentation

◆ atom_id_to_pcs_xyz_deriv_map_

core::id::AtomID_Map< Vector > protocols::nmr::pcs::PCSEnergy::atom_id_to_pcs_xyz_deriv_map_
mutableprivate

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