IMP
2.4.0
The Integrative Modeling Platform
|
A restraint is a term in an IMP
ScoringFunction.
More...
#include "IMP/Restraint.h"
Inherits IMP::kernel::ModelObject.
Inherited by IMP::atom::CHARMMStereochemistryRestraint, IMP::atom::EzRestraint, IMP::container::MinimumPairRestraint, IMP::container::MinimumQuadRestraint, IMP::container::MinimumSingletonRestraint, IMP::container::MinimumTripletRestraint, IMP::container::PairsRestraint, IMP::container::PredicatePairsRestraint, IMP::container::PredicateQuadsRestraint, IMP::container::PredicateSingletonsRestraint, IMP::container::PredicateTripletsRestraint, IMP::container::QuadsRestraint, IMP::container::SingletonsRestraint, IMP::container::TripletsRestraint, IMP::core::ConnectivityRestraint, IMP::core::ConstantRestraint, IMP::core::DiameterRestraint, IMP::core::DihedralRestraint, IMP::core::DistanceRestraint, IMP::core::ExcludedVolumeRestraint, IMP::core::MinimumRestraint, IMP::core::MSConnectivityRestraint, IMP::core::PairRestraint, IMP::core::QuadRestraint, IMP::core::RigidBodyUmbrella, IMP::core::SingletonRestraint, IMP::core::TripletRestraint, IMP::core::VolumeRestraint, IMP::em2d::DummyRestraint, IMP::em2d::Em2DRestraint, IMP::em2d::Fine2DRegistrationRestraint, IMP::em2d::ParticlesDummyRestraint, IMP::em2d::PCAFitRestraint, IMP::em2d::RigidBodiesImageFitRestraint, IMP::em::DensityFillingRestraint, IMP::em::EnvelopeFitRestraint, IMP::em::EnvelopePenetrationRestraint, IMP::em::FitRestraint, IMP::em::PCAFitRestraint, IMP::example::ExampleComplexRestraint, IMP::example::ExampleRestraint, IMP::isd::AmbiguousNOERestraint, IMP::isd::AmbiguousRestraint, IMP::isd::AtomicCrossLinkMSRestraint, IMP::isd::CrossLinkMSRestraint, IMP::isd::CysteineCrossLinkRestraint, IMP::isd::FretRestraint, IMP::isd::GaussianEMRestraint, IMP::isd::GaussianProcessInterpolationRestraint, IMP::isd::GaussianRestraint, IMP::isd::JeffreysRestraint, IMP::isd::LognormalRestraint, IMP::isd::LogWrapper, IMP::isd::MarginalHBondRestraint, IMP::isd::MarginalNOERestraint, IMP::isd::NOERestraint, IMP::isd::TALOSRestraint, IMP::isd::UniformPrior, IMP::isd::vonMisesKappaConjugateRestraint, IMP::isd::vonMisesKappaJeffreysRestraint, IMP::isd::WeightRestraint, IMP::kernel::RestraintSet, IMP.modeller.ModellerRestraints, IMP::modeller::MultipleBinormalRestraint, IMP::multifit::ComplementarityRestraint, IMP::multifit::DummyRestraint, IMP::multifit::RadiusOfGyrationRestraint, IMP::multifit::WeightedExcludedVolumeRestraint, IMP::pmi::CompositeRestraint, IMP::pmi::SigmoidRestraintSphere, IMP::saxs::RadiusOfGyrationRestraint, IMP::saxs::Restraint, and write_a_restraint.MyRestraint.
A restraint is a term in an IMP
ScoringFunction.
To implement a new restraint, just implement the two methods:
When implementing an expensive restraint it makes sense to support early abort of evaluation if the user is only interested in good scores or scores below a threshold. To do this, look at the fields of the ScoreAccumulator object such as
See IMP::example::ExampleRestraint for an example.
Definition at line 52 of file kernel/Restraint.h.
Public Member Functions | |
Restraint (kernel::Model *m, std::string name) | |
void | add_score_and_derivatives (ScoreAccumulator sa) const |
Perform the actual restraint scoring. More... | |
Restraint * | create_current_decomposition () const |
Decompose this restraint into constituent terms for the current conf. More... | |
Restraint * | create_decomposition () const |
Decompose this restraint into constituent terms. More... | |
virtual ScoringFunction * | create_scoring_function (double weight=1.0, double max=NO_MAX) const |
Create a scoring function with only this restraint. More... | |
virtual double | get_last_score () const |
double | get_score () const |
bool | get_was_good () const |
Public Member Functions inherited from IMP::kernel::ModelObject | |
ModelObject (kernel::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... | |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_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::base::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 |
virtual Restraints | do_create_current_decomposition () const |
virtual Restraints | do_create_decomposition () const |
ModelObjectsTemp | do_get_outputs () const |
Protected Member Functions inherited from IMP::kernel::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::base::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
Weights | |
Each restraint's contribution to the model score is weighted. The total weight for the restraint is the some over all the paths containing it. That is, if a restraint is in a RestraintSet with weight .5 and another with weight 2, and the restaint itself has weight 3, then the total weight of the restraint is \(.5 \cdot 3 + 2 \cdot 3 = 7.5 \). | |
void | set_weight (Float weight) |
Float | get_weight () const |
IMP::kernel::Restraint::Restraint | ( | kernel::Model * | m, |
std::string | name | ||
) |
Create a restraint and register it with the model. The restraint is not added to the implicit scoring function in the Model.
void IMP::kernel::Restraint::add_score_and_derivatives | ( | ScoreAccumulator | sa | ) | const |
Perform the actual restraint scoring.
The restraints should assume that all appropriate ScoreState objects have been updated and so that the input particles and containers are up to date. The returned score should be the unweighted score.
Restraint* IMP::kernel::Restraint::create_current_decomposition | ( | ) | const |
Decompose this restraint into constituent terms for the current conf.
The restraints returned have had set_model() called and so can be evaluated.
Restraint* IMP::kernel::Restraint::create_decomposition | ( | ) | const |
Decompose this restraint into constituent terms.
Given the set of input particles, decompose the restraint into parts that are as simple as possible. For many restraints, the simplest part is simply the restraint itself.
If a restraint can be decomposed, it should return a RestraintSet so that the maximum score and weight can be passed properly.
The restraints returned have had set_model() called and so can be evaluated.
|
virtual |
Create a scoring function with only this restraint.
|
protectedvirtual |
A restraint should override this to compute the score and derivatives.
Reimplemented in IMP::container::PredicatePairsRestraint, IMP::container::PredicateQuadsRestraint, IMP::container::PredicateSingletonsRestraint, IMP::container::PredicateTripletsRestraint, and IMP::example::ExampleRestraint.
|
protectedvirtual |
A Restraint should override this if they want to decompose themselves for display and other purposes. The returned restraints will be made in to a RestraintSet, if needed and the weight and maximum score set for the restraint set.
The returned restraints should be only the non-zero terms and should have their last scores set appropriately;
Reimplemented in IMP::core::MSConnectivityRestraint, IMP::core::ExcludedVolumeRestraint, and IMP::core::ConnectivityRestraint.
Definition at line 213 of file kernel/Restraint.h.
|
protectedvirtual |
A Restraint should override this if they want to decompose themselves for domino and other purposes. The returned restraints will be made in to a RestraintSet, if needed and the weight and maximum score set for the restraint set.
Reimplemented in IMP::core::ExcludedVolumeRestraint.
Definition at line 202 of file kernel/Restraint.h.
|
protectedvirtual |
|
virtual |
Return the (unweighted) score for this restraint last time it was evaluated.
Reimplemented in IMP::kernel::RestraintSet.
Definition at line 188 of file kernel/Restraint.h.
double IMP::kernel::Restraint::get_score | ( | ) | const |
Compute and return the current score for the restraint.
bool IMP::kernel::Restraint::get_was_good | ( | ) | const |
Return whether this restraint violated its maximum last time it was evaluated.
Definition at line 192 of file kernel/Restraint.h.