Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HBondTypeManager.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 /// @file core/scoring/hbonds/HBondTypeManager.hh
11 /// @brief HBond enumeration type manager
12 /// @author Matthew O'Meara
13 
14 
15 #ifndef INCLUDED_core_scoring_hbonds_HBondTypeManager_hh
16 #define INCLUDED_core_scoring_hbonds_HBondTypeManager_hh
17 
18 // Package headers
20 #include <core/chemical/types.hh>
21 
22 // Utility headers
23 #include <utility/vector1.hh>
24 
25 // C++ headers
26 #include <string>
27 #include <map>
28 
29 namespace core {
30 namespace scoring {
31 namespace hbonds{
32 
34 public:
35  ////////////////////
36  /// Bond Weight Type
37  ////////////////////
38  static
40  weight_type_from_name( std::string const & name );
41 
42  static
45 
46  static
47  bool
48  is_weight_type( std::string const & name );
49 
50 
51  ///////////////////
52  /// Derivative Type
53  ///////////////////
54  static
56  deriv_type_from_name( std::string const & name );
57 
58  static
60  name_from_deriv_type( HBDerivType score_type );
61 
62  static
63  bool
64  is_deriv_type( std::string const & name );
65 
66  ///////////////////////
67  /// Donor Chemical Type
68  ///////////////////////
69  static
71  don_chem_type_from_name( std::string const & name );
72 
73  static
76 
77  static
78  bool
79  is_don_chem_type( std::string const & name );
80 
81  //////////////////////////
82  /// Acceptor Chemical Type
83  //////////////////////////
84  static
86  acc_chem_type_from_name( std::string const & name );
87 
88  static
91 
92  static
93  bool
94  is_acc_chem_type( std::string const & name );
95 
96  ////////////////////////////
97  /// Sequence Separation Type
98  ////////////////////////////
99  static
100  HBSeqSep
101  seq_sep_type_from_name( std::string const & name );
102 
103  static
105  name_from_seq_sep_type( HBSeqSep score_type );
106 
107  static
108  bool
109  is_seq_sep_type( std::string const & name );
110 
111  ////////////////////////
112  //Acceptor Hybridization
113  ////////////////////////
114  static
117 
118  static
121 
122  static
123  bool
124  is_hybridization_type( std::string const & name);
125 
126  ///////////////////////////
127  ///Geometric Dimension Type
128  ///////////////////////////
129  static
131  geo_dim_type_from_name( std::string const & name );
132 
133  static
135  name_from_geo_dim_type( HBGeoDimType score_type );
136 
137  static
138  bool
139  is_geo_dim_type( std::string const & name );
140 
141 
142 private:
143  static void setup_type_names();
144 
145 private:
146  static bool initialized_;
147 
148  /// lookup map from string name to enum type
149  static std::map< std::string, HBondWeightType > name2weight_type_;
151 
152  static std::map< std::string, HBDerivType > name2deriv_type_;
154 
155  static std::map< std::string, HBDonChemType > name2don_chem_type_;
157 
158  static std::map< std::string, HBAccChemType > name2acc_chem_type_;
160 
161  static std::map< std::string, HBSeqSep > name2seq_sep_type_;
163 
164  static std::map< std::string, chemical::Hybridization > name2hybridization_type_;
166 
167  static std::map< std::string, HBGeoDimType > name2geo_dim_type_;
169 
170 }; // HBondTypeManager
171 
172 } // hbonds
173 } // scoring
174 } // core
175 
176 #endif