home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.2
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
isd
version 2.20.2
LognormalAmbiguousRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/LognormalAmbiguousRestraint.h
3
* \brief A sigmoid shaped restraint between
4
* residues with discrete classifier
5
* and ambiguous assignment. To be used with
6
* cross-linking mass-spectrometry data.
7
*
8
* Copyright 2007-2022 IMP Inventors. All rights reserved.
9
*
10
*/
11
12
#ifndef IMPISD_LOGNORMAL_AMBIGUOUS_RESTRAINT_H
13
#define IMPISD_LOGNORMAL_AMBIGUOUS_RESTRAINT_H
14
15
#include <
IMP/isd/Scale.h
>
16
#include <IMP/isd/isd_config.h>
17
#include <
IMP/Restraint.h
>
18
#include <
IMP/PairContainer.h
>
19
20
IMPISD_BEGIN_NAMESPACE
21
22
/** A restraint for ambiguous cross-linking MS data.
23
\f$ z_i \f$ is the discrete classifier,
24
\f$ \sigma_G \f$ is the uncertainty estimate for good data points,
25
\f$ \sigma_B \f$ is the uncertainty estimate for bad data points,
26
\f$ k_i \f$ is the index of the restraint to be
27
picked up from the ambiguous set, and
28
\f$ \lambda_0 \f$ is the maximum length for the cross-linker.
29
30
Usage: Construct the ambiguous set using
31
LognormalAmbiguousRestraint(\f$ z_i \f$, \f$ \sigma_G \f$,
32
\f$ \sigma_B \f$, \f$ k_i \f$, \f$ \lambda_0 \f$).
33
Pass individual cross-linked particles to
34
add_contribution(part0, part1).
35
The marginal likelihood is modeled by a sigmoid function:
36
37
\f[p(D|X,I) = \frac{1}{\lambda_0+\sigma(\sqrt(\pi/2)-1)}
38
[1+\theta(r_k-\lambda_0+\sigma)[\exp(-\frac{(r_k-
39
\lambda_0+\sigma)^2}{2\sigma^2})]]
40
\f]
41
42
where \f$ \sigma=z_i\sigma_G+(1-z_i)\sigma_B \f$
43
and \f$ r_k \f$ is the distance between part0 and part1.
44
*/
45
class
IMPISDEXPORT
LognormalAmbiguousRestraint
:
public
Restraint
46
{
47
Pointer<Particle>
p1_;
48
Pointer<Particle>
p2_;
49
Pointer<Particle>
ki_;
50
Pointer<Particle>
sigmaG_;
51
Particles
omegas_;
52
Floats
lexp_;
53
54
public
:
55
//! Create the restraint.
56
/** Restraints should store the particles they are to act on,
57
preferably in a Singleton or PairContainer as appropriate.
58
*/
59
LognormalAmbiguousRestraint
60
(
Particle
*p1,
Particle
*p2,
Particle
*ki,
Particle
*sigmaG);
61
62
63
// add a contribution: simple case
64
void
add_contribution(
double
lexp,
Particle
*omega);
65
66
unsigned
get_number_of_contributions()
const
{
return
lexp_.size();}
67
68
void
draw_k_from_posterior(
double
kt);
69
70
/* call for probability */
71
double
get_probability()
const
72
{
73
return
exp(-
unprotected_evaluate
(NULL));
74
}
75
76
virtual
double
unprotected_evaluate
(
IMP::DerivativeAccumulator
*accum)
77
const override
;
78
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
79
IMP_OBJECT_METHODS
(
LognormalAmbiguousRestraint
);
80
};
81
82
IMPISD_END_NAMESPACE
83
84
#endif
/* IMPISD_LOGNORMAL_AMBIGUOUS_RESTRAINT_H */
IMP::isd::LognormalAmbiguousRestraint
Definition:
LognormalAmbiguousRestraint.h:45
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::Restraint::unprotected_evaluate
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
Scale.h
A decorator for scale parameters particles.
IMP::Vector< Pointer< Particle > >
IMP::Pointer
A smart pointer to a reference counted object.
Definition:
Pointer.h:87
PairContainer.h
A container for Pairs.
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
Restraint.h
Abstract base class for all restraints.
IMP::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::DerivativeAccumulator
Class for adding derivatives from restraints to the model.
Definition:
DerivativeAccumulator.h:24
IMP::Restraint
A restraint is a term in an IMP ScoringFunction.
Definition:
Restraint.h:56