IMP logo
IMP Reference Guide  develop.cb6747d2d1,2024/03/28
The Integrative Modeling Platform
IMP::misc::FreelyJointedChain Class Reference

Score on end-to-end distance of freely jointed chain. More...

#include <IMP/misc/FreelyJointedChain.h>

+ Inheritance diagram for IMP::misc::FreelyJointedChain:

Detailed Description

Score on end-to-end distance of freely jointed chain.

A flexible linker can be represented by the freely jointed chain model as a polymer under a Gaussian random walk. The end-to-end distance \( z \) then follows the distribution

\[p(z | \beta) = 4 \pi z^2 (\frac{\beta}{\pi})^{3/2)} \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{\beta}} \).

See KA Dill, S Bromberg. Molecular Driving Forces. 2nd Edition. 2010. Eqs 33.26, 33.27.

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
WormLikeChain
core::Harmonic

Definition at line 41 of file FreelyJointedChain.h.

Public Member Functions

 FreelyJointedChain (int link_num, double link_length)
 
virtual double evaluate (double feature) const
 Calculate score with respect to the given feature. More...
 
virtual DerivativePair evaluate_with_derivative (double feature) const
 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::misc::FreelyJointedChain::evaluate ( double  feature) const
virtual

Calculate score with respect to the given feature.

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

Reimplemented from IMP::UnaryFunction.

Definition at line 73 of file FreelyJointedChain.h.

virtual DerivativePair IMP::misc::FreelyJointedChain::evaluate_with_derivative ( double  feature) const
virtual

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 60 of file FreelyJointedChain.h.

double IMP::misc::FreelyJointedChain::get_average_distance ( ) const

Get the average distance from the surface.

Definition at line 105 of file FreelyJointedChain.h.

double IMP::misc::FreelyJointedChain::get_distance_at_minimum ( ) const

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

Definition at line 100 of file FreelyJointedChain.h.

double IMP::misc::FreelyJointedChain::get_link_length ( ) const

Get length of each chain link.

Definition at line 83 of file FreelyJointedChain.h.

int IMP::misc::FreelyJointedChain::get_link_number ( ) const

Get number of links in chain.

Definition at line 80 of file FreelyJointedChain.h.

virtual ::IMP::VersionInfo IMP::misc::FreelyJointedChain::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 77 of file FreelyJointedChain.h.

void IMP::misc::FreelyJointedChain::set_link_length ( double  b)

Set the length of each chain link.

Definition at line 93 of file FreelyJointedChain.h.

void IMP::misc::FreelyJointedChain::set_link_number ( int  N)

Set the number of links in chain.

Definition at line 86 of file FreelyJointedChain.h.


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