home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
isd
version 20241121.develop.d97d4ead1f
StudentTRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/StudentTRestraint.h
3
* \brief A Student-t distribution restraint
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPISD_STUDENT_T_RESTRAINT_H
10
#define IMPISD_STUDENT_T_RESTRAINT_H
11
12
#include <IMP/isd/isd_config.h>
13
#include <
IMP/isd/FStudentT.h
>
14
#include <
IMP/Particle.h
>
15
#include <
IMP/Restraint.h
>
16
17
IMPISD_BEGIN_NAMESPACE
18
19
//! A Student-t distribution restraint
20
/** It restraints 1 to 3 particles, with the mean \f$\mu\f$, standard deviation
21
\f$\sigma\f$ and degrees of freedom \f$\nu\f$ able to be constants or
22
Nuisance particles.
23
24
\see FStudentT
25
*/
26
class
IMPISDEXPORT
StudentTRestraint
:
public
Restraint
{
27
private
:
28
Pointer<FStudentT>
studentt_;
29
ParticleIndex
px_, pmu_, psigma_, pnu_;
30
double
x_, mu_, sigma_, nu_;
31
bool
isx_, ismu_, issigma_, isnu_;
// true if it's a particle
32
33
private
:
34
double
get_x()
const
;
35
double
get_mu()
const
;
36
double
get_sigma()
const
;
37
double
get_nu()
const
;
38
void
initialize();
39
void
update_distribution();
40
41
public
:
42
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
ParticleIndexAdaptor
mu,
43
ParticleIndexAdaptor
sigma,
ParticleIndexAdaptor
nu);
44
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
double
mu,
45
ParticleIndexAdaptor
sigma,
ParticleIndexAdaptor
nu);
46
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
ParticleIndexAdaptor
mu,
47
double
sigma,
ParticleIndexAdaptor
nu);
48
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
ParticleIndexAdaptor
mu,
49
ParticleIndexAdaptor
sigma,
double
nu);
50
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
double
mu,
double
sigma,
51
ParticleIndexAdaptor
nu);
52
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
double
mu,
53
ParticleIndexAdaptor
sigma,
double
nu);
54
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
ParticleIndexAdaptor
mu,
55
double
sigma,
double
nu);
56
StudentTRestraint
(
Model
*m,
ParticleIndexAdaptor
x,
double
mu,
double
sigma,
57
double
nu);
58
StudentTRestraint
(
Model
*m,
double
x,
ParticleIndexAdaptor
mu,
59
ParticleIndexAdaptor
sigma,
ParticleIndexAdaptor
nu);
60
StudentTRestraint
(
Model
*m,
double
x,
double
mu,
ParticleIndexAdaptor
sigma,
61
ParticleIndexAdaptor
nu);
62
StudentTRestraint
(
Model
*m,
double
x,
ParticleIndexAdaptor
mu,
double
sigma,
63
ParticleIndexAdaptor
nu);
64
StudentTRestraint
(
Model
*m,
double
x,
ParticleIndexAdaptor
mu,
65
ParticleIndexAdaptor
sigma,
double
nu);
66
StudentTRestraint
(
Model
*m,
double
x,
double
mu,
double
sigma,
67
ParticleIndexAdaptor
nu);
68
StudentTRestraint
(
Model
*m,
double
x,
double
mu,
ParticleIndexAdaptor
sigma,
69
double
nu);
70
StudentTRestraint
(
Model
*m,
double
x,
ParticleIndexAdaptor
mu,
double
sigma,
71
double
nu);
72
73
//! Get probability (-log score)
74
double
get_probability
()
const
{
return
exp(-
unprotected_evaluate
(
nullptr
)); }
75
76
virtual
double
unprotected_evaluate
(
IMP::DerivativeAccumulator
*accum)
77
const override
;
78
79
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
80
81
IMP_OBJECT_METHODS
(
StudentTRestraint
);
82
};
83
84
IMPISD_END_NAMESPACE
85
86
#endif
/* IMPISD_STUDENT_T_RESTRAINT_H */
IMP::isd::StudentTRestraint::get_probability
double get_probability() const
Get probability (-log score)
Definition:
StudentTRestraint.h:74
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::ParticleIndexAdaptor
Take Decorator, Particle or ParticleIndex.
Definition:
particle_index.h:32
IMP::Index< ParticleIndexTag >
IMP::Restraint::unprotected_evaluate
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
IMP::Vector
A more IMP-like version of the std::vector.
Definition:
Vector.h:50
IMP::Pointer
A smart pointer to a reference counted object.
Definition:
Pointer.h:87
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:86
IMP::isd::StudentTRestraint
A Student-t distribution restraint.
Definition:
StudentTRestraint.h:26
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
Restraint.h
Abstract base class for all restraints.
FStudentT.h
Joint Student's t-distribution of Function.
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