Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

atom_types.h

Go to the documentation of this file.
00001 // -*- mode: c++; -*-
00002 //
00003 //The Biomolecule Toolkit (BTK) is a C++ library for use in the
00004 //modeling, analysis, and design of biological macromolecules.
00005 //Copyright (C) 2004, Christopher Saunders <ctsa@users.sourceforge.net>
00006 //
00007 //This program is free software; you can redistribute it and/or modify
00008 //it under the terms of the GNU Lesser General Public License as published
00009 //by the Free Software Foundation; either version 2.1 of the License, or (at
00010 //your option) any later version.
00011 //
00012 //This program is distributed in the hope that it will be useful,  but
00013 //WITHOUT ANY WARRANTY; without even the implied warranty of
00014 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 //Lesser General Public License for more details. 
00016 //
00017 //You should have received a copy of the GNU Lesser General Public License 
00018 //along with this program; if not, write to the Free Software Foundation, 
00019 //Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00020 //
00021 
00022 //@file atom_types.h
00023 // defines and manages default btk atom topology types 
00024 // -- note that these types are based on the most common pdb naming 
00025 // convention for any atom topology
00026 //
00027 
00028 #ifndef BTK_ATOM_TYPES_H
00029 #define BTK_ATOM_TYPES_H
00030 
00031 
00032 #include "element_types.h"
00033 
00034 #include <string>
00035 
00036 namespace BTK{
00037   namespace ATOM { 
00038     // atom topological types from file: top_all27_prot_na.inp distributed with 
00039     // CHARMM 27 
00040     // --note that the the charmm symbols have been altered for use in
00041     // c++ using two subtitutions:
00042     //   1) s/'/x/ so 1H2' is represented here as 1H2x
00043     //   2) symbols that start with a digit are prefixed with an 
00044     //        underscore ...so 1H2x is _1H2x
00045     // --also note that btk functions do not necessarily 
00046     // support all of the topological types below
00047     //
00048     enum index_t {
00049       UNKNOWN = -1,
00050       _1C2x, _1C3x, _1CB, _1H2xx, _1H3x, _1H3xx, _1O2x, _1SG,
00051       _2C5x, _2CB, _2H5x, _2H5xx, _2O1P, _2O2P, _2O5x, _2P,
00052       _2SG,
00053       AC1x, AC2, AC2x, AC3x, AC4, AC4x, AC5, AC5x,
00054       AC6, AC8, AH1x, AH2, AH2x, AH2T, AH3x, AH3T,
00055       AH4x, AH5x, AH5s, AH61, AH62, AH8, AN1, AN3,
00056       AN6, AN7, AN9, AO1, AO1P, AO2, AO2x, AO2P,
00057       AO2T, AO3x, AO4x, AO5x, AP, AP2,
00058       C, C1, C1x, C10, C12, C1A, C1B, C1C,
00059       C1D, C2, C2x, C2A, C2B, C2C, C2D, C3,
00060       C3x, C3A, C3B, C3C, C3D, C3T, C4, C4x,
00061       C4A, C4B, C4C, C4D, C5, C5x, C5M, C5T,
00062       C6, C7, C8, C9, C9B, CA, CAA, CAB,
00063       CAC, CAD, CAL, CAT, CAY, CB, CBA, CBB,
00064       CBC, CBD, CD, CD1, CD2, CE, CE1, CE2,
00065       CE3, CES, CG, CG1, CG2, CGA, CGD, CH2,
00066       CHA, CHB, CHC, CHD, CLA, CMA, CMB, CMC,
00067       CMD, CT, CY, CZ, CZ2, CZ3,
00068       DUM,
00069       F2x,
00070       FE,
00071       H1, H1x, H1xx, H11, H11x, H12, H12x, H13,
00072       H15, H16, H17, H2, H2x, H2xx, H21, H21x,
00073       H22, H22x, H23, H3, H3x, H3xx, H31x, H32x,
00074       H3T, H3T1, H3T2, H3T3, H4, H4x, H4xx, H41,
00075       H41x, H42, H42x, H5, H5x, H5xx, H51, H51x,
00076       H52, H52x, H53, H53x, H5M1, H5M2, H5M3, H5T,
00077       H5T1, H5T2, H5T3, H6, H61, H62, H8, H9,
00078       H91, H92, H93, H9B1, H9B2, H9B3, HA, HA1,
00079       HA2, HAA1, HAA2, HAB, HAC, HAD1, HAD2, HB,
00080       HB1, HB2, HB3, HBA1, HBA2, HBB1, HBB2, HBC1,
00081       HBC2, HBD1, HBD2, HC, HD, HD1, HD11, HD12,
00082       HD13, HD2, HD21, HD22, HD23, HD3, HE, HE1,
00083       HE2, HE21, HE22, HE3, HG, HG1, HG11, HG12,
00084       HG13, HG2, HG21, HG22, HG23, HH, HH11, HH12,
00085       HH2, HH21, HH22, HMA1, HMA2, HMA3, HMB1, HMB2,
00086       HMB3, HMC1, HMC2, HMC3, HMD1, HMD2, HMD3, HN,
00087       HN1, HN2, HNT, HT1, HT2, HT3, HY1, HY2,
00088       HY3, HZ, HZ1, HZ2, HZ3,
00089       MG,
00090       N, N1,
00091       N14, N2, N3, N4, N6, N7, N9, NA,
00092       NB, NC, NC1x, NC2, NC2x, NC3, NC3x, NC4,
00093       NC4x, NC5, NC5x, NC6, NC7, ND, ND1, ND2,
00094       NE, NE1, NE2, NH1, NH1x, NH2, NH2x, NH2T,
00095       NH3x, NH3T, NH4, NH4x, NH42, NH5, NH5x, NH5s,
00096       NH6, NH71, NH72, NN1, NN7, NO1, NO2, NO2x,
00097       NO3x, NO4x, NO5x, NO7, NP, NT, NZ,
00098       O,
00099       O1, O11, O12, O13, O14, O1A, O1B, O1D,
00100       O1G, O1P, O1P3, O2, O2x, O21, O22, O23,
00101       O24, O2A, O2B, O2D, O2G, O2P, O2P3, O3,
00102       O3x, O31P, O32P, O33P, O3A, O3B, O3G, O3P,
00103       O3P3, O3T, O4, O4x, O5x, O5T, O6, OD1,
00104       OD2, OE1, OE2, OG, OG1, OH, OH2, OT1,
00105       OT2, OY,
00106       P, P1, P2, P3, PA, PB, PG,
00107       POT,
00108       SD, SG,
00109       SOD,
00110       ZN,
00111       SIZE
00112     };
00113 
00114     index_t pdbname_to_atom_index(const std::string& s); 
00115 
00116     const std::string& atom_index_to_pdbname(index_t i); 
00117 
00118     ELEMENT::index_t atom_index_to_element_index(index_t i);
00119   }
00120 } 
00121 
00122 #endif

Generated on Wed Apr 14 00:43:16 2004 for BTK by doxygen 1.3.6