PROFASI  Version 1.5
Public Member Functions | List of all members
prf::HBMM Class Reference

The Backbone-Backbone hydrogen bond term. More...

#include <HydrogenBond.hh>

Inheritance diagram for prf::HBMM:
Inheritance graph

Public Member Functions

double evaluate ()
double deltaE (Update *)
 do a new delta calculation optimized for the given kind of update
void Accept (Update *)
 Accept a proposed update.
double InterChain (int ich, int jch)
 Inter chain hydrogen bonds (asymmetric)
double InterAA (int ich, int jch, int iaa, int jaa)
 Value of the inter amino acid hydrogen bond potential.
double InterLg (int ich, int jch, int ilg, int jlg)
 Value of the inter residue hydrogen bond potential.
double InterLg (int iaa, int jaa)
 Inter amino acid hydrogen bond energy.
double InterAA (int iaa, int jaa)
 Inter amino acid hydrogen bond energy.
void rangeEstimate (double &x1, double &x2)
 Estimate a range in which values of this observable are expected.
- Public Member Functions inherited from prf::Energy
void Connect (Population *pl)
 Connect the energy term with one population.
virtual void set_pars (std::string pars)
 Set some adjustible parameters.
void refresh ()
 Overrides the virtual member from the Observable class.
double value ()
 return result from last calculation
double deltaE ()
 return result from the last energy change calculation
double delta (Update *)
 Quick estimate of the change in an Observable due to an update.
virtual double deltaEwithlimit (Update *updt, double maxde)
 Calculate energy change for an update, but with a stop condition.
virtual void Revert (Update *)
 Reject a proposed update.
int init_obs ()
 All observables must implement one initialize routine.
- Public Member Functions inherited from prf::Observable
void set (std::string cmd)
 Give the object an instruction to process during initialization.
double operator() ()
 Retrieve the value of the observable.
double Value ()
 Retrieve the value of the observable.
void disable_stats ()
 Stop collecting statistical data like averages and histograms.
void enable_stats ()
 Start collecting statistical data like averages and histograms.
- Public Member Functions inherited from prf::Named
 Named ()
 Create an object with name "unnamed".
 Named (const char *st)
 Create an object with name st given as a C string.
 Named (std::string st)
 Create an object with a name given as a string.
std::string Name () const
 Retrive the name of an object.
void Name (std::string gnm)
 Assign a new name to an object.

Additional Inherited Members

- Protected Member Functions inherited from prf::HydrogenBond
double hb_pair (Dipole &don, Dipole &acc, int excl1, int excl2)
 Bare hydrogen bond function between two dipoles.

Detailed Description

The hydrogen bonds represented by this class are formed between NH and CO pairs from the backbones. A backup matrix is used to store the contribution from the bond between donor i, and acceptor j. The deltaE function is then optimized to recalculate only the changed contributions. For instance when only a side chain torsional angle is changed, nothing changes for the backbone hydrogen bonds. When a pivot operation is carried out on one chain, backbone-backbone hydrogen bonds in the moved part of that chain, and their interaction with all other chains are recalculated. But not the backbone-backbone interactions which don't involve the moved parts. The newly calculated terms are compared with the corresponding terms in the backup matrix and the sum is the required energy change.

Member Function Documentation

void prf::HBMM::Accept ( Update updt)

PROFASI uses many local contribution matrices and backup variables to quickly evaluate the change caused to any energy term by a given update. Those backup variables and the contribution matrices need to be kept in sync with the current system configuration. So, each energy class has an accept and a reject method, which are called when an update is accepted or rejected. What is done inside these functions depends on the energy term and optimization trick used therein.

Reimplemented from prf::Energy.

double prf::HBMM::evaluate ( )

do a new ab initio calculation

Reimplemented from prf::Energy.

double prf::HBMM::InterAA ( int  ich,
int  jch,
int  iaa,
int  jaa 

ich and jch are the chain indices. iaa and jaa are the aminoacid indices inside those chains. This is an asymmetric function. ich and iaa represent the aminoacid that contributes the donor and jch and jaa represent the one that contributes the acceptor. So, the value obtained when (ich,iaa) is replaced by (jch,jaa) will in general be different.

double prf::HBMM::InterAA ( int  iaa,
int  jaa 

As above but with amino acid indices relative to the whole system.

double prf::HBMM::InterChain ( int  ich,
int  jch 

Chain ich contributes NH groups, chain jch contributes CO groups

double prf::HBMM::InterLg ( int  ich,
int  jch,
int  ilg,
int  jlg 

Same as above, except that for each chain, the ligand indices instead of the amino acid indices are used.

double prf::HBMM::InterLg ( int  iaa,
int  jaa 

For this function, iaa and jaa mean the ligand indices in the whole system. That is, if there is more than one chain, residues are numbered in an obvious way, by numbering residues from one chain after the residues of another. This function is asymmetric in iaa and jaa. The amino acid corresponding to iaa contributes the donor, and jaa contributes the acceptor.

void prf::HBMM::rangeEstimate ( double &  x1,
double &  x2 

The default is between 0 and 1. So, for observables with values always between 0 and 1, you need not over-write this virtual function. Sometimes the observable will have a different fixed range, determined by its definition. Sometimes the range can not be determined perfectly. In such a case, let this function just return something reasonable.

Reimplemented from prf::Energy.

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

PROFASI: Protein Folding and Aggregation Simulator, Version 1.5
© (2005-2016) Anders Irbäck and Sandipan Mohanty
Documentation generated on Mon Jul 18 2016 using Doxygen version 1.8.2