PConstants.h

Go to the documentation of this file.
00001 /*
00002     LoopTK: Protein Loop Kinematic Toolkit
00003     Copyright (C) 2007 Stanford University
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License along
00016     with this program; if not, write to the Free Software Foundation, Inc.,
00017     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018 */
00019 
00020 #ifndef PCHAIN_H
00021 #define PCHAIN_H
00022 
00023 #include "PLibraries.h"
00024 
00025 /*
00026  * Defines naming conventions and
00027  * geometric data which apply to
00028  * all proteins.
00029  */
00030 
00031 #define         NUM_BACKBONE_ATOMS      3               /* N, CA, C are backbone atoms. */
00032 #define         LENGTH_C_N              1.33017         /* C-N bond length in backbone. */
00033 #define         ANGLE_C_N_CA            121.254         /* C-N-CA bond angle in backbone. */
00034 #define         ANGLE_CA_C_N            116.606         /* CA-C-N bond angle in backbone. */
00035 
00036 #define         ANGLE_O_C_N                 123.5               /* O=C-N bond angle in backbone. */
00037 #define         LENGTH_CA_C             1.51
00038 #define         LENGTH_O_C              1.24
00039 #define         LENGTH_N_CA             1.45
00040 
00041 #define   COLLISION_THRESHOLD     0.75
00042 #define PI 3.14159265
00043 
00044 
00045 /* Macro to check whether a given string identifies a backbone atom. */
00046 #define         isBackbone(x)           ((x) == PID::N || (x) == PID::C_ALPHA || (x) == PID::C)
00047 #define         isBackboneOrOxy(x)      (isBackbone(x) || (x) == PID::O)
00048 
00049 
00054 namespace PID {
00055 
00056   // Atom IDs
00057   static const string C = "C";
00058   static const string C_ALPHA = "CA";
00059   static const string C_BETA = "CB";
00060   static const string O = "O";
00061   static const string N = "N";
00062   static const string S = "S";
00063 
00064   // Block types
00065   static string BACKBONE = "backbone";
00066   static string SIDECHAIN = "sidechain";
00067 
00068   // Residues
00069   static const string ALA = "ALA";
00070   static const string ARG = "ARG";
00071   static const string ASN = "ASN";
00072   static const string ASP = "ASP";
00073   static const string BACKBONE_RES = "BBR";
00074   static const string CB_RES = "CBR";
00075   static const string CYS = "CYS";
00076   static const string GLN = "GLN";
00077   static const string GLU = "GLU";
00078   static const string GLY = "GLY";
00079   static const string HIS = "HIS";
00080   static const string ILE = "ILE";
00081   static const string LEU = "LEU";
00082   static const string LYS = "LYS";
00083   static const string MET = "MET";
00084   static const string PHE = "PHE";
00085   static const string PRO = "PRO";
00086   static const string SER = "SER";
00087   static const string THR = "THR";
00088   static const string TRP = "TRP";
00089   static const string TYR = "TYR";
00090   static const string VAL = "VAL";
00091 
00092   // Residue abbreviations. "_C" stands for "char".
00093   // These are the standard abbreviations in use now.
00094 
00095 
00096   //not used anywhere yet...
00097   static const char ALA_C = 'A';
00098   static const char ARG_C = 'R';
00099   static const char ASN_C = 'N';
00100   static const char ASP_C = 'D';
00101   static const char CYS_C = 'C';
00102   static const char GLN_C = 'Q';
00103   static const char GLU_C = 'E';
00104   static const char GLY_C = 'G';
00105   static const char HIS_C = 'H';
00106   static const char ILE_C = 'I';
00107   static const char LEU_C = 'L';
00108   static const char LYS_C = 'K';
00109   static const char MET_C = 'M';
00110   static const char PHE_C = 'F';
00111   static const char PRO_C = 'P';
00112   static const char SER_C = 'S';
00113   static const char THR_C = 'T';
00114   static const char TRP_C = 'W';
00115   static const char TYR_C = 'Y';
00116   static const char VAL_C = 'V';
00117 };
00118 
00119 #endif

Generated on Wed May 16 20:22:07 2007 for LoopTK: Protein Loop Kinematic Toolkit by  doxygen 1.5.1