Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
util.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 #ifndef INCLUDED_protocols_loops_util_hh
11 #define INCLUDED_protocols_loops_util_hh
12 
13 // Project headers
14 #include <core/types.hh>
17 #include <core/pose/Pose.fwd.hh>
19 
20 // Package headers
22 
23 #include <utility/vector1.hh>
24 #include <string>
25 
26 namespace protocols {
27 namespace loops {
28 
29 //@brief adds coord constraints for the atoms that are not in the loops structure
30 void fix_with_coord_cst( loops::Loops const& rigid, core::pose::Pose& pose, bool bCstAllAtom, utility::vector1< core::Real >& );
31 
32 ///@brief get frags that are fully within the Loop --- shorten(=true/false) frags that are close to the end of loops.
33 extern void select_loop_frags(
34  loops::Loops const& loops,
36  core::fragment::FragSet& loop_frags,
37  core::Size min_size = 1 /* set to 0 if you don't want to shorten at all */
38 );
39 
41 
42 /// @brief Identical to set_extended_torsions_and_idealize_loops() without the irrational
43 /// behavior surrounding empty loops.
45  core::pose::Pose* pose);
46 
48  core::pose::Pose& pose,
49  loops::Loops loops,
50  const core::scoring::ScoreFunction &scorefxn,
51  core::pose::Pose& native_pose, core::Size nloops
52 );
53 
55  core::Real max_loop_frac,
56  core::Size min_length,
58 );
59 
62 
63 void add_coordinate_constraints_to_pose( core::pose::Pose & pose, const core::pose::Pose &constraint_target_pose, protocols::loops::Loops &exclude_regions );
64 
65 /// loop_str has the format: start:end:cut,start:end:cut and can use rosetta or pdb numbering. The return value is an owning pointer to a Loops object encoding that loop
66 LoopsOP
67 loops_from_string( std::string const loop_str, core::pose::Pose const & pose );
68 
69 // this function will return a bunch of "loops" that refer to residues that are considered part of the core:
70 // not scored are loops with 4 or more residues, short helices (<=5) that terminate a loop are not scored, too
72 
73 /// @brief Extract secondary structure chunks from the pose, using multiple secondary structure types
74 /// this function requires that the pose object already have secstruct information
75 /// to get this information from structure (DSSP), call
76 /// protocols::jumping::Dssp dssp_obj( *pose ); dssp_obj.insert_ss_into_pose( *pose );
77 /// or from secondary structure prediction (psipred_ss2 file), call
78 /// core::pose::read_psipred_ss2_file(pose);
80  std::string extracted_ss_types = "HE",
81  core::Size gap_size = 1,
82  core::Size minimum_length_of_chunk_helix = 5,
83  core::Size minimum_length_of_chunk_strand = 3,
84  core::Real CA_CA_distance_cutoff = 4);
85 
86 /// @brief Extract secondary structure chunks from the pose, using a given secondary structure type
88  char const extracted_ss_type);
89 
92  protocols::loops::Loops const & input_chunks);
93 
95 
96 // TODO(cmiles) deduplicate
97 /// @brief Split into separate chunks if CA-CA distance is over the cutoff
99  protocols::loops::Loops const & input_chunks,
100  core::Real const CA_CA_distance_cutoff = 4);
101 
102 /// @brief If two chunks are separated by a small gap of size <= <gap_size>, combine them
104 
105 /// @brief Remove small chunks
107 
109  core::Size const minimum_size = 3,
110  core::Real const CA_CA_distance_cutoff = 4);
111 
112 } //loops
113 } //protocols
114 
115 #endif