Rosetta
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy Class Reference

VoidsPenaltyEnergy ("voids_penalty" score term), an EnergyMethod intended for packing, which penalizes solutions in which the total volume to fill differs greatly from the total volume of the current set of rotamers. More...

#include <VoidsPenaltyEnergy.hh>

Inheritance diagram for core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy:
Inheritance graph
[legend]

Public Types

typedef core::scoring::methods::WholeStructureEnergy parent1
 
typedef core::scoring::annealing::ResidueArrayAnnealableEnergy parent2
 
- 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

 VoidsPenaltyEnergy (core::scoring::methods::EnergyMethodOptions const &options)
 Options constructor. More...
 
 VoidsPenaltyEnergy (VoidsPenaltyEnergy const &src)
 Copy constructor. More...
 
 ~VoidsPenaltyEnergy () override
 Default destructor. More...
 
core::scoring::methods::EnergyMethodOP clone () const override
 Clone: create a copy of this object, and return an owning pointer to the copy. More...
 
void indicate_required_context_graphs (utility::vector1< bool > &context_graphs_required) const override
 VoidsPenaltyEnergy is context-independent and thus indicates that no context graphs need to be maintained by class Energies. More...
 
core::Size version () const override
 VoidsPenaltyEnergy is version 1.0 right now. More...
 
void finalize_total_energy (core::pose::Pose &pose, core::scoring::ScoreFunction const &, core::scoring::EnergyMap &totals) const override
 Actually calculate the total energy. More...
 
core::Real calculate_energy (utility::vector1< core::conformation::ResidueCOP > const &resvect, utility::vector1< core::Size > const &rotamer_ids, core::Size const substitution_position=0) const override
 Calculate the total energy given a vector of const owning pointers to residues. More...
 
void report () const
 Get a summary of all loaded data. More...
 
void set_up_residuearrayannealableenergy_for_packing (core::pose::Pose &pose, core::pack::rotamer_set::RotamerSets const &rotamersets, core::scoring::ScoreFunction const &sfxn) override
 Cache data from the pose in this EnergyMethod in anticipation of scoring. More...
 
void setup_for_minimizing (pose::Pose &pose, core::scoring::ScoreFunction const &sfxn, kinematics::MinimizerMapBase const &minmap) 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. 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...
 
void finalize_after_minimizing (pose::Pose &pose) const override
 Called after minimization. More...
 
void set_disabled_except_during_packing (bool const setting)
 Set whether this term is disabled except during packing. More...
 
bool disabled_except_during_packing () const
 Get whether this term is disabled except during packing. More...
 
void provide_citation_info (basic::citation_manager::CitationCollectionList &) const override
 Provide the citation. 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 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 show_additional_info (std::ostream &, pose::Pose &, bool) const
 show additional information of the energy method More...
 
- Public Member Functions inherited from core::scoring::annealing::ResidueArrayAnnealableEnergy
 ResidueArrayAnnealableEnergy ()
 Constructor. More...
 
 ResidueArrayAnnealableEnergy (ResidueArrayAnnealableEnergy const &src)
 Copy constructor. More...
 
virtual ~ResidueArrayAnnealableEnergy ()
 Destructor. More...
 
virtual void clean_up_residuearrayannealableenergy_after_packing (core::pose::Pose &pose)
 Allows the ResidueArrayAnnealableEnergy to clean up cached data, either within the EnergyMethod or in the pose, after a packer run. More...
 
virtual void commit_considered_substitution ()
 What to do when a substitution that was considered is accepted. More...
 

Private Member Functions

void configure_voxel_grid (VoidsPenaltyVoxelGrid &voxel_grid) const
 given a voxel grid object, set its parameters using stored values (originally from user settings or the options system). More...
 

Private Attributes

core::Real cone_dotproduct_cutoff_
 Cone dot product cutoff, used by the voxel grid calculator. More...
 
core::Real cone_distance_cutoff_
 Cone distance cutoff, used by the voxel grid calculator. More...
 
core::Size containing_cones_cutoff_
 The minimum number of cones in which a voxel must lie in order for that voxel to be considered "buried". More...
 
core::Real voxel_size_
 Voxel grid voxel size, used by the voxel grid calculator. More...
 
