IMP logo
IMP Reference Guide  2.18.0
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 41 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. 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.

Implemented in IMP::core::IncrementalScoringFunction.

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.

Implemented in IMP::core::IncrementalScoringFunction.

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 67 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 89 of file ScoringFunction.h.

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

Evaluate and return the score.

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.

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
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 132 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 135 of file ScoringFunction.h.


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