Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
loops_main.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
11 /// @brief
12 /// @author Chu Wang
13 
14 #ifndef INCLUDED_protocols_loops_loops_main_hh
15 #define INCLUDED_protocols_loops_loops_main_hh
16 
17 // fwd declaration
18 #include <core/types.hh>
21 #include <core/pose/Pose.fwd.hh>
22 // AUTO-REMOVED #include <core/scoring/ScoreFunction.fwd.hh>
23 // AUTO-REMOVED #include <protocols/frags/TorsionFragment.fwd.hh>
28 // AUTO-REMOVED #include <core/fragment/ConstantLengthFragSet.fwd.hh>
29 
30 #include <utility/vector1.fwd.hh>
31 
32 // AUTO-REMOVED #include <map>
33 #include <vector>
34 
35 #include <utility/vector1.hh>
36 
37 
38 namespace protocols {
39 namespace loops {
40 
41 ///@brief the main function for perform loop modeling
42 ////voi/d
43 ///loops_main( core::pose::Pose & pose );
44 
45 ///@brief construct a fold tree from loop definition
46 void
48  core::pose::Pose const & pose,
49  Loops const & loops,
51  bool terminal_cutpoint = false // should terminal loops respect the given cutpoint
52 );
53 
54 //////////////////////////////////////////////////////////////////////////////////
55 /// @details Set the fold tree to contain a single chain break at the loops' position
57  core::pose::Pose & pose,
58  Loop const & loop
59 );
60 
61 /// @details Remove cutpoint variants
63  core::pose::Pose & pose,
64  bool force = false
65 );
66 
67 //////////////////////////////////////////////////////////////////////////////////
68 /// @details Add cutpoint variants to all the cutpoints
70  core::pose::Pose & pose
71 );
72 
73 //////////////////////////////////////////////////////////////////////////////////
74 /// @details Add cutpoint variant around a sinlge cutpoint (defined by loop)
76  core::pose::Pose & pose,
77  const Loop &loop
78 );
79 
80 
81 ///@brief create a MoveMap for use of minimization based on loop definition (wrapper)
82 void
84  core::pose::Pose & pose,
85  Loops const & loops,
86  bool const fix_template_sc,
88  core::Real neighbor_dist = 10.0
89 );
90 
91 ///@brief create a MoveMap for use of minimization based on loop definition
92 void
94  Loops const & loops,
95  utility::vector1<bool> const & allow_sc_move,
97 );
98 
99 void
101  Loop const & loop,
103 );
104 
105 ///@brief add flank stem residues to the loop movemap
106 void //made by JQX
108  Loops const & loops,
110  core::Size flank_size=2
111 );
112 
113 ///@brief close loops by the CCD mechanism
114 void
116  core::pose::Pose & pose,
117  Loops const & loops,
118  core::kinematics::MoveMap const& mm
119 );
120 
121 /// @brief get neighbor residues within 10 A CB distance cutoff
123  core::pose::Pose const & pose,
124  utility::vector1<bool> & residue_positions
125 );
126 
127 /// @brief mark loop residues and its neighbors as necessary in a sequence map.
129  core::pose::Pose const & pose,
130  Loops const & loops,
131  bool const include_neighbors,
133  core::Real neighbor_dist = 10.0
134 );
135 
136 // @brief mark loop residues and its neighbors as necessary for one loop.
138  core::pose::Pose const & pose,
139  Loop const & loop,
140  bool const include_neighbors,
142  core::Real neighbor_dist = 10.0
143 );
144 
145 /// @brief filter set of loop neighbors to a certain CB distance
147  core::pose::Pose const & pose,
149  Loops const & loops,
150  core::Real & dist_cutoff
151 );
152 
153 /// @brief helper function to set secondary structure of a Pose from an external
154 /// file.
155 bool
157  core::pose::Pose & pose
158 );
159 
160 /// @brief another helper function to set secondary structure of a Pose from an external file.
161 bool
163  core::pose::Pose & pose,
164  std::string const & filename
165 );
166 
167 
168 
169 /// @details set ideal BB geometry; this must occur so that loops with missing density work.
170 void idealize_loop(
171  core::pose::Pose & pose,
172  Loop const & loop
173 );
174 
175 /// @details Set a loop to extended torsion angles.
177  core::pose::Pose & pose,
178  Loop const & loop
179 );
180 
181 
183  std::vector< core::fragment::FragSetOP > &frag_libs
184 );
185 
188 );
189 
190 
191 //////////////////////////////////////////////////////////////////////////////////
192 /// @details Rebuild a loop via fragment insertion + ccd closure + minimization
194  core::pose::Pose & pose,
195  Loop const & loop
196 );
197 
199  const core::pose::Pose & native_pose,
200  const core::pose::Pose & pose,
201  loops::Loops loops,
202  int &corelength
203 );
204 
205 /// @brief calculate rmsd of loop residues with repect to native (template aligned)
207 loop_rmsd(
208  core::pose::Pose const & pose1,
209  core::pose::Pose const & pose2,
210  Loops const & loops,
211  bool CA_only = false,
212  bool bb_only = true
213 );
214 
215 /// @brief As above but actuall superimposes the non-loop part
218  core::pose::Pose const & pose1,
219  core::pose::Pose const & pose2,
220  Loops const & loops,
221  bool CA_only = false,
222  bool bb_only = true
223 );
224 
225 /// @brief As above but actually superimposes only the core part (in case there are multiple loops...)
228  core::pose::Pose const & pose1,
229  core::pose::Pose const & pose2,
230  Loops const & loops,
231  Loops const & core,
232  bool CA_only = false,
233  bool bb_only = true
234 );
235 
236 
237 /// @brief calculate rmsd of loop residues with repect to native (loop fit)
240  core::pose::Pose const & pose1,
241  core::pose::Pose const & pose2,
242  Loops const & loops
243 );
244 
245 /// @brief Given a sequence mapping which may have simple indels, trim back around those indels so that the loops can plausibly be closed.
246 
247 void
249  core::id::SequenceMapping & mapping,
250  std::string const & source_seq,
251  std::string const & target_seq,
252  core::Size const min_loop_size
253 );
254 
255 
256 void
258  core::pose::Pose const & pose,
259  core::id::SequenceMapping & mapping,
260  std::string & source_seq,
261  std::string & target_seq
262 );
263 
264 void
266  core::Size const new_cutpoint,
267  core::pose::Pose & pose,
268  core::Size const loop_begin,
269  core::Size const loop_end
270 );
271 
272 void
274  core::pose::Pose & pose,
275  std::string const & target_seq,
276  core::id::SequenceMapping const & start_mapping
277 );
278 
279 } //namespace loops
280 } //namespace protocols
281 
282 #endif