IMP logo
IMP Reference Guide  2.20.0
The Integrative Modeling Platform
IMP::PairScore Class Referenceabstract

Abstract class for scoring object(s) of type ParticleIndexPair. More...

#include <IMP/PairScore.h>

Inherits IMP::ParticleInputs, and IMP::Object.

Inherited by IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScoreWithCache< score_functor::OrientedSoap >, IMP::atom::CoulombPairScore, IMP::atom::LennardJonesPairScore, IMP::container::MinimumPairScore, IMP::core::ClosePairsPairScore, IMP::core::DistancePairScore, IMP::core::HarmonicDistancePairScore, IMP::core::HarmonicSphereDistancePairScore, IMP::core::HarmonicSurfaceDepthPairScore, IMP::core::HarmonicSurfaceDistancePairScore, IMP::core::HarmonicSurfaceHeightPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::core::HarmonicUpperBoundSphereDistancePairScore, IMP::core::KClosePairsPairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::core::RigidBodyAnglePairScore, IMP::core::SoftSpherePairScore, IMP::core::SoftSubSurfacePairScore, IMP::core::SoftSuperSurfacePairScore, IMP::core::SphereDistancePairScore, IMP::core::SurfaceDepthPairScore, IMP::core::SurfaceDistancePairScore, IMP::core::SurfaceHeightPairScore, IMP::core::TransformedDistancePairScore, IMP::core::TypedPairScore, IMP::core::WeightedSphereDistancePairScore, IMP::example::ExamplePairScore, IMP.example.PythonExamplePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::misc::LogPairScore, IMP::misc::LowestRefinedPairScore, IMP::misc::SoftCylinderPairScore, IMP::npc::MinimumSphereDistancePairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::LinearInteractionPairScore, IMP::npctransport::LinearSoftSpherePairScore, IMP::npctransport::LinearWellPairScore, IMP::npctransport::SlabWithCylindricalPorePairScore, IMP::npctransport::SlabWithToroidalPorePairScore, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< DistanceScoreT >, IMP::score_functor::SurfaceDepthPairScore< DistanceScoreT >, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::score_functor::SurfaceHeightPairScore< DistanceScoreT >, IMP::spb::AttributeDistancePairScore, IMP::spb::KinkPairScore, IMP::spb::RigidBodyPackingScore, and marina_party.SumPricePairScore.

Detailed Description

Abstract class for scoring object(s) of type ParticleIndexPair.

PairScore will evaluate the score and derivatives for passed object(s) of type ParticleIndexPair.

Use in conjunction with various restraints such as IMP::container::PairsRestraint or IMP::core::PairRestraint. The restraints couple the score functions with appropriate lists of object(s) of type ParticleIndexPair.

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_PAIR_SCORE().

See Also
PredicatePairRestraint

Definition at line 44 of file PairScore.h.

Public Types

typedef ParticlePair Argument
 
typedef ParticleIndexPair IndexArgument
 
typedef PairModifier Modifier
 
typedef const ParticlePairPassArgument
 
typedef const ParticleIndexPairPassIndexArgument
 

Public Member Functions

 PairScore (std::string name="PairScore %1%")
 
Restraints create_current_decomposition (Model *m, const ParticleIndexPair &vt) const
 
virtual double evaluate_if_good_index (Model *m, const ParticleIndexPair &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 ParticleIndexPairs &o, DerivativeAccumulator *da, double max, unsigned int lower_bound, unsigned int upper_bound) const
 
virtual double evaluate_index (Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da) const =0
 Compute the score and the derivative if needed. More...
 
virtual double evaluate_indexes (Model *m, const ParticleIndexPairs &o, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound) const
 Compute the score and the derivative if needed over a set. More...
 
virtual double evaluate_indexes_delta (Model *m, const ParticleIndexPairs &o, DerivativeAccumulator *da, const std::vector< unsigned > &indexes, std::vector< double > &score) const
 Compute the change in score and the derivative if needed over a set. More...
 
virtual double evaluate_indexes_scores (Model *m, const ParticleIndexPairs &o, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double > &score) const
 Compute the score and the derivative if needed over a set. More...
 
- Public Member Functions inherited from IMP::ParticleInputs
ModelObjectsTemp get_inputs (Model *m, const ParticleIndexes &pis) const
 Get the ModelObjects read when the given list of particles is used. 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 Restraints do_create_current_decomposition (Model *m, const ParticleIndexPair &vt) const
 Override this to return your own decomposition. More...
 
