Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ChemicalManager.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 //////////////////////////////////////////////////////////////////////
10 /// @begin ChemicalManager
11 ///
12 /// @brief
13 /// Chemical manager class
14 ///
15 /// @detailed
16 /// The Chemical Manager is a singleton class, which means that it can only been initialized once (exist once in memory). Once initialized,
17 /// you can call it by simply access it via:
18 ///
19 /// core::chemical::AtomTypeSetCAP atom_types =
20 /// core::chemical::ChemicalManager::get_instance()->atom_type_set("fa_standard");
21 ///
22 /// You can substitute AtomTypeSet, with whatever is seen below (residue_type_set, mm_atom_type_set, orbital_type_set).
23 /// In the below functions, the "tag_in" refers to fullatom, centroid, which basically tells what type of set to load in.
24 /// The chemical manager will call functions within the AtomTypeSet, MMAtomTypeSet, ResidueTypeSet, etc etc. The classes type set
25 /// reads in files from the database to create atom types, residue types, and mmatom types. The information from those files are stored
26 /// in the type class.
27 ///
28 ///
29 ///
30 /// @authors
31 /// Andrew Leaver-Fay (leaverfa@email.unc.edu)
32 /// Steven Combs - comments
33 ///
34 ///
35 /// @last_modified December 6 2010
36 /////////////////////////////////////////////////////////////////////////
37 
38 
39 #ifndef INCLUDED_core_chemical_ChemicalManager_hh
40 #define INCLUDED_core_chemical_ChemicalManager_hh
41 
42 // Unit headers
44 
45 // Package headers
51 //#include <core/chemical/CSDAtomTypeSet.fwd.hh>
53 
54 // C++
55 #include <map>
56 
57 // Commented by inclean daemon #include <string>
58 
59 namespace core {
60 namespace chemical {
61 
62 /// @brief a class managing different sets of atom_type_set and residue_type_set
63 ///
64 /// @details make it as a singleton class so that atom_type_set and residue_type_set are only
65 ///input and initialized once. They can be later retrieved by querying this class.
67 {
68 public:
69 
70 
71 public:
72  static ChemicalManager * get_instance();
73 
74  /// @brief query atom_type_set by a name tag
76  atom_type_set( std::string const & tag );
77 
78  /// @brief query atom_type_set by a name tag
80  element_set( std::string const & tag );
81 
82  /// @brief query ideal_bond_lengths
84 
85  /// @brief query mm_atom_type_set by a name tag
87  mm_atom_type_set( std::string const & tag );
88 
89  /// @brief query csd_atom_type_set by a name tag
90 // CSDAtomTypeSetCAP
91 // csd_atom_type_set( std::string const & tag );
92 
93  /// @brief query orbital_type_set by a name tag
95  orbital_type_set(std::string const & tag);
96 
97  /// @brief query residue_type_set by a name tag
100 
101  /// @brief query residue_type_set by a name tag
103  nonconst_residue_type_set( std::string const & tag );
104 
105 
106 
107 private:
108  typedef std::map< std::string, AtomTypeSetOP > AtomTypeSets;
109  typedef std::map< std::string, ElementSetOP > ElementSets;
110  typedef std::map< std::string, IdealBondLengthSetOP> IdealBondLengthSets;
111  typedef std::map< std::string, orbitals::OrbitalTypeSetOP > OrbitalTypeSets;
112  typedef std::map< std::string, MMAtomTypeSetOP > MMAtomTypeSets;
113 // typedef std::map< std::string, CSDAtomTypeSetOP > CSDAtomTypeSets;
114  typedef std::map< std::string, ResidueTypeSetOP > ResidueTypeSets;
115 
116 private:
117  /// @brief private constructor
118  ChemicalManager();
119  /// @brief static data member holding pointer to the singleton class itself
121 
122  /// @brief lookup map for querying atom_type_set by name tag
124  /// @brief lookup map for querying element_type_set by name tag
126  ///@brief lookup map for querying orbital_type_set by name tag.
128  /// @brief lookup map for querying mm_atom_type_set by name tag
130  /// @brief lookup map for querying csd_atom_type_set by name tag
131 // CSDAtomTypeSets csd_atom_type_sets_;
132  /// @brief lookup map for querying residue_type_set by name tag
134 
136 };
137 
138 } // namespace core
139 } // namespace chemical
140 
141 
142 #endif
143 
144 // /// @brief Duplicate a ResidueTypeSet, preparatory to modifying it in some way DOES NOT DUPLICATE ITS ATOMTYPESETS
145 // void
146 // copy_residue_type_set(
147 // std::string const & old_name,
148 // std::string const & new_name
149 // );
150 
151 // /// @brief Duplicate an AtomTypeSet, preparatory to modifying it in some way
152 // void
153 // copy_atom_type_set(
154 // std::string const & old_name,
155 // std::string const & new_name
156 // );