Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HbondsToResidueFilter.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 protocols/protein_interface_design/filters/HbondsToResidueFilter.hh
11 /// @brief definition of filter classes for iterations of docking/design.
12 /// @author Sarel Fleishman (sarelf@u.washington.edu), Jacob Corn (jecorn@u.washington.edu)
13 
14 #ifndef INCLUDED_protocols_protein_interface_design_filters_HbondsToResidueFilter_hh
15 #define INCLUDED_protocols_protein_interface_design_filters_HbondsToResidueFilter_hh
16 
17 
18 // Project Headers
20 #include <core/pose/Pose.fwd.hh>
21 #include <core/types.hh>
23 #include <utility/tag/Tag.fwd.hh>
27 #include <utility/exit.hh>
28 
29 #include <utility/vector1.hh>
30 
31 
32 // C++ headers
33 
34 // Unit headers
35 //#include <protocols/moves/DataMap.hh>
36 
37 namespace protocols {
38 namespace protein_interface_design {
39 namespace filters {
40 
44 
45 /// @brief returns true if the number of hbonding partners to a particular residue exceeds a certain value
46 /// This filter is useful in conjunction with DesignMinimizeHbonds class
48 {
49 public:
50  typedef core::Real Real;
51  typedef core::Size Size;
52 public :
53  HbondsToResidueFilter() : Filter( "HbondsToResidue" ) {}
54  HbondsToResidueFilter( Size const resnum, Size const partners, Real const energy_cutoff=-0.5,
55  bool const backbone=false, bool const sidechain=true ) : Filter( "HbondsToResidue" ) {
56  resnum_ = resnum; partners_ = partners; energy_cutoff_ = energy_cutoff; backbone_ = backbone;
57  sidechain_ = sidechain;
58  runtime_assert( backbone_ || sidechain_ );
59  runtime_assert( partners_ );
60  runtime_assert( energy_cutoff_ <= 0 );
61  }
62  bool apply( core::pose::Pose const & pose ) const;
63  FilterOP clone() const {
64  return new HbondsToResidueFilter( *this );
65  }
67  return new HbondsToResidueFilter();
68  }
69 
70  void report( std::ostream & out, core::pose::Pose const & pose ) const;
71  core::Real report_sm( core::pose::Pose const & pose ) const;
72  core::Size compute( core::pose::Pose const & pose ) const;
73  virtual ~HbondsToResidueFilter();
75 private:
79 };
80 
81 }
82 } // protein_interface_design
83 } // devel
84 
85 
86 #endif /*INCLUDED_DOCK_DESIGN_FILTERS_H_*/
87