core::Real voxel_grid_padding_
 Voxel grid lateral padding, used by the voxel grid calculator. More...
 
bool disabled_except_during_packing_
 Is the voids_penalty energy term disabled except during packing? More...
 
utility::vector1< std::map< core::conformation::ResidueCOP, core::Real > > rotamer_volumes_
 The volumes of rotamers, cached from a precomputation for packing. More...
 
core::Real volume_to_fill_
 The total volume of the space to fill during packing, cached from a precomputation. More...
 
bool minimizing_
 Are we currently minimizing? More...
 

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

VoidsPenaltyEnergy ("voids_penalty" score term), an EnergyMethod intended for packing, which penalizes solutions in which the total volume to fill differs greatly from the total volume of the current set of rotamers.

Member Typedef Documentation

◆ parent1

◆ parent2

Constructor & Destructor Documentation

◆ VoidsPenaltyEnergy() [1/2]

core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::VoidsPenaltyEnergy ( core::scoring::methods::EnergyMethodOptions const &  options)

◆ VoidsPenaltyEnergy() [2/2]

core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::VoidsPenaltyEnergy ( VoidsPenaltyEnergy const &  src)

Copy constructor.

◆ ~VoidsPenaltyEnergy()

core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::~VoidsPenaltyEnergy ( )
override

Default destructor.

Member Function Documentation

◆ calculate_energy()

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::calculate_energy ( utility::vector1< core::conformation::ResidueCOP > const &  resvect,
utility::vector1< core::Size > const &  rotamer_ids,
core::Size const  substitution_position = 0 
) const
overridevirtual

Calculate the total energy given a vector of const owning pointers to residues.

Called directly by the ResidueArrayAnnealingEvaluator during packer runs.

Called directly by the ResidueArrayAnnealingEvaluator during packer runs. Requires that setup_residuearrayannealablenergy_for_packing() be called first.

Implements core::scoring::annealing::ResidueArrayAnnealableEnergy.

References ENERGY_MULTIPLIER, rotamer_volumes_, and volume_to_fill_.

◆ clone()

core::scoring::methods::EnergyMethodOP core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::clone ( ) const
overridevirtual

Clone: create a copy of this object, and return an owning pointer to the copy.

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

◆ configure_voxel_grid()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::configure_voxel_grid ( VoidsPenaltyVoxelGrid voxel_grid) const
private

◆ disabled_except_during_packing()

bool core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::disabled_except_during_packing ( ) const
inline

Get whether this term is disabled except during packing.

References disabled_except_during_packing_.

◆ finalize_after_minimizing()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::finalize_after_minimizing ( pose::Pose pose) const
overridevirtual

Called after minimization.

Re-enables the score term after minimization.

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

References minimizing_, and core::pack::guidance_scoreterms::voids_penalty_energy::TR().

◆ finalize_total_energy()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::finalize_total_energy ( core::pose::Pose pose,
core::scoring::ScoreFunction const &  ,
core::scoring::EnergyMap totals 
) const
overridevirtual

Actually calculate the total energy.

Called by the scoring machinery.

