Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FunGroupTK.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 src/protocols/kinmatch/FunGroupTK.hh
11 /// @brief ToolKit for rapid IK based functional group placement
12 /// @author Will Sheffler will@sheffler.me
13 
14 
15 #ifndef INCLUDED_protocols_kinmatch_FunGroupTK_hh
16 #define INCLUDED_protocols_kinmatch_FunGroupTK_hh
17 
19 // AUTO-REMOVED #include <core/conformation/Residue.hh>
20 // AUTO-REMOVED #include <core/kinematics/Stub.hh>
21 // AUTO-REMOVED #include <core/pose/Pose.hh>
23 #include <utility/pointer/ReferenceCount.hh>
24 #include <numeric/xyzVector.hh>
25 
26 #include <core/types.hh>
29 #include <core/pose/Pose.fwd.hh>
30 #include <utility/vector1.hh>
31 #include <map>
32 
33 
34 namespace protocols {
35 namespace kinmatch {
36 
38  CEN,
42 };
43 
44 struct KRSQuery {
52  KRSQuery(
53  KRSQueryType typ
54  );
55  KRSQuery(
56  KRSQueryType typ,
60  core::Real dt=0.5,
61  core::Real at=0.175,
62  core::Real clsh = 2.8*2.8
63  );
64  KRSQuery(
65  KRSQueryType typ,
68  core::Real dt=0.5,
69  core::Real at=0.175,
70  core::Real clsh = 2.8*2.8
71  );
72 };
73 
75 protected:
79  std::map<std::string,utility::vector1<core::kinematics::Stub> > stb_;
80  std::map<std::string,utility::vector1<core::conformation::ResidueOP> > rsd_;
82 public:
83  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
84  virtual ~FunGroupTK();
85  FunGroupTK(
86  core::pose::Pose & p_in,
88  );
89 
91  ifc() const;
92 
93  virtual
94  void
95  place_c(
96  KRSQuery const & q,
97  core::conformation::Residue const & qrsd,
99  ) const = 0;
100 
101  virtual
102  void
103  place_h(
104  KRSQuery const & q,
105  core::conformation::Residue const & qrsd,
107  ) const = 0;
108  virtual
109  void
110  place_d(
111  KRSQuery const & q,
112  core::conformation::Residue const & qrsd,
114  ) const = 0;
115 };
116 
117 class BruteFunGroupTK : public FunGroupTK {
118 public:
120  core::pose::Pose & p_in,
122  );
123 
124  virtual
125  void
126  place_c(
127  KRSQuery const & q,
128  core::conformation::Residue const & qrsd,
130  ) const;
131 
132  virtual
133  void
134  place_h(
135  KRSQuery const & q,
136  core::conformation::Residue const & qrsd,
138  ) const;
139 
140  virtual
141  void
142  place_d(
143  KRSQuery const & q,
144  core::conformation::Residue const & qrsd,
146  ) const;
147 
148 };
149 
150 class KinFunGroupTK : public FunGroupTK {
151 public:
153  core::pose::Pose & p_in,
155  );
156 
157 
158  virtual
159  void
160  place_c(
161  KRSQuery const & q,
162  core::conformation::Residue const & qrsd,
164  ) const;
165 
166  virtual
167  void
168  place_h(
169  KRSQuery const & q,
170  core::conformation::Residue const & qrsd,
172  ) const;
173 
174  virtual
175  void
176  place_d(
177  KRSQuery const & q,
178  core::conformation::Residue const & qrsd,
180  ) const;
181 
182 };
183 
184 } // namespace kinmatch
185 } // namespace protocols
186 
187 #endif