Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
NcontactsCalculator.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 ./src/protocols/fldsgn/NcontactsCalculator.hh
11 /// @brief header file for NcontactsCalculator class.
12 /// @detailed
13 /// @author Nobuyasu Koga ( nobuyasu@uw.edu )
14 
15 
16 #ifndef INCLUDED_protocols_fldsgn_NcontactsCalculator_hh
17 #define INCLUDED_protocols_fldsgn_NcontactsCalculator_hh
18 
20 #include <basic/MetricValue.fwd.hh>
21 #include <core/types.hh>
22 #include <core/pose/Pose.fwd.hh>
26 
27 #include <utility/vector1.hh>
28 
29 
30 // Utility headers
31 
32 //// C++ headers
33 
34 namespace protocols {
35 namespace fldsgn {
36 
38 public:
39 
40 
43  typedef core::Size Size;
44  typedef core::Real Real;
49  typedef basic::MetricValueBase MetricValueBase;
50  //typedef protocols::fldsgn::topology::SS_Info2 SS_Info2;
51  //typedef protocols::fldsgn::topology::SS_Info2_OP SS_Info2_OP;
52 
53 
54 
55 public:// constructor/destructor
56 
57 
58  /// @brief default constructor
60 
61  /// @brief default constructor
62  NcontactsCalculator( Real const condist, Size const isep_sep );
63 
64  /// @brief copy constructor
66 
67  /// @brief destructor
68  virtual ~NcontactsCalculator();
69 
70 
71 public:// virtual constructor
72 
73 
74  /// @brief make clone
75  PoseMetricCalculatorOP clone() const { return new NcontactsCalculator( *this ); }
76 
77 
78 public:// mutator
79 
80  /// @brief set contact distance
81  void contact_distance( Real const r ) { condist_ = r; }
82 
83  /// @breif ignore loops for calculation
84  void ignore_loops( bool const b ) { ignore_loops_ = b; };
85 
86  /// @breif ignore residue pairs of which residue belong to same ss element
87  void ignore_same_sselement( bool const b ) { ignore_same_sselement_ = b; }
88 
89  /// @breif ignore residue pairs of which residue belong to same beta sheet ( default true )
90  void ignore_same_sheet( bool const b ) { ignore_same_sheet_ = b; }
91 
92  /// @brief use only calpha for calculation
93  void use_only_calpha( bool const b ) { use_only_calpha_ = b; }
94 
95 protected:
96 
97 
98  virtual void lookup( String const & key, MetricValueBase * valptr ) const;
99  virtual std::string print( String const & key ) const;
100  virtual void recompute( Pose const & this_pose );
101 
102 
103 private:
104 
105  /// @brief distact used for juding contact pair ( default 6.0 )
107 
108  /// @brief residue pairs of i < i+isep_residue_ are used for counting #countacts ( default 4 )
110 
111  /// @breif ignore loops for calculation ( default false )
113 
114  /// @breif ignore residue pairs of which residue belong to same ss element ( default false )
116 
117  /// @breif ignore residue pairs of which residue belong to same beta sheet ( default false )
119 
120  /// @brief use only calpha atoms for calculation ( default false )
122 
123  /// @brief #atom-contacts among all heavy atoms
125 
126  /// @brief #atom-contacts among hydrophobic heavy atoms
128 
129  /// @brief #atom-contacts among heavy atoms of sidechains of hydrophobic residues
131 
132  /// @brief
134 
135 }; //NontactCalculator
136 
137 
138 } // ns toolbox
139 } // ns protocols
140 
141 #endif