Note
VoidsPenaltyEnergy::finalize_total_energy() can return a slightly different energy than was computed during packing. This is because reachable volume cannot be computed (since we don't have a rotamer set), so total buried volume is used in the calculation. This will also be a whole-pose calculation, and won't just focus on the designable region (since there's no "designable region" when this function is called).

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

References core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyVoxelGrid::compute_total_volume_of_current_residues(), configure_voxel_grid(), disabled_except_during_packing_, ENERGY_MULTIPLIER, minimizing_, core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyVoxelGrid::set_up_voxel_grid_and_compute_burial(), core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyVoxelGrid::total_buried_volume(), core::pack::guidance_scoreterms::voids_penalty_energy::TR(), and core::scoring::voids_penalty.

◆ indicate_required_context_graphs()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::indicate_required_context_graphs ( utility::vector1< bool > &  context_graphs_required) const
overridevirtual

VoidsPenaltyEnergy is context-independent and thus indicates that no context graphs need to be maintained by class Energies.

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

◆ provide_citation_info()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::provide_citation_info ( basic::citation_manager::CitationCollectionList &  citations) const
overridevirtual

Provide the citation.

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

◆ report()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::report ( ) const

Get a summary of all loaded data.

References core::pack::guidance_scoreterms::voids_penalty_energy::TR().

Referenced by VoidsPenaltyEnergy().

◆ set_disabled_except_during_packing()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::set_disabled_except_during_packing ( bool const  setting)
inline

Set whether this term is disabled except during packing.

References disabled_except_during_packing_.

◆ set_up_residuearrayannealableenergy_for_packing()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::set_up_residuearrayannealableenergy_for_packing ( core::pose::Pose pose,
core::pack::rotamer_set::RotamerSets const &  rotamersets,
core::scoring::ScoreFunction const &  sfxn 
)
overridevirtual

◆ setup_for_minimizing()

void core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::setup_for_minimizing ( pose::Pose pose,
core::scoring::ScoreFunction const &  sfxn,
kinematics::MinimizerMapBase const &  minmap 
) 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. 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.

This just disables this score term during minimization, in the case of the VoidsPenaltyEnergy.

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

References minimizing_, and core::pack::guidance_scoreterms::voids_penalty_energy::TR().

◆ version()

core::Size core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::version ( ) const
overridevirtual

VoidsPenaltyEnergy is version 1.0 right now.

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

Member Data Documentation

◆ cone_distance_cutoff_

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::cone_distance_cutoff_
private

Cone distance cutoff, used by the voxel grid calculator.

The cutoff value for the distance from the cone base at which we are considered no longer to be within the cone. Defaults to 8.0 Angstroms.

Referenced by configure_voxel_grid().

◆ cone_dotproduct_cutoff_

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::cone_dotproduct_cutoff_
private

Cone dot product cutoff, used by the voxel grid calculator.

The cutoff value for the dot product of a cone vector and a cone base-test point vector below which we declare the test point not to be within the cone. Effectively, this is the cone width. Lower values make broader cones. Default 0.1. Can range from 1.0 (infinitely thin cone) to -1.0 (full spherical volume), with 0.0 represeting all points on one side of the plane perpendicular to the cone vector.

Referenced by configure_voxel_grid().

◆ containing_cones_cutoff_

core::Size core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::containing_cones_cutoff_
private

The minimum number of cones in which a voxel must lie in order for that voxel to be considered "buried".

Defaults to 6 cones.

Referenced by configure_voxel_grid().

◆ disabled_except_during_packing_

bool core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::disabled_except_during_packing_
private

Is the voids_penalty energy term disabled except during packing?

If true (the default), the term is only evaluated during packing. If false, it is evaluated during packing or scoring (but not minimizing).

Referenced by disabled_except_during_packing(), finalize_total_energy(), and set_disabled_except_during_packing().

◆ minimizing_

bool core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::minimizing_
mutableprivate

Are we currently minimizing?

The VoidsPenaltyEnergy is not evaluated during minimization.

Referenced by finalize_after_minimizing(), finalize_total_energy(), set_up_residuearrayannealableenergy_for_packing(), and setup_for_minimizing().

◆ rotamer_volumes_

utility::vector1< std::map < core::conformation::ResidueCOP, core::Real > > core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::rotamer_volumes_
mutableprivate

The volumes of rotamers, cached from a precomputation for packing.

Referenced by calculate_energy(), and set_up_residuearrayannealableenergy_for_packing().

◆ volume_to_fill_

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::volume_to_fill_
mutableprivate

The total volume of the space to fill during packing, cached from a precomputation.

Referenced by calculate_energy(), and set_up_residuearrayannealableenergy_for_packing().

◆ voxel_grid_padding_

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::voxel_grid_padding_
private

Voxel grid lateral padding, used by the voxel grid calculator.

This is added to the bounding box of the pose when setting up the voxel grid.

Referenced by configure_voxel_grid().

◆ voxel_size_

core::Real core::pack::guidance_scoreterms::voids_penalty_energy::VoidsPenaltyEnergy::voxel_size_
private

Voxel grid voxel size, used by the voxel grid calculator.

In Angstroms. Length of one side of a cube.

Referenced by configure_voxel_grid().


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