IMP
2.4.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Classes
Examples
include
IMP
isd
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-2015 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
public
:
34
//! Create restraint from a list of particles and the data.
35
/** \param[in] m the Model
36
\param[in] p list of 4 particles that make the dihedral angle.
37
\param[in] data list of observations for that angle.
38
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
39
*/
40
TALOSRestraint
(
kernel::Model
*m,
kernel::Particles
p,
Floats
data,
41
kernel::Particle
*kappa);
42
43
//! Create restraint from 4 particles and the data.
44
/** \param[in] m the Model
45
\param[in] p1 Pointer to first particle in dihedral restraint.
46
\param[in] p2 Pointer to second particle in dihedral restraint.
47
\param[in] p3 Pointer to third particle in dihedral restraint.
48
\param[in] p4 Pointer to fourth particle in dihedral restraint.
49
\param[in] data list of observations for that angle.
50
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
51
*/
52
TALOSRestraint
(
kernel::Model
*m,
kernel::Particle
*p1,
kernel::Particle
*p2,
53
kernel::Particle
*p3,
kernel::Particle
*p4,
Floats
data,
54
kernel::Particle
*kappa);
55
56
//! Create restraint from a list of particles and the sufficient statistics.
57
/** \param[in] m the Model
58
\param[in] p list of 4 particles that make the dihedral angle.
59
\param[in] N Number of observations
60
\param[in] R0 component on the x axis
61
\param[in] chiexp average observed angle.
62
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
63
*/
64
TALOSRestraint
(
kernel::Model
*m,
kernel::Particles
p,
unsigned
N,
double
R0,
65
double
chiexp,
kernel::Particle
*kappa);
66
67
//! Create restraint from 4 particles and the sufficient statistics.
68
/** \param[in] m the Model
69
\param[in] p1 Pointer to first particle in dihedral restraint.
70
\param[in] p2 Pointer to second particle in dihedral restraint.
71
\param[in] p3 Pointer to third particle in dihedral restraint.
72
\param[in] p4 Pointer to fourth particle in dihedral restraint.
73
\param[in] N Number of observations
74
\param[in] R0 component on the x axis
75
\param[in] chiexp average observed angle.
76
\param[in] kappa Pointer to the \f$\kappa\f$ concentration particle.
77
*/
78
TALOSRestraint
(
kernel::Model
*m,
kernel::Particle
*p1,
kernel::Particle
*p2,
79
kernel::Particle
*p3,
kernel::Particle
*p4,
unsigned
N,
80
double
R0,
double
chiexp,
kernel::Particle
*kappa);
81
82
//! Call for probability
83
double
get_probability
()
const
{
return
exp(-unprotected_evaluate(
nullptr
)); }
84
85
double
get_R0()
const
{
return
mises_->get_R0(); }
86
87
double
get_chiexp()
const
{
return
mises_->get_chiexp(); }
88
89
virtual
double
unprotected_evaluate(
IMP::kernel::DerivativeAccumulator
*accum)
90
const
IMP_OVERRIDE
;
91
virtual
IMP::kernel::ModelObjectsTemp
do_get_inputs
() const
IMP_OVERRIDE
;
92
IMP_OBJECT_METHODS
(
TALOSRestraint
);
93
94
private:
95
base::Pointer<kernel::
Particle
> p_[4];
96
base::Pointer<kernel::
Particle
> kappa_;
97
base::Pointer<
vonMisesSufficient
> mises_;
98
};
99
100
IMPISD_END_NAMESPACE
101
102
#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
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.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:83
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/Restraint.h:52
IMP::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:37
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. (Note that implementation of inline functions in in int...
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP_OVERRIDE
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Definition:
compiler_macros.h:75
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73