- Protected Member Functions inherited from IMP::ParticleInputs
virtual ModelObjectsTemp do_get_inputs (Model *m, const ParticleIndexes &pis) const =0
 Overload this method to specify the inputs. More...
 
- 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

Restraints IMP::PairScore::create_current_decomposition ( Model m,
const ParticleIndexPair vt 
) const

Decompose this PairScore 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.

virtual Restraints IMP::PairScore::do_create_current_decomposition ( Model m,
const ParticleIndexPair vt 
) const
protectedvirtual

Override this to return your own decomposition.

Reimplemented in IMP::container::MinimumPairScore.

virtual double IMP::PairScore::evaluate_if_good_index ( Model m,
const ParticleIndexPair vt,
DerivativeAccumulator da,
double  max 
) const
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.

Returns
the score if score<= max or some arbitrary value > max otherwise.

Reimplemented in IMP::core::ClosePairsPairScore, and IMP::core::KClosePairsPairScore.

virtual double IMP::PairScore::evaluate_if_good_indexes ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
double  max,
unsigned int  lower_bound,
unsigned int  upper_bound 
) const
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.

Returns
the score if score<= max or some arbitrary value > max otherwise.
Note
Implementations for these are provided by the IMP_PAIR_SCORE() macro.

Reimplemented in IMP::npctransport::LinearWellPairScore, IMP::core::WeightedSphereDistancePairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::npctransport::SitesPairScore, IMP::core::ClosePairsPairScore, IMP::npctransport::LinearSoftSpherePairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::SlabWithCylindricalPorePairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::atom::LennardJonesPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::npctransport::SlabWithToroidalPorePairScore, IMP::core::TypedPairScore, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::core::KClosePairsPairScore, IMP::npc::MinimumSphereDistancePairScore, IMP::atom::CoulombPairScore, IMP::core::TransformedDistancePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::spb::AttributeDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::example::ExamplePairScore, IMP::spb::RigidBodyPackingScore, IMP::container::MinimumPairScore, IMP::misc::LowestRefinedPairScore, IMP::spb::KinkPairScore, IMP::misc::SoftCylinderPairScore, and IMP::core::RigidBodyAnglePairScore.

virtual double IMP::PairScore::evaluate_index ( Model m,
const ParticleIndexPair vt,
DerivativeAccumulator da 
) const
pure virtual

Compute the score and the derivative if needed.

Parameters
mthe model of vt
vtthe index in m of an object of type ParticlePair
daa DerivativeAccumulator that weights computed derivatives. If nullptr, derivatives will not be computed.

Implemented in IMP::npctransport::LinearWellPairScore, IMP::core::SoftSpherePairScore, IMP::core::WeightedSphereDistancePairScore, IMP::npctransport::SitesPairScore, IMP::core::SoftSubSurfacePairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::core::SoftSuperSurfacePairScore, IMP::core::HarmonicSurfaceDepthPairScore, IMP::core::HarmonicSphereDistancePairScore, IMP::core::HarmonicSurfaceHeightPairScore, IMP::core::ClosePairsPairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::LinearSoftSpherePairScore, IMP::core::HarmonicSurfaceDistancePairScore, IMP::atom::LennardJonesPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::core::TypedPairScore, IMP::core::SurfaceDepthPairScore, IMP::npctransport::SlabWithCylindricalPorePairScore, IMP::core::HarmonicUpperBoundSphereDistancePairScore, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::core::HarmonicDistancePairScore, IMP::core::KClosePairsPairScore, IMP::npctransport::SlabWithToroidalPorePairScore, IMP::core::SurfaceHeightPairScore, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::atom::CoulombPairScore, IMP::npc::MinimumSphereDistancePairScore, IMP::core::SphereDistancePairScore, IMP::core::TransformedDistancePairScore, IMP::score_functor::DistancePairScoreWithCache< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< score_functor::OrientedSoap >, IMP::core::SurfaceDistancePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::container::MinimumPairScore, IMP::example::ExamplePairScore, IMP::misc::LowestRefinedPairScore, IMP::spb::AttributeDistancePairScore, IMP::core::DistancePairScore, IMP::spb::RigidBodyPackingScore, IMP::misc::SoftCylinderPairScore, IMP::core::RigidBodyAnglePairScore, IMP::misc::LogPairScore, and IMP::spb::KinkPairScore.

virtual double IMP::PairScore::evaluate_indexes ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
unsigned int  lower_bound,
unsigned int  upper_bound 
) const
virtual

