IMP logo
IMP Reference Guide  develop.7cb8855c60,2024/10/08
The Integrative Modeling Platform
IMP::ScoringFunction Class Referenceabstract

Represents a scoring function on the model. More...

#include "IMP/ScoringFunction.h"

+ Inheritance diagram for IMP::ScoringFunction:

Detailed Description

Represents a scoring function on the model.

A call to the evaluate() method prompts the following events:

  1. determine set of ScoreState objects needed by the Restraint objects being evaluated (this is cached)
  2. call ScoreState::before_evaluate() on each of them to update configuration
  3. call Restraint::unprotected_evaluate() to compute scores [and add derivatives in the particles, if requested]
  4. [call ScoreState::after_evaluate() on each score state to update derivatives]
  5. return the score

Definition at line 42 of file ScoringFunction.h.

Public Types

typedef std::pair< double, bool > ScoreIsGoodPair
 

Public Member Functions

 ScoringFunction (Model *m, std::string name)
 
virtual Restraints create_restraints () const =0
 Return a set of restraints equivalent to this scoring function. More...
 
virtual ModelObjectsTemp do_get_outputs () const override
 
double evaluate (bool derivatives)
 Evaluate and return the score for the current state of the model. More...
 
double evaluate_if_below (bool derivatives, double max)
 
double evaluate_if_good (bool derivatives)
 
double evaluate_moved (bool derivatives, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis)
 Score when some particles have moved. More...
 
double evaluate_moved_if_below (bool derivatives, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis, double max)
 
double evaluate_moved_if_good (bool derivatives, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis)
 
bool get_had_good_score () const
 
double get_last_score () const
 returns the score that was calculated in the last evaluate call More...
 
- Public Member Functions inherited from IMP::ModelObject
 ModelObject (Model *m, std::string name)
 
bool get_has_dependencies () const
 Return whether this object has dependencies computed. More...
 
bool get_has_required_score_states () const
 Return whether score states are computed. More...
 
ModelObjectsTemp get_inputs () const
 
ModelObjectsTemps get_interactions () const
 Get the interacting sets induced by this ModelObject. More...
 
Modelget_model () const
 
ModelObjectsTemp get_outputs () const
 
const ScoreStatesTempget_required_score_states () const
 Get the score states that are ancestors of this in the dependency graph. More...
 
void set_has_dependencies (bool tf)
 Either invalidate the dependencies or ensure they are correct. More...
 
void set_has_required_score_states (bool tf)
 Compute the required score states. More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
virtual VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 
virtual std::string get_type_name () const
 

Protected Member Functions

virtual void do_add_score_and_derivatives (ScoreAccumulator sa, const ScoreStatesTemp &ss)=0
 
virtual void do_add_score_and_derivatives_moved (ScoreAccumulator sa, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis, const ScoreStatesTemp &ss)
 Score when only some particles have moved. More...
 
ScoreAccumulator get_score_accumulator (bool deriv)
 
ScoreAccumulator get_score_accumulator_if_below (bool deriv, double max)
 
ScoreAccumulator get_score_accumulator_if_good (bool deriv)
 
- Protected Member Functions inherited from IMP::ModelObject
virtual ModelObjectsTemp do_get_inputs () const =0
 
virtual ModelObjectsTemps do_get_interactions () const
 
virtual void handle_set_has_required_score_states (bool)
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Member Function Documentation

virtual Restraints IMP::ScoringFunction::create_restraints ( ) const
pure virtual

Return a set of restraints equivalent to this scoring function.

virtual void IMP::ScoringFunction::do_add_score_and_derivatives ( ScoreAccumulator  sa,
const ScoreStatesTemp ss 
)
protectedpure virtual

Do the actual work of computing the score and (optional) derivatives. The list of all score states that must be updated is passed.

virtual void IMP::ScoringFunction::do_add_score_and_derivatives_moved ( ScoreAccumulator  sa,
const ParticleIndexes moved_pis,
const ParticleIndexes reset_pis,
const ScoreStatesTemp ss 
)
protectedvirtual

Score when only some particles have moved.

See Also
do_add_score_and_derivatives()

Definition at line 79 of file ScoringFunction.h.

virtual ModelObjectsTemp IMP::ScoringFunction::do_get_outputs ( ) const
overridevirtual

Get any Particle, Container or other ModelObjects changed by this during evaluation. This is only useful for ScoreStates, at the moment.

Implements IMP::ModelObject.

Definition at line 102 of file ScoringFunction.h.

double IMP::ScoringFunction::evaluate ( bool  derivatives)

Evaluate and return the score for the current state of the model.

Returns
the resulting score
Parameters
derivativesif true, updates the derivatives of the scoring function
double IMP::ScoringFunction::evaluate_moved ( bool  derivatives,
const ParticleIndexes moved_pis,
const ParticleIndexes reset_pis 
)

Score when some particles have moved.

No particles in the model other those listed should have been changed (e.g. by Monte Carlo movers) since the last evaluation (although ScoreStates may have moved particles not in this list, as a function of particles that are in the list). This should behave identically to evaluate() but may be more efficient if it can skip restraint terms that involve unchanged particles.

See Also
IMP::core::MonteCarlo::set_score_moved
Parameters
derivativesWhether to calculate first derivatives.
moved_pisParticles that have moved since the last scoring function evaluation.
reset_pisParticles that have moved, but back to the positions they had at the last-but-one evaluation (e.g. due to a rejected Monte Carlo move).
See Also
evaluate()
bool IMP::ScoringFunction::get_had_good_score ( ) const

Return true if the last evaluate satisfied all the restraint thresholds.

Definition at line 150 of file ScoringFunction.h.

double IMP::ScoringFunction::get_last_score ( ) const

returns the score that was calculated in the last evaluate call

Definition at line 153 of file ScoringFunction.h.


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