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