Compute the score and the derivative if needed over a set.

Parameters
mthe model of o
oobjects of type ParticlePair, specified by index
daa derivative accumulator that weights computed derivatives. If nullptr, derivatives will not be computed.
lower_boundindex of first item in o to evaluate
upper_boundindex one past last item in o to evaluate
Note
Implementations for these are provided by the IMP_PAIR_SCORE() macro.

Reimplemented in IMP::npctransport::LinearWellPairScore, IMP::npctransport::LinearInteractionPairScore, IMP::core::WeightedSphereDistancePairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::npctransport::SitesPairScore, IMP::core::ClosePairsPairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::LinearSoftSpherePairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::atom::LennardJonesPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::npctransport::SlabWithCylindricalPorePairScore, IMP::core::TypedPairScore, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::npctransport::SlabWithToroidalPorePairScore, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::core::KClosePairsPairScore, IMP::score_functor::DistancePairScoreWithCache< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< score_functor::OrientedSoap >, IMP::npc::MinimumSphereDistancePairScore, IMP::atom::CoulombPairScore, IMP::core::TransformedDistancePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::spb::AttributeDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::example::ExamplePairScore, IMP::spb::RigidBodyPackingScore, IMP::container::MinimumPairScore, IMP::misc::LowestRefinedPairScore, IMP::spb::KinkPairScore, IMP::misc::SoftCylinderPairScore, and IMP::core::RigidBodyAnglePairScore.

virtual double IMP::PairScore::evaluate_indexes_delta ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
const std::vector< unsigned > &  indexes,
std::vector< double > &  score 
) const
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::npctransport::LinearWellPairScore, IMP::core::WeightedSphereDistancePairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::core::ClosePairsPairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::atom::LennardJonesPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::core::TypedPairScore, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< score_functor::OrientedSoap >, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::core::KClosePairsPairScore, IMP::npc::MinimumSphereDistancePairScore, IMP::atom::CoulombPairScore, IMP::core::TransformedDistancePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::spb::AttributeDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::example::ExamplePairScore, IMP::spb::RigidBodyPackingScore, IMP::container::MinimumPairScore, IMP::misc::LowestRefinedPairScore, IMP::spb::KinkPairScore, IMP::misc::SoftCylinderPairScore, and IMP::core::RigidBodyAnglePairScore.

virtual double IMP::PairScore::evaluate_indexes_scores ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
unsigned int  lower_bound,
unsigned int  upper_bound,
std::vector< double > &  score 
) const
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::npctransport::LinearWellPairScore, IMP::core::WeightedSphereDistancePairScore, IMP::core::NormalizedSphereDistancePairScore, IMP::core::ClosePairsPairScore, IMP::npctransport::HarmonicWellPairScore, IMP::npctransport::AnchorToCylidnricalPorePairScore, IMP::atom::LennardJonesPairScore, IMP::core::HarmonicUpperBoundSphereDiameterPairScore, IMP::core::TypedPairScore, IMP::score_functor::SurfaceDistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< DistanceScoreT >, IMP::score_functor::DistancePairScore< LinearInteractionScore >, IMP::score_functor::DistancePairScore< LinearSoftSphereScore >, IMP::score_functor::DistancePairScore< score_functor::Statistical< Key, BIPARTITE, INTERPOLATE, SPARSE > >, IMP::score_functor::DistancePairScore< score_functor::LoopStatistical >, IMP::score_functor::DistancePairScore< score_functor::Statistical< ProteinLigandType, BIPARTITE, INTERPOLATE, false > >, IMP::score_functor::DistancePairScore< score_functor::Dope >, IMP::core::KClosePairsPairScore, IMP::score_functor::DistancePairScoreWithCache< DistanceScoreT >, IMP::score_functor::DistancePairScoreWithCache< score_functor::OrientedSoap >, IMP::npc::MinimumSphereDistancePairScore, IMP::atom::CoulombPairScore, IMP::core::TransformedDistancePairScore, IMP::isd::RepulsiveDistancePairScore, IMP::spb::AttributeDistancePairScore, IMP::core::RefinedPairsPairScore, IMP::example::ExamplePairScore, IMP::spb::RigidBodyPackingScore, IMP::container::MinimumPairScore, IMP::misc::LowestRefinedPairScore, IMP::spb::KinkPairScore, IMP::misc::SoftCylinderPairScore, and IMP::core::RigidBodyAnglePairScore.


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