IMP logo
IMP Reference Guide  develop.5de2a9ba5d,2024/02/24
The Integrative Modeling Platform
IMP::core::SurfaceTetheredChain Class Reference

Score on surface-to-end distance of chain tethered to impenetrable surface. More...

#include <IMP/core/SurfaceTetheredChain.h>

+ Inheritance diagram for IMP::core::SurfaceTetheredChain:

Detailed Description

Score on surface-to-end distance of chain tethered to impenetrable surface.

When a flexible linker is represented by the freely jointed chain model with one end tethered to an impenetrable surface, the distance \( z \) of the free end from the surface follows the distribution

\[ p(z | \beta) = 2 \beta z \exp{(-\beta z^2)}, \]

where \( \beta = \frac{3}{2 N b^2} \), \( N \) is the number of links, and \( b \) is the average length of a single link. The score reaches its minimum value when \( z = \frac{1}{\sqrt{2 \beta}} \).

See KA Dill, S Bromberg. Molecular Driving Forces. 2nd Edition. 2010. Eq 34.7.

Note
While the Gaussian approximation breaks down when \(z > N b\), the score naturally increases as a harmonic restraint with force constant \(2 \beta\).
The resulting score blows up as the \( z \) approaches 0. Therefore, in this implementation, when \( z = .01 z_{min} \), where \( z_{min} \) is the value of \( z \) where the score is minimized, then the score increases linearly as \( z \) decreases.
See Also
misc::FreelyJointedChain
misc::WormLikeChain
Harmonic
SurfaceHeightPairScore

Definition at line 43 of file SurfaceTetheredChain.h.

Public Member Functions

 SurfaceTetheredChain (int link_num, double link_length)
 
virtual double evaluate (double feature) const override
 Calculate score with respect to the given feature. More...
 
virtual DerivativePair evaluate_with_derivative (double feature) const override
 Calculate score and derivative with respect to the given feature. More...
 
double get_average_distance () const
 Get the average distance from the surface. More...
 
double get_distance_at_minimum () const
 Get the distance at which the score is at its minimum value. More...
 
double get_link_length () const
 Get length of each chain link. More...
 
int get_link_number () const
 Get number of links in chain. More...
 
virtual std::string get_type_name () const override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
void set_link_length (double b)
 Set the length of each chain link. More...
 
void set_link_number (int N)
 Set the number of links in chain. More...
 
- Public Member Functions inherited from IMP::UnaryFunction
 UnaryFunction (std::string name="UnaryFunction%1%")
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Member Function Documentation

virtual double IMP::core::SurfaceTetheredChain::evaluate ( double  feature) const
overridevirtual

Calculate score with respect to the given feature.

Parameters
[in]featureValue of feature being tested.
Returns
Score

Reimplemented from IMP::UnaryFunction.

Definition at line 74 of file SurfaceTetheredChain.h.

virtual DerivativePair IMP::core::SurfaceTetheredChain::evaluate_with_derivative ( double  feature) const
overridevirtual

Calculate score and derivative with respect to the given feature.

Parameters
[in]featureValue of feature being tested.
Returns
a DerivativePair containing the score and its partial derivative with respect to the given feature.

Reimplemented from IMP::UnaryFunction.

Definition at line 62 of file SurfaceTetheredChain.h.

double IMP::core::SurfaceTetheredChain::get_average_distance ( ) const

Get the average distance from the surface.

Definition at line 106 of file SurfaceTetheredChain.h.

double IMP::core::SurfaceTetheredChain::get_distance_at_minimum ( ) const

Get the distance at which the score is at its minimum value.

Definition at line 101 of file SurfaceTetheredChain.h.

double IMP::core::SurfaceTetheredChain::get_link_length ( ) const

Get length of each chain link.

Definition at line 84 of file SurfaceTetheredChain.h.

int IMP::core::SurfaceTetheredChain::get_link_number ( ) const

Get number of links in chain.

Definition at line 81 of file SurfaceTetheredChain.h.

virtual ::IMP::VersionInfo IMP::core::SurfaceTetheredChain::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 78 of file SurfaceTetheredChain.h.

void IMP::core::SurfaceTetheredChain::set_link_length ( double  b)

Set the length of each chain link.

Definition at line 94 of file SurfaceTetheredChain.h.

void IMP::core::SurfaceTetheredChain::set_link_number ( int  N)

Set the number of links in chain.

Definition at line 87 of file SurfaceTetheredChain.h.


The documentation for this class was generated from the following file: