Main Page | Namespace List | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Examples

Residue_data.h

00001 #ifndef DSR_PDB_INTERNAL_RESIDUE_DATA_H
00002 #define DSR_PDB_INTERNAL_RESIDUE_DATA_H
00003 
00004 namespace dsrpdb{
00006 
00009   namespace Residue_data {
00011 
00014     typedef std::pair<Residue::Atom_label, Residue::Atom_label> Possible_bond;
00015 
00017 
00020     struct Amino_acid_data {
00021       std::vector<Residue::Atom_label> atoms;
00022       std::vector<Possible_bond > bonds;
00023       std::vector<Residue::Atom_label> extremes;
00024     };
00025  
00026 
00028 
00031     class Atom_data  {
00032     public:
00033       char s[5];
00034       Residue::Atom_label l;
00035       Atom::Type t;
00036     };
00037 
00038 
00040 
00043     struct Residue_init_data {
00044       Residue::Atom_label* atms_;
00045       Residue::Atom_label* bnds_;
00046       Residue::Atom_label* extr_;
00047     };
00048 
00049 
00051 
00054     struct Atom_fallback_data {
00055       Residue::Atom_label l;
00056       Residue::Atom_label lr;
00057     };
00058 
00059     extern std::vector<Amino_acid_data > amino_acid_data_; // used
00060     extern Atom_fallback_data atom_fallback_data_[]; // used
00061     extern Atom_data atom_name_data_[]; // used
00062 
00064 
00068     extern Atom_data clean_atom_name_data_[]; //used
00069     extern bool amino_acid_initialized_;
00070   
00071     Residue_init_data get_residue_initialization_data(Residue::Type rl);
00072 
00073     const Amino_acid_data& amino_acid_data(int i);
00074 
00075     void do_initialize();
00076 
00077     inline void initialize() {
00078       if (!amino_acid_initialized_) {
00079         do_initialize();
00080       }
00081     }
00082     
00083     Residue::Atom_label fix_atom_label(Residue::Type t, Residue::Atom_label al);
00084  
00085 
00086   }
00087 }
00088 #endif