PROFASI
Version 1.5
|
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..) | |
Atom & | memberAtom (int i) |
Reference to i'th backbone atom. | |
Atom & | atom (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 () |
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.
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
|
inline |
The DOF functions take care to skip the fixed torsional angles like the peptide bond angles (180 degrees) and proline phi angles
|
inline |
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.