Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StepWisePoseSetup.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 SWA_PoseSetup.hh
11 /// @brief
12 /// @detailed
13 ///
14 /// @author Rhiju Das
15 
16 
17 #ifndef INCLUDED_protocols_swa_StepWisePoseSetup_HH
18 #define INCLUDED_protocols_swa_StepWisePoseSetup_HH
19 
20 #include <core/pose/Pose.fwd.hh>
24 // AUTO-REMOVED #include <core/import_pose/pose_stream/PoseInputStream.fwd.hh>
25 #include <core/id/AtomID.fwd.hh>
26 #include <core/id/AtomID_Map.hh>
29 #include <core/types.hh>
30 #include <utility/vector1.hh>
31 #include <protocols/moves/Mover.hh>
32 #include <ObjexxFCL/FArray1D.fwd.hh>
33 #include <ObjexxFCL/FArray1D.hh>
34 
35 #include <utility/pointer/ReferenceCount.hh>
36 #include <utility/pointer/owning_ptr.fwd.hh>
37 
38 #include <string>
39 #include <map>
40 
41 namespace protocols {
42 namespace swa {
43 
44  /////////////////////////////////////////////////////////////////////////////////////////////////
45  /////////////////////////////////////////////////////////////////////////////////////////////////
46  class InputStreamWithResidueInfo;
48  // class definition is below.
49 
50 
51  /////////////////////////////////////////////////////////////////////////////////////////////////
52  /////////////////////////////////////////////////////////////////////////////////////////////////
54  public:
55 
56  //constructor!
57  StepWisePoseSetup( utility::vector1< core::Size > const & moving_res_list,
58  std::string const & desired_sequence,
59  utility::vector1< InputStreamWithResidueInfoOP > & input_streams_with_residue_info,
60  utility::vector1< core::Size > const & cutpoint_open,
61  utility::vector1< core::Size > const & cutpoint_closed );
62 
63  //destructor -- necessary?
65 
66  /// @brief Apply the minimizer to one pose
67  virtual void apply( core::pose::Pose & pose_to_visualize );
68 
69  virtual std::string get_name() const;
70 
71 
72 
74 
75  void
77 
78  void
80 
81  void
82  set_virtual_res(utility::vector1 < core::Size > const & set_virtual_res_list);
83 
84  void
86 
87  void
88  set_superimpose_res(utility::vector1 < core::Size > const & superimpose_res );
89 
90  void
92 
93  void
95 
96  void
98 
99  void
100  set_parin_favorite_output( bool const & setting){ parin_favorite_output_=setting ; }
101 
102  void
104 
105  void
106  set_cst_file( std::string const cst_file );
107 
108  void
109  set_disulfide_file( std::string const disulfide_file );
110 
111  void
112  set_align_file( std::string const align_file );
113 
114  void
115  set_add_peptide_plane_variants( bool const & setting );
116 
117  void
118  set_remove_nterminus_variant( bool const & setting ){ remove_nterminus_variant_ = setting; }
119 
120  void
121  set_remove_cterminus_variant( bool const & setting ){ remove_cterminus_variant_ = setting; }
122 
123  void
124  align_pose( core::pose::Pose & pose );
125 
126  bool
127  ready_to_align() const;
128 
129  void
130  set_dump( bool const dump );
131 
132  void
133  set_secstruct( std::string const secstruct );
134 
135 
136  private:
137 
138  void
139  Import_pose( core::pose::Pose & import_pose, InputStreamWithResidueInfoOP & stream );
140 
141 
142  void
143  check_moving_res_in_chain( Size const & start_chain, Size const & end_chain,
144  Size const & num_chains, Size & which_chain_has_moving_res );
145 
146  void
148 
149  void
150  setup_secstruct( core::pose::Pose & pose ) const;
151 
152  void
154 
155  Size
156  which_chain( Size const & i );
157 
158  bool
159  already_connected( std::pair< Size, Size > const & potential_chain_partner,
160  utility::vector1< std::pair< Size, Size > > const & chain_partners ) const;
161 
162  bool
163  already_connected( Size const start_chain,
164  Size const stop_chain,
165  utility::vector1< std::pair< Size, Size > > const & chain_partners,
166  utility::vector1< bool > already_checked ) const;
167 
168 
169  void
170  figure_out_cuts();
171 
172  void
173  make_pose( core::pose::Pose & pose );
174 
175  void
177 
178  void
180 
181  void
183 
184  void
186 
187  void
189 
190  void
192 
193  void
195 
196  void
198 
199  void
201 
202  void
203  check_close_chain_break( core::pose::Pose const & pose ) const;
204 
205  void
206  apply_bulge_variants( core::pose::Pose & pose ) const;
207 
208  void
210 
211 // void
212 // slice_native();
213 
214  //Replacement for slice_native(); Parin Jan 29, 2010
215  void
217 
218  void
219  get_working_pose( core::pose::Pose const & pose, core::pose::Pose & working_pose );
220 
221  void
222  align_poses( core::pose::Pose & pose );
223 
226 
227  void
229 
230  void
232 
233  void
235 
236  void
238 
239  void
241 
242  void
244 
245  void
247  core::pose::Pose const & start_pose,
248  utility::vector1< core::Size > const & input_res,
249  utility::vector1< core::Size > const & slice_res );
250 
251  void
252  fix_phi_psi_offsets( core::pose::Pose & pose ) const;
253 
254  void
256  core::pose::Pose const import_pose,
257  utility::vector1< core::Size > const & input_res,
258  utility::vector1< core::Size > const & slice_res );
259 
260 
261  void
262  check_superimpose_res( core::pose::Pose const & pose );
263 
264  bool
265  is_working_cutpoint_closed( Size const res, std::map< Size, Size > & full_to_sub ) const;
266 
269 
270  private:
271 
275 
277 
288  ObjexxFCL::FArray1D< bool > is_cutpoint_;
290 
291  ObjexxFCL::FArray1D< core::Real > phi_offsets_;
292  ObjexxFCL::FArray1D< core::Real > psi_offsets_;
293 
296 
298 
304 
309 
311 
316  bool dump_;
317 
318  };
319 
320 
321 } //swa
322 } // protocols
323 
324 #endif