IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
FretRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/FretRestraint.h
3
* \brief FRET_R restraint
4
* to use in vivo FRET data [Muller et al. Mol Biol Cell 16, 3341, 2005]
5
*
6
* Copyright 2007-2014 IMP Inventors. All rights reserved.
7
*
8
*/
9
10
#ifndef IMPISD_FRET_RESTRAINT_H
11
#define IMPISD_FRET_RESTRAINT_H
12
#include <
IMP/isd/Scale.h
>
13
#include "isd_config.h"
14
#include <
IMP/kernel/Restraint.h
>
15
#include <
IMP/isd/FretData.h
>
16
17
IMPISD_BEGIN_NAMESPACE
18
/** A restraint for using in-vivo ensemble FRET data,
19
see Muller et al. Mol Biol Cell 16, 3341, 2005 for more info.
20
*/
21
22
class
IMPISDEXPORT
FretRestraint
:
public
kernel::Restraint
{
23
kernel::Particles
pd_;
24
kernel::Particles
pa_;
25
base::Pointer<kernel::Particle>
prd_;
26
algebra::Vector3D
GMMterd_;
27
algebra::Vector3Ds
GMMctrd_;
28
base::Pointer<kernel::Particle>
pra_;
29
algebra::Vector3D
GMMtera_;
30
algebra::Vector3Ds
GMMctra_;
31
base::Pointer<kernel::Particle>
kda_;
32
base::Pointer<kernel::Particle>
Ida_;
33
base::Pointer<kernel::Particle>
R0_;
34
base::Pointer<kernel::Particle>
sumFi_;
35
base::Pointer<kernel::Particle>
sigma0_;
36
base::Pointer<kernel::Particle>
Pbl_;
37
base::PointerMember<FretData>
data_;
38
double
fexp_;
39
double
multi_d_;
40
int
constr_type_;
41
Floats
GMMsig_;
42
Floats
GMMw_;
43
unsigned
Na_;
44
mutable
Floats
power6_;
45
std::vector<std::vector<unsigned> > states_;
46
47
double
get_sumFi(
double
Pbleach)
const
;
48
std::vector<unsigned> get_indices(
unsigned
index,
int
dimension)
const
;
49
50
public
:
51
//! Create the restraint.
52
/** kernel::Restraints should store the particles they are to act on,
53
preferably in a Singleton or PairContainer as appropriate.
54
*/
55
56
FretRestraint
(
kernel::Particles
pd,
kernel::Particles
pa,
57
kernel::Particle
*kda,
kernel::Particle
*Ida,
58
kernel::Particle
*R0,
kernel::Particle
*sigma0,
59
kernel::Particle
*Pbl,
double
fexp,
double
m_d = 1.0,
60
double
m_a = 1.0);
61
62
FretRestraint
(
kernel::Particle
*kda,
kernel::Particle
*Ida,
63
kernel::Particle
*sumFi,
kernel::Particle
*sigma0,
64
kernel::Particle
*Pbl,
double
fexp);
65
66
FretRestraint
(
kernel::Particle
*prd,
algebra::Vector3D
GMMterd,
67
algebra::Vector3Ds
GMMctrd,
Floats
GMMwd,
Floats
GMMsigd,
68
kernel::Particle
*pra,
algebra::Vector3D
GMMtera,
69
algebra::Vector3Ds
GMMctra,
Floats
GMMwa,
Floats
GMMsiga,
70
kernel::Particle
*kda,
kernel::Particle
*Ida,
71
kernel::Particle
*sigma0,
kernel::Particle
*Pbl,
FretData
*data,
72
double
fexp);
73
74
// get sumFi
75
double
get_sumFi()
const
;
76
77
// get average sigma
78
double
get_average_sigma(
double
fmod)
const
;
79
80
// lognormal standard error (according to Wikipedia)
81
double
get_standard_error()
const
;
82
83
// get model fret_r (for the two constructors, i.e. type 0 and 1)
84
double
get_model_fretr()
const
;
85
86
// get probability
87
double
get_probability()
const
;
88
89
// get experimental value
90
double
get_experimental_value()
const
{
91
return
fexp_;
92
};
93
94
// set experimental value
95
void
set_experimental_value(
double
fexp);
96
97
/** This macro declares the basic needed methods: evaluate and show
98
*/
99
virtual
double
unprotected_evaluate(
IMP::kernel::DerivativeAccumulator
*accum)
100
const
IMP_OVERRIDE
;
101
virtual
IMP::kernel::ModelObjectsTemp
do_get_inputs
()
const
IMP_OVERRIDE
;
102
IMP_OBJECT_METHODS
(
FretRestraint
);
103
104
private
:
105
double
get_model_fretr_type_0()
const
;
106
double
get_model_fretr_type_1()
const
;
107
algebra::Vector3Ds
get_current_centers(
kernel::Particle
*p,
108
const
algebra::Vector3Ds
&ctrs)
const
;
109
110
algebra::Vector3D
get_current_center(
kernel::Particle
*p,
111
const
algebra::Vector3D
&ctr)
const
;
112
};
113
114
IMPISD_END_NAMESPACE
115
116
#endif
/* IMPISD_FRET_RESTRAINT_H */
IMP::kernel::DerivativeAccumulator
Class for adding derivatives from restraints to the model.
Definition:
kernel/DerivativeAccumulator.h:25
IMP::base::PointerMember
A smart pointer to a ref-counted Object that is a class member.
Definition:
Pointer.h:147
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::base::Pointer
A smart pointer to a reference counted object.
Definition:
Pointer.h:87
IMP::base::Vector< base::Pointer< Particle > >
Restraint.h
Abstract base class for all restraints.
IMP::isd::FretRestraint
Definition:
FretRestraint.h:22
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::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:395
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::isd::FretData
Auxiliary class for FRET_R restraint.
Definition:
FretData.h:22
FretData.h
Auxiliary class useful for FRET_R restraint.
IMP_OVERRIDE
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Definition:
compiler_macros.h:75