IMP Reference Guide
develop.ae08f42f4a,2025/04/01
The Integrative Modeling Platform
|
Abstract class for scoring object(s) of type ParticleIndex. More...
#include <IMP/SingletonScore.h>
Abstract class for scoring object(s) of type ParticleIndex.
SingletonScore will evaluate the score and derivatives for passed object(s) of type ParticleIndex.
Use in conjunction with various restraints such as IMP::container::SingletonsRestraint or IMP::core::SingletonRestraint. The restraints couple the score functions with appropriate lists of object(s) of type ParticleIndex.
It is possible to call the various evaluate* methods directly, but this is not recommended as they do not ensure that Model invariants (e.g. ScoreStates) are preserved. Use a Restraint or ScoringFunction to score the model instead.
Implementers should check out IMP_SINGLETON_SCORE_METHODS().
Definition at line 44 of file SingletonScore.h.
Public Types | |
typedef Particle * | Argument |
typedef ParticleIndex | IndexArgument |
typedef SingletonModifier | Modifier |
typedef Particle * | PassArgument |
typedef ParticleIndex | PassIndexArgument |
Public Member Functions | |
SingletonScore (std::string name="SingletonScore %1%") | |
virtual bool | check_indexes (Model *m, const ParticleIndexes &pis) const |
Check the given particle indexes for necessary attributes. More... | |
Restraints | create_current_decomposition (Model *m, ParticleIndex vt) const |
virtual double | evaluate_if_good_index (Model *m, ParticleIndex vt, DerivativeAccumulator *da, double max) const |
Compute the score and the derivative if needed, only if "good". More... | |
virtual double | evaluate_if_good_indexes (Model *m, const ParticleIndexes &o, DerivativeAccumulator *da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=false) const |
virtual double | evaluate_index (Model *m, ParticleIndex vt, DerivativeAccumulator *da) const =0 |
Compute the score and the derivative if needed. More... | |
virtual double | evaluate_indexes (Model *m, const ParticleIndexes &o, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=false) const |
Compute the score and the derivative if needed over a set. More... | |
virtual double | evaluate_indexes_delta (Model *m, const ParticleIndexes &o, DerivativeAccumulator *da, const std::vector< unsigned > &indexes, std::vector< double > &score, bool all_indexes_checked=false) const |
Compute the change in score and the derivative if needed over a set. More... | |
virtual double | evaluate_indexes_scores (Model *m, const ParticleIndexes &o, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double > &score, bool all_indexes_checked=false) const |
Compute the score and the derivative if needed over a set. More... | |
![]() | |
ModelObjectsTemp | get_inputs (Model *m, const ParticleIndexes &pis) const |
Get the ModelObjects read when the given list of particles is used. More... | |
![]() | |
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 Restraints | do_create_current_decomposition (Model *m, ParticleIndex vt) const |
Override this to return your own decomposition. More... | |
![]() | |
virtual ModelObjectsTemp | do_get_inputs (Model *m, const ParticleIndexes &pis) const =0 |
Overload this method to specify the inputs. More... | |
![]() | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
|
virtual |
Check the given particle indexes for necessary attributes.
If implemented, this method should return true and should assert that all particles have all attributes needed to evaluate the score (or raise an exception). After successfully calling this method, evaluate_indexes() and similar methods can be called with all_indexes_checked=true, and can opt to skip these checks. It is the caller's responsibility to call check_indexes() again if the set of possible indexes changes, or particles or attributes are removed.
Definition at line 73 of file SingletonScore.h.
Restraints IMP::SingletonScore::create_current_decomposition | ( | Model * | m, |
ParticleIndex | vt | ||
) | const |
Decompose this SingletonScore into a set of currently positive restraints over vt. The scoring function and derivatives should be equal to the current score. The default implementation returns a single restraint with this score bound to vt, or zero restraints if the score equals zero.
|
protectedvirtual |
Override this to return your own decomposition.
Reimplemented in IMP::container::MinimumSingletonScore.
|
virtual |
Compute the score and the derivative if needed, only if "good".
This functions similarly to evaluate_index(), but may terminate the computation early if the score is higher than max.
|
virtual |
Compute the score and the derivative if needed over a set, only if "good". This functions similarly to evaluate_indexes(), but may terminate the computation early if the total score is higher than max.
Reimplemented in IMP::core::PredicateSingletonScore< Predicate, Score >, IMP::core::SphereDistanceToSingletonScore, IMP::core::GenericBoundingBox3DSingletonScore< UF >, IMP::npctransport::ZBiasSingletonScore, IMP::npctransport::HarmonicSpringSingletonScore, IMP::core::GenericDistanceToSingletonScore< UF >, IMP::atom::ImproperSingletonScore, IMP::npctransport::ExcludeZRangeSingletonScore, IMP::core::GenericBoundingSphere3DSingletonScore< UF >, IMP::spb::TiltSingletonScore, IMP::atom::AngleSingletonScore, IMP::atom::DihedralSingletonScore, IMP::core::GenericAttributeSingletonScore< UF >, IMP::core::GenericAttributeSingletonScore< core::Harmonic >, IMP::atom::BondSingletonScore, and IMP::container::MinimumSingletonScore.
|
pure virtual |
Compute the score and the derivative if needed.
m | the model of vt |
vt | the index in m of an object of type Particle |
da | a DerivativeAccumulator that weights computed derivatives. If nullptr, derivatives will not be computed. |
Implemented in IMP::core::PredicateSingletonScore< Predicate, Score >, IMP::core::SphereDistanceToSingletonScore, IMP::core::GenericBoundingBox3DSingletonScore< UF >, IMP::npctransport::HarmonicSpringSingletonScore, IMP::npctransport::ZBiasSingletonScore, IMP::core::GenericDistanceToSingletonScore< UF >, IMP::atom::ImproperSingletonScore, IMP::npctransport::ExcludeZRangeSingletonScore, IMP::core::GenericBoundingSphere3DSingletonScore< UF >, IMP::spb::TiltSingletonScore, IMP::atom::AngleSingletonScore, IMP::atom::DihedralSingletonScore, IMP::atom::BondSingletonScore, IMP::container::MinimumSingletonScore, IMP::core::GenericAttributeSingletonScore< UF >, and IMP::core::GenericAttributeSingletonScore< core::Harmonic >.
|
virtual |
Compute the score and the derivative if needed over a set.
m | the model of o |
o | objects of type Particle, specified by index |
da | a derivative accumulator that weights computed derivatives. If nullptr, derivatives will not be computed. |
lower_bound | index of first item in o to evaluate |
upper_bound | index one past last item in o to evaluate |
all_indexes_checked | if true, all of the passed indexes have already been checked by check_indexes() for needed particle attributes, so a faster implementation (that doesn't check them again) can be used if available. |
Reimplemented in IMP::core::PredicateSingletonScore< Predicate, Score >, IMP::core::SphereDistanceToSingletonScore, IMP::core::GenericBoundingBox3DSingletonScore< UF >, IMP::npctransport::ZBiasSingletonScore, IMP::npctransport::HarmonicSpringSingletonScore, IMP::core::GenericDistanceToSingletonScore< UF >, IMP::atom::ImproperSingletonScore, IMP::npctransport::ExcludeZRangeSingletonScore, IMP::core::GenericBoundingSphere3DSingletonScore< UF >, IMP::spb::TiltSingletonScore, IMP::atom::AngleSingletonScore, IMP::atom::DihedralSingletonScore, IMP::core::GenericAttributeSingletonScore< UF >, IMP::core::GenericAttributeSingletonScore< core::Harmonic >, IMP::atom::BondSingletonScore, and IMP::container::MinimumSingletonScore.
|
virtual |
Compute the change in score and the derivative if needed over a set.
The score for each o[indexes[x]] is updated in score[indexes[x]] and the total difference between the old and new score values (over the set) is returned.
Reimplemented in IMP::core::PredicateSingletonScore< Predicate, Score >, IMP::core::SphereDistanceToSingletonScore, IMP::core::GenericBoundingBox3DSingletonScore< UF >, IMP::npctransport::ZBiasSingletonScore, IMP::npctransport::HarmonicSpringSingletonScore, IMP::core::GenericDistanceToSingletonScore< UF >, IMP::atom::ImproperSingletonScore, IMP::npctransport::ExcludeZRangeSingletonScore, IMP::core::GenericBoundingSphere3DSingletonScore< UF >, IMP::spb::TiltSingletonScore, IMP::atom::AngleSingletonScore, IMP::atom::DihedralSingletonScore, IMP::core::GenericAttributeSingletonScore< UF >, IMP::core::GenericAttributeSingletonScore< core::Harmonic >, IMP::atom::BondSingletonScore, and IMP::container::MinimumSingletonScore.
|
virtual |
Compute the score and the derivative if needed over a set.
Like regular evaluate_indexes(), but the score for each o[x] is also returned as score[x].
Reimplemented in IMP::core::PredicateSingletonScore< Predicate, Score >, IMP::core::SphereDistanceToSingletonScore, IMP::core::GenericBoundingBox3DSingletonScore< UF >, IMP::npctransport::ZBiasSingletonScore, IMP::npctransport::HarmonicSpringSingletonScore, IMP::core::GenericDistanceToSingletonScore< UF >, IMP::atom::ImproperSingletonScore, IMP::npctransport::ExcludeZRangeSingletonScore, IMP::core::GenericBoundingSphere3DSingletonScore< UF >, IMP::spb::TiltSingletonScore, IMP::atom::AngleSingletonScore, IMP::atom::DihedralSingletonScore, IMP::core::GenericAttributeSingletonScore< UF >, IMP::core::GenericAttributeSingletonScore< core::Harmonic >, IMP::atom::BondSingletonScore, and IMP::container::MinimumSingletonScore.