Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Constant Groups | Functions
ResidueType.cc File Reference

A class for defining a type of residue. More...

#include <core/chemical/ResidueType.hh>
#include <core/chemical/ResidueConnection.hh>
#include <core/conformation/Residue.hh>
#include <core/chemical/ResidueSupport.hh>
#include <core/chemical/AtomTypeSet.hh>
#include <core/chemical/carbohydrates/CarbohydrateInfo.hh>
#include <core/chemical/ElementSet.hh>
#include <core/chemical/MMAtomTypeSet.hh>
#include <core/chemical/orbitals/OrbitalTypeSet.hh>
#include <numeric/xyz.functions.hh>
#include <numeric/NumericTraits.hh>
#include <ObjexxFCL/FArray2D.hh>
#include <ObjexxFCL/string.functions.hh>
#include <basic/Tracer.hh>
#include <utility/PyAssert.hh>
#include <basic/options/option.hh>
#include <basic/options/keys/pH.OptionKeys.gen.hh>
#include <core/chemical/AtomType.hh>
#include <core/chemical/Element.hh>
#include <core/chemical/MMAtomType.hh>
#include <core/chemical/VariantType.hh>
#include <utility/vector1.hh>

Namespaces

 ObjexxFCL
 C++ headers.
 
 ObjexxFCL::fmt
 
 core
 A class for defining atom parameters, known as atom_types.
 
 core::chemical
 

Constant Groups

 ObjexxFCL
 C++ headers.
 
 ObjexxFCL::fmt
 
 core
 A class for defining atom parameters, known as atom_types.
 
 core::chemical
 

Functions

static basic::Tracer core::chemical::tr ("core.chemical.ResidueType")
 
std::string core::chemical::strip_whitespace (std::string const &name)
 must be a better place for this, probably already exists! More...
 

Detailed Description

A class for defining a type of residue.

This class contains the "chemical" information for residues. This does not contain the actual xyz coordinates of a particular residue in a specific peptide. (xyz coordinates are found in core/conformation/Residue.hh). A residue in Rosetta can be a ligand, DNA, amino acid, or basically anything. A residue is read in through residue_io.cc and read from parameter files, generally located in the database chemical/residue_types. For ligands, or anything that is not one of the natural 20 AAs, a parameter has to be provided to rosetta through the -extra_res_fa flag. residue_io.cc sets private member data in ResidueType. The primary data that are set are: atoms, mmatoms, orbitals, and properties of the particular residue type. These properties can be modified through patches, which is controlled through PatchOperations.cc. If the residue_type of a residue is modified, the indices of atoms and mmatoms and everything associated with those indices must be redefined. This reordering of indices is taken care of with the function reorder_primary_data().

Setting of primary data and then reordering is important. Primary data for the following are described:

Atoms: Setting of atoms includes indexing the atoms into vectors, saving their names into vectors/maps, saving the associated mm_atom_type into a vector, saving bond connections into vectors, etc, etc. Since everything is allocated into vectors, it is easy to reorder those vectors. On any given residue, the heavy atoms are put into the vector first, (their indices are first,) and hydrogens are put in last.

Properties: Properties of a residue include things like DNA, PROTEIN, SC_ORBITALS, CHARGED, etc. These properties indicate the type of residue it is and what properties are associated with the residue. They are set when read in. Several lines of code must be modified to get them to work, all found here in ResidueType.cc.

Orbitals: Orbitals are indexed separately from atoms. They function much the same way as atoms, except for some key differences. To find atoms bonded to orbitals, you must provide the atom index, not the orbital index. (I haven't figured out how to get the reverse to work because of the separate indices.) Orbital xyz coordinates are not updated when atom coordinates are. This is to keep speed consistent with just having atoms. To output the orbitals, use the flag -output_orbitals.

Author
Phil Bradley Steven Combs - these comments