Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StepWiseRNA_VDW_Bin_Screener.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 StepWiseRNA_VDW_Bin_Screener.hh
11 /// @brief
12 /// @detailed
13 ///
14 /// @author Parin Sripkaddevong
15 
16 
17 #ifndef INCLUDED_protocols_swa_rna_StepWiseRNA_VDW_Bin_Screener_hh
18 #define INCLUDED_protocols_swa_rna_StepWiseRNA_VDW_Bin_Screener_hh
19 
20 
21 
22 #include <protocols/swa/rna/StepWiseRNA_Classes.hh> /*For PuckerState and Torsion_Info*/
24 
25 #include <core/pose/Pose.hh>
26 #include <core/pose/Pose.fwd.hh>
27 #include <core/types.hh>
29 #include <utility/vector1.hh>
30 #include <numeric/xyzMatrix.hh>
31 #include <numeric/xyzVector.hh>
32 #include <string>
33 #include <map>
34 #include <core/chemical/AA.hh>
35 
37 #include <set>
38 
39 
40 
41 
42 
44 
45 namespace protocols {
46 namespace swa {
47 namespace rna {
48 
49  struct Atom_Bin{
50  int x;
51  int y;
52  int z;
53  };
54 
55 
57 
58  public:
59 
61  input_string(""),
62  pose_name(""),
63  in_root_partition(false),
64  import_ID(0)
65  {
66  VDW_align_res.clear();
67  working_align_res.clear();
68  full_align_res.clear();
69  VDW_ignore_res.clear();
70  }
71 
73 
74  public:
75 
85 
86  };
87 
88 
89 
91 
92  public:
93 
94  //constructor!
96 
97  //destructor -- necessary?
99 
100  void
101  FARFAR_setup_using_user_input_VDW_pose(utility::vector1< std::string > const & VDW_rep_screen_pose_info, core::pose::Pose const & const_working_pose);
102 
103 
104  void
105  setup_using_user_input_VDW_pose(utility::vector1< std::string > const & VDW_rep_screen_pose_info, core::pose::Pose const & const_working_pose, StepWiseRNA_JobParametersCOP const & job_parameters );
106 
107  void
108  setup_using_working_pose(core::pose::Pose const & const_working_pose, StepWiseRNA_JobParametersCOP const & job_parameters );
109 
110 
111  void
113  utility::vector1< core::Size > const & ignore_res_list,
114  bool const Is_prepend, //associated with ignore_res_list
115  std::ofstream & outfile_act);
116 
117  void
119  utility::vector1< core::Size > const & ignore_res_list,
120  bool const Is_prepend, //associated with ignore_res_list
121  numeric::xyzVector<core::Real> const & reference_xyz,
122  bool const verbose=false);
123  void
124  create_VDW_screen_bin(utility::vector1< VDW_RepScreeninfo > const & VDW_rep_screen_info_list,
125  numeric::xyzVector<core::Real> const & reference_xyz,
126  bool const verbose);
127 
128 
129  void
131  utility::vector1< utility::vector1< core::Size > > const & list_of_ignore_res_list,
132  utility::vector1< bool > const list_of_Is_prepend,
133  numeric::xyzVector<core::Real> const & reference_xyz,
134  bool const verbose);
135 
136 
137 
138  //fast version
139  bool
140  VDW_rep_screen(core::pose::Pose const & screening_pose, //Warning..this pose coordinate is not update...use here for VIRTUAL atom screening.
141  core::Size const & moving_res,
142  core::conformation::Residue const & rsd_at_origin,
143  core::kinematics::Stub const & moving_res_base_stub); //the actual updated coordiate
144 
145  //Slow version (in the sense that position of screening_pose had to be updated before this function is called)..
146  bool
147  VDW_rep_screen( core::pose::Pose const & screening_pose, core::Size const & moving_res);
148 
149  bool
150  VDW_rep_screen_with_act_pose(core::pose::Pose const & screening_pose, utility::vector1< core::Size > const & moving_res_list, bool const local_verbose=true);
151 
152 
153  bool
155 
156  void
157  reference_xyz_consistency_check( numeric::xyzVector<core::Real> const & inputted_reference_xyz) const;
158 
159  void
161 
162  void
164 
165  //void
166  //align_to_first_working_pose(core::pose::Pose & pose, std::string const & tag) const;
167 
168  void
170 
171  void
172  set_output_pdb( bool const setting){ output_pdb_=setting;}
173 
174  private:
175 
176  void
178 
179  bool
180  Is_atom_bin_in_range(Atom_Bin const & atom_pos_bin) const;
181 
182  bool
183  check_atom_bin_in_range(Atom_Bin const & atom_pos_bin);
184 
185  void
186  set_reference_xyz(numeric::xyzVector<core::Real> const & reference_xyz);
187 
188  Atom_Bin
189  get_atom_bin(numeric::xyzVector<core::Real> const & atom_pos) const;
190 
192  get_atom_pos(Atom_Bin const & atom_bin) const;
193 
194  void
195  output_atom_bin(std::string const filename) const;
196 
197 
198  /*
199  void
200  delete_matching_res_in_VDW_rep_screen_pose(core::pose::Pose & VDW_rep_screen_pose,
201  core::pose::Pose const & working_pose,
202  utility::vector1< core::Size > const & VDW_rep_screen_align_res,
203  utility::vector1< core::Size > const & working_align_res,
204  std::map< core::Size, core::Size > & full_to_sub,
205  bool const verbose) const;
206  */
207 
208  //replacement for delete_matching_res_in_VDW_rep_screen_pose()!
210  get_matching_res_in_VDW_rep_screen_pose(core::pose::Pose const & VDW_rep_screen_pose,
211  core::pose::Pose const & working_pose,
212  utility::vector1< core::Size > const & VDW_rep_screen_align_res,
213  utility::vector1< core::Size > const & working_align_res,
214  std::map< core::Size, core::Size > & full_to_sub) const;
215 
216 
217  void
218  align_VDW_rep_screen_pose(core::pose::Pose & VDW_rep_screen_pose,
219  core::pose::Pose const & working_pose,
220  utility::vector1< core::Size > const & VDW_rep_screen_align_res,
221  utility::vector1< core::Size > const & working_align_res,
222  bool const verbose) const;
223 
224  void
225  create_VDW_rep_screen_pose(VDW_RepScreeninfo & VDW_rep_screen_info, //This function update this class!
226  core::pose::Pose const & working_pose,
227  std::map< core::Size, core::Size > & full_to_sub,
228  bool const verbose) const;
229 
230 
231 
232  private:
233 
236 
237  int const bin_min_;
238  int const bin_max_;
239  int const bin_offset_;
241  bool const write_to_file_;
245 
246  //Still working...
249 
253 
254 
257 
259 
261 
264 
265  };
266 
267 }
268 }
269 }
270 
271 #endif