IMP logo
IMP Reference Guide  2.5.0
The Integrative Modeling Platform
ConnectivityRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/ConnectivityRestraint.h \brief Connectivity restraint.
3  *
4  * Restrict max distance between at least one pair of particles of any
5  * two distinct types.
6  *
7  * Copyright 2007-2015 IMP Inventors. All rights reserved.
8  *
9  */
10 
11 #ifndef IMPCORE_CONNECTIVITY_RESTRAINT_H
12 #define IMPCORE_CONNECTIVITY_RESTRAINT_H
13 
14 #include <IMP/core/core_config.h>
15 #include "DistanceRestraint.h"
16 
17 #include <IMP/SingletonContainer.h>
18 #include <IMP/Restraint.h>
19 #include <IMP/PairScore.h>
20 
21 IMPCORE_BEGIN_NAMESPACE
22 
23 //! Ensure that a set of particles remains connected with one another.
24 /** The restraint implements ambiguous connectivity. That is, it takes
25  several particles and ensures that they remain
26  connected, but allows how they are connected to change. If you wish
27  to restraint the connectivity of sets of
28  particles (i.e. each protein is represented using a set of balls)
29  use an appropriate PairScore which calls a Refiner (such
30  as ClosePairsPairScore).
31 
32  \include connectivity_restraint.py
33 
34  More precisely, the restraint scores by computing the MST on the complete
35  graph connecting all the particles. The edge weights are given by
36  the value of the PairScore for the two endpoints of the edge.
37  */
38 class IMPCOREEXPORT ConnectivityRestraint : public Restraint {
41 
42  public:
43  //! Use the given PairScore
45 
46  //! Return the set of pairs which are connected by the restraint
47  /** This set of pairs reflects the current configuration at the time of
48  the get_connected_pairs() call, not the set at the time of the last
49  evaluate() call.
50  */
51  ParticlePairsTemp get_connected_pairs() const;
52 
53  //! Return the pair score used for scoring
54  PairScore *get_pair_score() const { return ps_; }
55 
57 
58  public:
59  double unprotected_evaluate(IMP::DerivativeAccumulator *accum) const
63  ;
64 };
65 
66 IMPCORE_END_NAMESPACE
67 
68 #endif /* IMPCORE_CONNECTIVITY_RESTRAINT_H */
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:38
Distance restraint between two particles.
A container for Singletons.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
virtual Restraints do_create_current_decomposition() const
Definition: Restraint.h:206
Define PairScore.
PairScore * get_pair_score() const
Return the pair score used for scoring.
Ensure that a set of particles remains connected with one another.
Abstract base class for all restraints.
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:52