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

Representation for the protein backbone. More...

#include <Backbone.hh>

Public Member Functions

 Backbone (int naaa)
 Backbone for protein of naaa residues.
 Backbone (const Backbone &)
 create a clone.
void clear ()
 Clear all data for possible new initialisation.
void initCommon ()
 Initialize common properties (eg. bond lengths..)
void numAminoAcids (int naaa)
int numAminoAcids () const
 Retrieve number of amino acids.
int numAtoms ()
 Number of backbone atoms.
int numDOF () const
 Retrieve number of dof on backbone (taking into account proline..)
AtommemberAtom (int i)
 Reference to i'th backbone atom.
Atomatom (int i)
 Reference to i'th backbone atom.
Vector3 Axis () const
 N-terminus to C-terminus vector, from N to C.
double EndToEndLength () const
 End to end distance.
double Radius2OfGyration () const
 Backbone radius of gyration.
double torsional_angle (int i) const
 Torsional angle along backbone, including the fixed ones.
void torsional_angle (int i, double xv)
 Torsional angle along backbone, including the fixed ones.
void incr_tors_angle (int i, double val)
 Blind increment of a torsional angle, read details...
double DOF (int i) const
 Access i'th degree of freedom along the backbone.
void DOF (int i, double val)
 Assign to the i'th dof.
int DOFno (double lx)
 picks a DOF given a double between 0 and 1. Don't use.
int DOFloc (int i) const
 returns the index of the amino-acid that contains the i'th DOF
int DOFid (int i) const
 returns the index in the list of torsional angles of the ith DOF.
int PhiToDOF (int i) const
 returns the index in the DOF list of ith torsional angle.
int incrDOFno (int i, double xval)
 increment DOF i
int incrDOF (double lx, double xval)
 increment a DOF corresponding to fraction between 0 and 1
int LocateAA (double xx)
 Pick amino acid index based on random number xx. Don't use.
int AxisAtoms (Atom &a0, Atom &a1, int iloc)
 Find the two backbones connected by the bond with the i'th dof.
void registerAA (int i, AminoAcid *aac)
 Register or connect an amino acid to the backbone.
void set_atom_offset (int new_n0_uid)
 Set atom offset to a given value.
void randomize (RandomNumberBase *rangen)
 Randomize state of backbone using random number generator passed.
void SetToAlphaHelix ()
 Set backbone state to a perfect alpha helix.
void SetToBetaStrand ()
 Set backbone state to a beta strand.
void forwardReconstruct (int strt, int iend)
 calculate coordinates of backbone atoms in the N-C direction
void reverseReconstruct (int strt, int iend)
 calculate coordinates of backbone atoms in the C-N direction
void FixAngles ()
 Bring all angles to the interval 0..2pi.
void CheckProperties ()
 Sanity check.
double find_phi (int i)
 Find the i'th phi angle using the cartessian coordinates as input.
int calc_torsions (std::vector< bool > &specified)
 Calculate and assign torsion angles from the Cartessian coordinates.
double find_theta (int i)
 Find the i'th theta angle using the cartessian coordinates as input.
void reconst_bond_vectors ()
 Reconstruct bond vectors based on current coordinates of backbone atoms.
void freconst_bond_vectors (unsigned int i1)
 Reconstruct all backbone bonds to the right of backbone atom i1.
void breconst_bond_vectors (unsigned int i1)
 Reconstruct all backbone bonds to the left of backbone atom i1.
void ExportCrds (Shape &sh) const
 Export coordinates to a Shape object for use with RMSD.
void ExportCrds (Shape &sh, int iaast, int iaand) const
 Export only part of the backbone for RMSD calculation.
Coordinates for the first and last three atoms

Assign coordinates to the first or last three atoms of the backbone. This requires special treatment. When the backbone is reconstructed from N-terminal to C-terminal, the positions of the first three atoms are not fixed by the internal degrees of freedom of the backbone. Similarly for the last three atoms. These functions assign values near the origin if no previous value was assigned. If the atoms are found to have valid positions, the functions will try to keep them there while fixing round off errors in bond lengths and the theta angle

void reconstStart ()
void reconstLast ()

Detailed Description

The Protein backbone is recognized as an important concept, and is implemented in its own class. The atoms on the backbone of course belong to different amino acids, and in principle it is possible to represent the protein as just a chain of amino acids, with each residue being responsible for constructing both the backbone and side chain atoms. Practically however, it is simpler to construct the chain make conformational updates on it ... if the backbone is constructed together. Besides, any slight numerical precision errors in the coordinates of the backbone atoms propagates much further than an error of similar size in the placement of a side chain atom. So, in PROFASI a very conservative, but safe reconstruction method is used to place the backbone atoms in space.

Member Function Documentation

int Backbone::AxisAtoms ( Atom a0,
Atom a1,
int  iloc 

picks the two atoms connected by the bond which corresponds to the DOF iloc. the return value is 1 if iloc is in the first half of the backbone, else 0

double prf::Backbone::DOF ( int  i) const

The DOF functions take care to skip the fixed torsional angles like the peptide bond angles (180 degrees) and proline phi angles

void prf::Backbone::incr_tors_angle ( int  i,
double  val 

torsional angles means any torsional angle, even the fixed ones, like the proline phi angle. DOF below means only those which constitute degrees of freedoms for the molecule

void Backbone::numAminoAcids ( int  naaa)

Change number of residues to naaa

void Backbone::registerAA ( int  i,
AminoAcid aac 

Backbone is created knowing only with the total number of amino acids. This function is used to assign appropriate atoms to it, and also to create a map between torsional angles and DOFs. For instance if the amino acid is proline, the phi angle is not a DOF.

void Backbone::set_atom_offset ( int  new_n0_uid)

When a chain is created, it creates its own backbone. Start of the backbone would then coincide with the N of the first amino acid. If the chain is subsequently given an offset (if it is not the first chain), the atoms of the backbone have to follow. This is the purpose of this function. It is assumed that the relationship between the UniqueIds of the atoms in one back bone do not change. You pass the UniqueId of the first N after the offset. The other ids are shifted appropriately.

This was not necessary before, as the backbone was constructed once, and the atoms in the protein already had proper UniqueIds when the backbone was constructed. It is no longer true. A protein can be deleted and reconstructed. In such case, the UniqueIds have to be reassigned throughout the population after all protein deletion and additions have been carried out.

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