IMP
2.2.0
The Integrative Modeling Platform
IMP Mainpage
All IMP Modules
Related Pages
Modules
Namespaces
Classes
Files
Examples
Indexes
File List
File Members
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-2014 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/kernel/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
kernel::Restraint
{
39
IMP::base::PointerMember<PairScore>
ps_;
40
IMP::base::PointerMember<SingletonContainer>
sc_;
41
42
public
:
43
//! Use the given PairScore
44
ConnectivityRestraint
(
PairScore
*ps, SingletonContainerAdaptor sc);
45
46
ConnectivityRestraint
(
Model
*m,
PairScore
*ps);
47
#ifndef IMP_DOXYGEN
48
/** @name kernel::Particles to be connected
49
50
The following methods are used to manipulate the list of particles
51
that are to be connected. Each particle should have all the
52
attributes expected by the PairScore used.
53
54
Ideally, one should pass a singleton container instead. These
55
can only be used if none is passed.
56
*/
57
/*@{*/
58
void
add_particle
(
kernel::Particle
*p);
59
void
add_particles
(
const
kernel::ParticlesTemp
&ps);
60
void
set_particles(
const
kernel::ParticlesTemp
&ps);
61
/*@}*/
62
#endif
63
64
//! Return the set of pairs which are connected by the restraint
65
/** This set of pairs reflects the current configuration at the time of
66
the get_connected_pairs() call, not the set at the time of the last
67
evaluate() call.
68
*/
69
kernel::ParticlePairsTemp
get_connected_pairs()
const
;
70
71
//! Return the pair score used for scoring
72
PairScore
*
get_pair_score
()
const
{
return
ps_; }
73
74
kernel::Restraints
do_create_current_decomposition
()
const
;
75
76
public
:
77
double
unprotected_evaluate(
IMP::DerivativeAccumulator
*accum)
const
78
IMP_OVERRIDE;
79
IMP::kernel::ModelObjectsTemp
do_get_inputs
() const IMP_OVERRIDE;
80
IMP_OBJECT_METHODS
(
ConnectivityRestraint
);
81
;
82
};
83
84
IMPCORE_END_NAMESPACE
85
86
#endif
/* IMPCORE_CONNECTIVITY_RESTRAINT_H */
IMP::kernel::DerivativeAccumulator
Class for adding derivatives from restraints to the model.
Definition:
kernel/DerivativeAccumulator.h:25
DistanceRestraint.h
Distance restraint between two particles.
SingletonContainer.h
Import IMP/kernel/SingletonContainer.h in the namespace.
IMP::base::PointerMember< PairScore >
IMP::base::Vector< base::WeakPointer< Particle > >
IMP::kernel::PairScore
Abstract score function.
Definition:
kernel/PairScore.h:33
Restraint.h
Abstract base class for all restraints.
IMP::rmf::add_particles
void add_particles(RMF::FileHandle fh, const kernel::ParticlesTemp &hs)
PairScore.h
Import IMP/kernel/PairScore.h in the namespace.
IMP::kernel::Restraint
A restraint is a term in an IMP ScoringFunction.
Definition:
kernel/Restraint.h:52
IMP::core::ConnectivityRestraint::get_pair_score
PairScore * get_pair_score() const
Return the pair score used for scoring.
Definition:
ConnectivityRestraint.h:72
IMP::core::ConnectivityRestraint
Ensure that a set of particles remains connected with one another.
Definition:
ConnectivityRestraint.h:38
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
base/object_macros.h:25
IMP::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:34
IMP::kernel::Restraint::do_create_current_decomposition
virtual Restraints do_create_current_decomposition() const
Definition:
kernel/Restraint.h:215
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::rmf::add_particle
void add_particle(RMF::FileHandle fh, kernel::Particle *hs)
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:72