IMP
2.1.0
The Integrative Modeling Platform
IMP Mainpage
All IMP Modules
Related Pages
Modules
Namespaces
Classes
Files
Examples
Indexes
File List
File Members
TALOSRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/TALOSRestraint.h
3
* \brief TALOS dihedral restraint between four particles.
4
*
5
* Copyright 2007-2013 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPISD_TALOS_RESTRAINT_H
10
#define IMPISD_TALOS_RESTRAINT_H
11
12
#include <IMP/isd/isd_config.h>
13
#include "
Scale.h
"
14
#include "
vonMisesSufficient.h
"
15
16
#include <
IMP/kernel/Restraint.h
>
17
#include <
IMP/kernel/Particle.h
>
18
19
IMPISD_BEGIN_NAMESPACE
20
21
//! phi/psi dihedral restraint between four particles, using data from TALOS.
22
/** The likelihood is
23
\f[
24
f(\chi_{exp}^1,\cdots,\chi_{exp}^N|\chi(X),\kappa,I)
25
= \frac{1}{2\pi I_0(\kappa)^N}
26
\exp \left(R_0 \kappa \cos (\chi_{exp}-\chi(X)) \right)
27
\f]
28
where the sufficient statistics are \f$N\f$ the number of observations,
29
\f$R\f$ and \f$\chi_{exp}\f$.
30
\see vonMisesSufficient.h for further detail.
31
*/
32
class
IMPISDEXPORT
TALOSRestraint
:
public
kernel::Restraint
33
{
34
public
:
35
36
//! Create restraint from a list of particles and the data.
37
/** \param[in] m the Model
38
\param[in] p list of 4 particles that make the dihedral angle.
39
\param[in] data list of observations for that angle.
40
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
41
*/
42
TALOSRestraint
(
kernel::Model
*m,
kernel::Particles
p,
Floats
data,
43
kernel::Particle
*kappa);
44
45
//! Create restraint from 4 particles and the data.
46
/** \param[in] m the Model
47
\param[in] p1 Pointer to first particle in dihedral restraint.
48
\param[in] p2 Pointer to second particle in dihedral restraint.
49
\param[in] p3 Pointer to third particle in dihedral restraint.
50
\param[in] p4 Pointer to fourth particle in dihedral restraint.
51
\param[in] data list of observations for that angle.
52
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
53
*/
54
TALOSRestraint
(
kernel::Model
*m,
kernel::Particle
* p1,
kernel::Particle
* p2,
55
kernel::Particle
* p3,
kernel::Particle
*p4,
Floats
data,
56
kernel::Particle
*kappa);
57
58
//! Create restraint from a list of particles and the sufficient statistics.
59
/** \param[in] m the Model
60
\param[in] p list of 4 particles that make the dihedral angle.
61
\param[in] N Number of observations
62
\param[in] R0 component on the x axis
63
\param[in] chiexp average observed angle.
64
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
65
*/
66
TALOSRestraint
(
kernel::Model
*m,
kernel::Particles
p,
unsigned
N,
double
R0,
67
double
chiexp,
kernel::Particle
*kappa);
68
69
//! Create restraint from 4 particles and the sufficient statistics.
70
/** \param[in] m the Model
71
\param[in] p1 Pointer to first particle in dihedral restraint.
72
\param[in] p2 Pointer to second particle in dihedral restraint.
73
\param[in] p3 Pointer to third particle in dihedral restraint.
74
\param[in] p4 Pointer to fourth particle in dihedral restraint.
75
\param[in] N Number of observations
76
\param[in] R0 component on the x axis
77
\param[in] chiexp average observed angle.
78
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
79
*/
80
TALOSRestraint
(
kernel::Model
*m,
kernel::Particle
* p1,
kernel::Particle
* p2,
81
kernel::Particle
* p3,
kernel::Particle
*p4,
unsigned
N,
double
R0,
82
double
chiexp,
kernel::Particle
*kappa);
83
84
85
//! Call for probability
86
double
get_probability
()
const
87
{
88
return
exp(-unprotected_evaluate(
nullptr
));
89
}
90
91
double
get_R0()
const
92
{
93
return
mises_->get_R0();
94
}
95
96
double
get_chiexp()
const
97
{
98
return
mises_->get_chiexp();
99
}
100
101
virtual
double
102
unprotected_evaluate(
IMP::kernel::DerivativeAccumulator
*accum)
103
const
IMP_OVERRIDE;
104
virtual
IMP::kernel::ModelObjectsTemp
do_get_inputs
() const IMP_OVERRIDE;
105
IMP_OBJECT_METHODS
(
TALOSRestraint
);
106
107
private:
108
base::Pointer<kernel::
Particle
> p_[4];
109
base::Pointer<kernel::
Particle
> kappa_;
110
base::Pointer<
vonMisesSufficient
> mises_;
111
};
112
113
IMPISD_END_NAMESPACE
114
115
#endif
/* IMPISD_TALOS_RESTRAINT_H */
vonMisesSufficient.h
Normal distribution of Function.
IMP::kernel::DerivativeAccumulator
Class for adding derivatives from restraints to the model.
Definition:
kernel/DerivativeAccumulator.h:25
Scale.h
A decorator for scale parameters particles.
IMP::isd::TALOSRestraint::get_probability
double get_probability() const
Call for probability.
Definition:
TALOSRestraint.h:86
IMP::base::Vector< base::Pointer< Particle > >
IMP::isd::vonMisesSufficient
vonMisesSufficient
Definition:
vonMisesSufficient.h:36
Restraint.h
Abstract base class for all restraints.
IMP::kernel::Restraint
A restraint is a term in an IMP ScoringFunction.
Definition:
kernel/declare_Restraint.h:52
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/declare_Particle.h:34
IMP::isd::TALOSRestraint
phi/psi dihedral restraint between four particles, using data from TALOS.
Definition:
TALOSRestraint.h:32
Particle.h
Classes to handle individual model particles.
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/declare_Model.h:72