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

Biased Gaussian Steps. More...

#include <BGS.hh>

Inheritance diagram for prf::BGS:
Inheritance graph
[legend]

Public Member Functions

double intrinsic_weight () const
 Additional weight for Metropolis-Hastings updates.
 
int perform ()
 
int revert ()
 Reverts the proposed update.
 
void print_setup (std::string &st)
 Print info about any departure from default behaviour.
 
- Public Member Functions inherited from prf::Update
void set_RandomNumberGenerator (RandomNumberBase *rn)
 An update needs a random number generator.
 
void set_sequencial_sweep (bool sw=true)
 Sweep through the DOFs sequencially rather than randomly.
 
void connect (Population *pl)
 An update must be connected with a population.
 
virtual void init ()
 Initialize update for use.
 
int perform (int itm)
 Make a move in the conformation space.
 
virtual int accept ()
 Finalizes a proposed update.
 
size_t n_relevant_dof () const
 The number of DOF in the system which may be touched by the update.
 
double get_weight_of_dof (int idof)
 Weight of a particular DOF.
 
void set_weight_of_dof (int idof, double vl)
 Set weight of a DOF.
 
virtual void configure (prf_xml::XML_Node *nd)
 Configure update using options provided in an XML node.
 
size_t get_site_of_dof (DOF_Info &dof)
 get site index of a given DOF
 
bool sidechain_update () const
 
bool rigid_chain_update () const
 
bool backbone_update () const
 
bool multichain_update () const
 
bool local_update () const
 
unsigned num_changes ()
 
dof_change_typechange (unsigned i)
 
void current_atoms (int &istr, int &iend)
 The first and last atoms affected by the update.
 
int begin_atom ()
 First affected atom.
 
int end_atom ()
 One past the last atom, like the end() in standard containers.
 
int begin_flexible_part ()
 Start of the flexible part of the update.
 
int end_flexible_part ()
 End of the flexible part, once again, one past the last ...
 
int n_residue_rigid_ranges () const
 Makes list of ranges of changed residues.
 
void residue_rigid_range (int i, int &r1, int &r2)
 i'th rigid range returned as ligand indices in r1 and r2
 
std::vector< std::pair< int,
int > > * 
residue_rigid_ranges ()
 Pointer to the vector of rigid ranges.
 
int n_atom_rigid_ranges () const
 
void atom_rigid_range (int i, int &r1, int &r2)
 
std::vector< std::pair< int,
int > > * 
atom_rigid_ranges ()
 
- 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.
 

Detailed Description

Currently this is the most sophisticated update in PROFASI. A set of upto 8 backbone angles are chosen and given a conserted rotation to achieve the following:

Therefore, BGS divides the system into three parts, a fixed part, a rigidly moving part and a flexible part, involving atoms around the changed backbone angles.

Since this is a semi-local move, the choice of update angles depends on the current configuration of the system. This makes it necessary to modify the Metropolis weight in order to ensure detailed balance. In PROFASI, this is achieved by defining the IntrinsicWeight for all updates. BGS calculates this weight by taking into account the initial and final configurations. Currently all other updates in PROFASI just return 1 for the IntrinsicWeight

Member Function Documentation

double prf::BGS::intrinsic_weight ( ) const
virtual

PROFASI provides a method to use a corrective weight for an update on top of what would be used in a pure Metropolis step. Such a weight is required if the probabilities for the size of the update somehow depend on the starting conformation, so that the forward and backward processes would have would have different distributions. In order to ensure detail balance, one needs to introduce an additional weight that compensates for the above. In PROFASI, only BGS has that kind of a weight. But the provision is made more generally to smoothen the interface and allow for more updates like the BGS in the future. The corrective weight is called IntrinsicWeight.

Reimplemented from prf::Update.

int prf::BGS::perform ( )
virtual

backward probability

Reimplemented from prf::Update.


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