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

Amino acid base class. More...

#include <AminoAcid.hh>

Inheritance diagram for prf::AminoAcid:
Inheritance graph

Public Member Functions

AtomNitrogen ()
 Reference to backbone nitrogen.
AtomCalpha ()
 Reference to Calpha.
AtomCprime ()
 Reference to C' atom.
AtomHca ()
 Reference to H alpha, or first H attached to C alpha.
AtomCbeta ()
 Reference to C beta.
AtomOc ()
 Reference to O attached to C'.
Atomsidechain_atom (int i)
 Reference to i'th side chain atom.
Atomlabeled_atom (std::string alabel)
 Reference to any atom in the amino acid through its PDB label.
Atomat (std::string alabel)
 Look up and return reference to Atom with a certain label.
double Chi (int i) const
 Side chain torsional DOF numbered from 0.
double Phi () const
 Ramachandran Phi angle about the bond N-CA in the residue.
double Psi () const
 Ramachandran Psi angle about the bond CA-C in the residue.
double Omega () const
 Peptide bond angle between this and the next residue.
void Chi (int i, double x)
 Set side chain torsional DOF.
void Phi (double x)
 Set Ramachandran Phi angle.
void Psi (double x)
 Set Ramachandran Psi angle.
void Omega (double x)
 Set omega angle between this and the next residue.
void calcPhiPsi (double &phv, double &psv) const
 Calculate Ramachandran angles from current 3D coordinates.
bool is_helical () const
 Do the current backbone angles fall in the helix region ?
bool is_strand () const
 Do the current backbone angles fall in the beta strand region ?
void WritePDB (int &atindx, char ch_id, int aaindx, FILE *fp)
 Writes into a PDB file.
void WritePDB2 (int &atindx, char ch_id, int aaindx, FILE *fp)
 Write PDB with heavy atoms first.
double get_coord (int i)
 phi, psi, omega and side chain chi angles
void set_coord (int i, double x)
 Assign to i'th DOF in amino acid.
int n_coord () const
 3+number of side chain angles
double get_dof (int i)
 True degrees of freedom in the residue.
void set_dof (int i, double x)
 Assign to i'th true DOF in amino acid.
int n_dof () const
 Number of true degrees of freedom in the residue.
int rotDof_assign_and_reconstruct (int il, double mgd, int &a0, int &a1)
 Assign to (sidechain) dof i, and return the range of moved atoms.
int rotDof_assign (int il, double mgd)
 Assign to (sidechain) dof i, but don't recalculate any coordinates.
double get_rotDof (int il)
 Value of the i'th (sidechain) dof.
void nodes_reconnect ()
 Reassign atom offsets to the nodes.
- Public Member Functions inherited from prf::Ligand
virtual bool get_rotDofAxis (int i, Atom &a0, Atom &a1)
 Get the atoms defining the axis of the i'th sidechain dof.
virtual int set_coord_xml (prf_xml::XML_Node *rs, int typecheck=1)
 Assign degrees of freedom from an XML_Node object.

Detailed Description

This class implements most of the properties of the amino acids. The precise geometry of individual amino acids is left to the derived classes.

Member Function Documentation

Atom & AminoAcid::at ( std::string  alabel)

Warning: Upon failure to find the requested label, this function can not return anything reasonable. So, if that happens, the program exits.

Reimplemented from prf::Ligand.

double AminoAcid::get_coord ( int  i)

For all amino acids, get_coord returns the angle phi for i=0, psi for i=1 and the omega angle leading to the next residue for i=2. For i=3,4,5... the side chain angles chi0, chi1 etc are returned. Note, that omega is not really a degree of freedom in PROFASI, as of May

  1. Similarly phi angle of Proline and D-Proline are fixed angles. But for simplicity, they are returned here in their respective places. get_dof(i) on the other hand, will skip those angles and return the i'th true degree of freedom.

Reimplemented from prf::Ligand.

double AminoAcid::get_dof ( int  i)

Returns phi,psi,chi0... for all non-proline residues and only psi for proline.

Reimplemented from prf::Ligand.

Atom * AminoAcid::labeled_atom ( std::string  alabel)

This is the slowest way to access an atom, and should be used with care. It is harmless during initialization and for small analysis programs, but disasterous to the performance if you decide to use this, for instance, in an energy calculation. Note also that it returns a pointer rather than a reference like the above functions. This is necessary to address the cases when a labeled atom is asked which does not exist, like CG2 on alanine. In such cases we want to be able to return NULL.

Reimplemented from prf::Ligand.

int AminoAcid::n_coord ( ) const

Backbone phi, psi and omega angles and side chain degrees of freedom are counted.

Reimplemented from prf::Ligand.

int AminoAcid::n_dof ( ) const

Backbone phi (non-proline), psi and side chain degrees of freedom are counted.

Reimplemented from prf::Ligand.

void AminoAcid::nodes_reconnect ( )

Nodes maintain their own atom lists. If atoms of an amino acid get an offset, the nodes are no longer connected to the right atoms. This function restores the connectivity.

int AminoAcid::rotDof_assign_and_reconstruct ( int  i,
double  mgd,
int &  a0,
int &  a1 

Assigns to the i'th degree of freedom of this Ligand and reconstructs. Puts the unique ids of the first and the last changed atoms in a0 and a1. An important difference from the older, obsolete, ROTDOF(...) is that the index i is interpreted as the index within this Ligand, not the index with respece to the whole system.

Reimplemented from prf::Ligand.

void AminoAcid::set_coord ( int  i,
double  x 

Just like get_coord(), but this function assigns values.

Reimplemented from prf::Ligand.

void AminoAcid::set_dof ( int  i,
double  x 

Just like get_dof(), but this function assigns values.

Reimplemented from prf::Ligand.

void AminoAcid::WritePDB ( int &  atindx,
char  ch_id,
int  aaindx,
FILE *  fp 

aaindx is the serial number to be used for the amino acid. ch_id is the chain identifier. atindx is the starting atom index.

Reimplemented from prf::Ligand.

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