IMP  2.0.1
The Integrative Modeling Platform
IMP::kernel::ScoringFunction Class Referenceabstract

#include "IMP/ScoringFunction.h"

+ Inheritance diagram for IMP::kernel::ScoringFunction:

Public Types

typedef std::pair< double, bool > ScoreIsGoodPair
 

Public Member Functions

 ScoringFunction (Model *m, std::string name)
 
void clear_caches ()
 
virtual Restraints create_restraints () const =0
 
virtual ModelObjectsTemp do_get_inputs () const
 
virtual ModelObjectsTemp do_get_outputs () const
 
virtual void do_update_dependencies ()
 
double evaluate (bool derivatives)
 Evaluate and return the score. More...
 
double evaluate_if_below (bool derivatives, double max)
 
double evaluate_if_good (bool derivatives)
 
bool get_had_good_score () const
 
double get_last_score () const
 
const ScoreStatesTemp & get_score_states ()
 
- Public Member Functions inherited from IMP::kernel::ModelObject
 ModelObject (Model *m, std::string name)
 
ModelObjectsTemp get_inputs () const
 
ModelObjectsTemps get_interactions () const
 
Modelget_model () const
 
ModelObjectsTemp get_outputs () const
 
- Public Member Functions inherited from IMP::base::Object
virtual IMP::base::VersionInfo get_version_info () const =0
 Get information about the module and version of the object.
 
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)
 

Protected Member Functions

virtual void do_add_score_and_derivatives (ScoreAccumulator sa, const ScoreStatesTemp &ss)=0
 
virtual ScoreStatesTemp get_required_score_states () const =0
 
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::kernel::ModelObject
virtual ModelObjectsTemps do_get_interactions () const
 
virtual void update_dependencies ()
 
- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 

Related Functions

(Note that these are not member functions.)

typedef IMP::base::Vector
< IMP::base::WeakPointer
< ScoringFunction > > 
ScoringFunctionsTemp
 

Detailed Description

A ScoringFunction represents a scoring function on the model.
The Model has a default scoring function
(Model::get_model_scoring_function()), but it can be useful to use
others in different contexts during a samping process.

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)
  1. call ScoreState::before_evaluate() on each of them to update configuration
  1. call Restraint::unprotected_evaluate() to compute scores [and add derivatives in the particles]
  1. [call ScoreState::after_evaluate() on each score state to update derivatives]
  1. score returned

Definition at line 46 of file kernel/declare_ScoringFunction.h.

Member Function Documentation

void IMP::kernel::ScoringFunction::clear_caches ( )
virtual

Objects can have internal caches. This method resets them returning the object to its just-initialized state.

Reimplemented from IMP::base::Object.

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

Return a set of restraints equivalent to this scoring function.

Implemented in IMP::core::IncrementalScoringFunction.

virtual void IMP::kernel::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 ModelObjectsTemp IMP::kernel::ScoringFunction::do_get_inputs ( ) const
virtual

Override if this reads other objects during evaluate.

Implements IMP::kernel::ModelObject.

Definition at line 86 of file kernel/declare_ScoringFunction.h.

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

Override if this writes other objects during evaluate.

Implements IMP::kernel::ModelObject.

Definition at line 89 of file kernel/declare_ScoringFunction.h.

virtual void IMP::kernel::ScoringFunction::do_update_dependencies ( )
virtual

This method is called when the dependencies in the model have changed and model evaluate is called (or Model::ensure_dependencies()). The object can use this to update anything that is needed for efficient computation.

Reimplemented from IMP::kernel::ModelObject.

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

Evaluate the score function and return the resulting score

Parameters
derivativesif true, updates the derivatives of the scoring function
bool IMP::kernel::ScoringFunction::get_had_good_score ( ) const

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

Definition at line 110 of file kernel/declare_ScoringFunction.h.

double IMP::kernel::ScoringFunction::get_last_score ( ) const

returns the score that was calculated in the last call evaluate

Definition at line 116 of file kernel/declare_ScoringFunction.h.

virtual ScoreStatesTemp IMP::kernel::ScoringFunction::get_required_score_states ( ) const
protectedpure virtual

Return any score states needed in order to do scoring.

Implemented in IMP::core::IncrementalScoringFunction.

const ScoreStatesTemp& IMP::kernel::ScoringFunction::get_score_states ( )

Return the score states needed to evaluate this ScoringFunction.

Friends And Related Function Documentation

Pass a set of objects.

Definition at line 76 of file kernel/base_types.h.


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