00001 // $Id: mmdb_tables.h $ 00002 // ================================================================= 00003 // 00004 // CCP4 Coordinate Library: support of coordinate-related 00005 // functionality in protein crystallography applications. 00006 // 00007 // Copyright (C) Eugene Krissinel 2000-2013. 00008 // 00009 // This library is free software: you can redistribute it and/or 00010 // modify it under the terms of the GNU Lesser General Public 00011 // License version 3, modified in accordance with the provisions 00012 // of the license to address the requirements of UK law. 00013 // 00014 // You should have received a copy of the modified GNU Lesser 00015 // General Public License along with this library. If not, copies 00016 // may be downloaded from http://www.ccp4.ac.uk/ccp4license.php 00017 // 00018 // This program is distributed in the hope that it will be useful, 00019 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 // GNU Lesser General Public License for more details. 00022 // 00023 // ================================================================= 00024 // 00025 // 12.09.13 <-- Date of Last Modification. 00026 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00027 // ----------------------------------------------------------------- 00028 // 00029 // **** Module : MMDB_Tables <interface> 00030 // ~~~~~~~~~ 00031 // **** Project : MacroMolecular Data Base (MMDB) 00032 // ~~~~~~~~~ 00033 // 00034 // **** Namespace : mmdb:: 00035 // 00036 // **** Functions : 00037 // ~~~~~~~~~~~ 00038 // 00039 // **** Constants : AName ( array of 2-character atom names ) 00040 // ~~~~~~~~~~~ HAName ( array of 2=character heteroatom names ) 00041 // RName ( 3-characters amino acid names ) 00042 // RName1 ( 1-characters amino acid names ) 00043 // 00044 // 00045 // (C) E. Krissinel 2000-2013 00046 // 00047 // ================================================================= 00048 // 00049 00050 #ifndef __MMDB_Tables__ 00051 #define __MMDB_Tables__ 00052 00053 #include "mmdb_mattype.h" 00054 00055 namespace mmdb { 00056 00057 // ================================================================= 00058 00059 const int nElementNames = 117; 00060 const int nElementMetals = 91; 00061 const int nHydAtomNames = 14; 00062 00063 extern cpstr const ElementName [nElementNames]; 00064 extern cpstr const ElementMetal [nElementMetals]; 00065 extern cpstr const HydAtomName [nHydAtomNames]; 00066 extern realtype const MolecWeight [nElementNames]; 00067 extern realtype const CovalentRadius[nElementNames]; 00068 extern realtype const VdWaalsRadius [nElementNames]; 00069 extern realtype const IonicRadius [nElementNames]; 00070 00071 extern bool isMetal ( cpstr element ); 00072 00073 const int ELEMENT_UNKNOWN = -1; 00074 00075 extern int getElementNo ( cpstr element ); 00076 extern realtype getMolecWeight ( cpstr element ); 00077 extern realtype getCovalentRadius ( cpstr element ); 00078 extern realtype getVdWaalsRadius ( cpstr element ); 00079 00080 const int nResNames = 26; 00081 00082 extern cpstr const ResidueName [nResNames]; 00083 extern char const ResidueName1[nResNames]; 00084 00085 extern int getResidueNo ( cpstr resName ); 00086 00087 const realtype NAvogadro = 6.02214129e23; 00088 00089 const int nSolventNames = 12; 00090 const int nAminoacidNames = 23; 00091 const int nNucleotideNames = 24; 00092 00093 DefineStructure(AAProperty); 00094 00095 struct AAProperty { 00096 char name[4]; 00097 realtype hydropathy; 00098 realtype charge; 00099 realtype relSolvEnergy; 00100 }; 00101 00102 extern AAProperty const AAProperties[nAminoacidNames]; 00103 extern int const AASimilarity[nAminoacidNames][nAminoacidNames]; 00104 00105 extern int GetAAPIndex ( cpstr resName ); // 0..nAminoacidNames-1 00106 extern realtype GetAAHydropathy ( cpstr resName ); // -4.5...+4.5 00107 extern realtype GetAACharge ( cpstr resName ); 00108 extern realtype GetAASolvationEnergy ( cpstr resName ); 00109 extern int GetAASimilarity ( cpstr resName1, 00110 cpstr resName2 ); // 0..5 00111 00112 extern cpstr const StdSolventName[nSolventNames]; 00113 extern cpstr const NucleotideName[nNucleotideNames]; 00114 00115 extern bool isSolvent ( cpstr resName ); 00116 extern bool isAminoacid ( cpstr resName ); 00117 extern bool isNucleotide ( cpstr resName ); 00118 extern int isDNARNA ( cpstr resName ); // 0,1(DNA),2(RNA) 00119 extern bool isSugar ( cpstr resName ); 00120 00121 extern void Get1LetterCode ( cpstr res3name, pstr res1code ); 00122 extern void Get3LetterCode ( cpstr res1name, pstr res3code ); 00123 00124 } // namespace mmdb 00125 00126 #endif 00127
1.7.2