home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.7400db2aee,2024/11/23
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
isd
version 20241123.develop.7400db2aee
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