IMP
2.3.1
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
GaussianRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/GaussianRestraint.h
3
* \brief A lognormal restraint that uses the ISPA model to model NOE-derived
4
* distance fit.
5
*
6
* Copyright 2007-2014 IMP Inventors. All rights reserved.
7
*
8
*/
9
10
#ifndef IMPISD_GAUSSIAN_RESTRAINT_H
11
#define IMPISD_GAUSSIAN_RESTRAINT_H
12
13
#include <IMP/isd/isd_config.h>
14
#include <
IMP/kernel/Particle.h
>
15
#include <
IMP/kernel/Restraint.h
>
16
17
IMPISD_BEGIN_NAMESPACE
18
19
//! Normal probability distribution as a restraint
20
class
IMPISDEXPORT
GaussianRestraint
:
public
kernel::Restraint
{
21
private
:
22
base::Pointer<kernel::Particle>
px_;
23
double
x_;
24
base::Pointer<kernel::Particle>
pmu_;
25
double
mu_;
26
base::Pointer<kernel::Particle>
psigma_;
27
double
sigma_;
28
bool
isx_, ismu_, issigma_;
// true if it's a particle
29
double
chi_;
30
31
private
:
32
void
set_chi(
double
chi) { chi_ = chi; }
33
void
check_particles();
34
35
public
:
36
//! Gaussian restraint
37
/** The restraint is a 3-particle restraint, linking together the mean,
38
* observed value and variance, which can all be either Nuisances or doubles.
39
* If F is the identity function, this is a gaussian (e.g. harmonic)
40
* restraint.
41
*/
42
GaussianRestraint
(
kernel::Particle
*x,
kernel::Particle
*mu,
43
kernel::Particle
*sigma);
44
GaussianRestraint
(
double
x,
kernel::Particle
*mu,
kernel::Particle
*sigma);
45
GaussianRestraint
(
kernel::Particle
*x,
double
mu,
kernel::Particle
*sigma);
46
GaussianRestraint
(
kernel::Particle
*x,
kernel::Particle
*mu,
double
sigma);
47
GaussianRestraint
(
double
x,
double
mu,
kernel::Particle
*sigma);
48
GaussianRestraint
(
kernel::Particle
*x,
double
mu,
double
sigma);
49
GaussianRestraint
(
double
x,
kernel::Particle
*mu,
double
sigma);
50
51
/* call for probability */
52
double
get_probability()
const
{
return
exp(-unprotected_evaluate(
nullptr
)); }
53
54
double
get_chi()
const
{
return
chi_; }
55
56
virtual
double
unprotected_evaluate(
IMP::kernel::DerivativeAccumulator
*accum)
57
const
IMP_OVERRIDE
;
58
virtual
IMP::kernel::ModelObjectsTemp
do_get_inputs
()
const
IMP_OVERRIDE
;
59
IMP_OBJECT_METHODS
(
GaussianRestraint
);
60
};
61
62
IMPISD_END_NAMESPACE
63
64
#endif
/* IMPISD_GAUSSIAN_RESTRAINT_H */
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
IMP::base::Pointer
A smart pointer to a reference counted object.
Definition:
Pointer.h:87
IMP::base::Vector
Definition:
Vector.h:37
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
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::isd::GaussianRestraint
Normal probability distribution as a restraint.
Definition:
GaussianRestraint.h:20
IMP_OVERRIDE
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Definition:
compiler_macros.h:75