Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MaxSeqSepConstraintSet.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 Helper class for FoldConstraints Protocol, filters constraints by sequence separation
12 /// @detailed
13 ///
14 ///
15 ///
16 /// @author Oliver Lange
17 
18 
19 #ifndef INCLUDED_protocols_constraints_additional_MaxSeqSepConstraintSet_hh
20 #define INCLUDED_protocols_constraints_additional_MaxSeqSepConstraintSet_hh
21 
22 
23 // Unit Headers
25 
26 // Package Headers
27 
28 
29 // Project Headers
30 #include <core/pose/Pose.fwd.hh>
31 // AUTO-REMOVED #include <core/kinematics/MoveMap.hh>
33 #include <core/types.hh>
36 // AUTO-REMOVED #include <core/pack/task/PackerTask.fwd.hh>
39 // AUTO-REMOVED #include <core/kinematics/MinimizerMapBase.hh>
40 
41 // ObjexxFCL Headers
42 
43 // Utility headers
44 #include <utility/vector1.fwd.hh>
45 
46 //// C++ headers
47 // AUTO-REMOVED #include <cstdlib>
48 #include <string>
49 
50 #include <utility/vector1.hh>
51 
52 
53 
54 namespace protocols {
55 namespace constraints_additional {
56 
58 {
61 public:
63 
66 protected:
68 
69 public:
71  return new MaxSeqSepConstraintSet ( *this );
72  };
73 
75  core::pose::Pose const& src,
76  core::pose::Pose const& dest,
78  ) const;
79 
80  Size max_seq_sep () const {
81  return max_seq_sep_;
82  }
83 
84  void set_max_seq_sep( Size setting ) {
85  max_seq_sep_=setting;
86  mark_revision_id_expired(); //force recompute of cached energies
87  }
88 
89  ///
90  void
92  Residue const & rsd1,
93  Residue const & rsd2,
94  Pose const & pose,
95  core::scoring::ScoreFunction const & scorefxn,
97  ) const;
98 
99  bool too_far( int const pos1, int const pos2 ) const;
100 
101  Size
102  largest_possible_sequence_sep( core::pose::Pose const& pose ) const;
103 
104  ///
105  bool
106  residue_pair_constraint_exists( int const pos1, int const pos2 ) const
107  {
108  if ( too_far( pos1, pos2 ) ) return false;
109  return Parent::residue_pair_constraint_exists( pos1, pos2 );
110  }
111 
112 
113  /// @brief If a pair of residues are not too far, then let the
114  /// parent class implementation add the constraints for this
115  /// respair to the respair_data_cache. This is the only opportunity
116  /// the MaxSeqSepConstraint set has to influence how constraints
117  /// are evaluated during minimization.
118  virtual
119  void
121  core::conformation::Residue const & rsd1,
122  core::conformation::Residue const & rsd2,
123  core::pose::Pose const & pose,
124  core::scoring::ScoreFunction const & sfxn,
125  core::kinematics::MinimizerMapBase const & minmap,
126  core::scoring::ResSingleMinimizationData const & res1_data_cache,
127  core::scoring::ResSingleMinimizationData const & res2_data_cache,
128  core::scoring::ResPairMinimizationData & respair_data_cache
129  ) const;
130 
132 
133  Size
134  show_violations( std::ostream& out, core::pose::Pose&, Size verbose_level, core::Real threshold = 1 );
135 
137  shortest_path() const {
138  return *shortest_path_;
139  }
140 
141  void
143  core::pose::Pose const & pose,
144  core::scoring::ScoreFunction const & sfxn,
146  ) const;
147 
148 
149 protected:
150 
151  /*
152  void
153  eval_atom_derivative_for_residue_pairs(
154  core::id::AtomID const & atom_id,
155  core::pose::Pose const & pose,
156  core::scoring::ScoreFunction const &,
157  core::scoring::EnergyMap const & weights,
158  core::Vector & F1,
159  core::Vector & F2
160  ) const;*/
161 
162 
163 private:
166 };
167 
168 } // constraints_additional
169 } // protocols
170 
171 #endif