Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
NatbiasSecondaryStructureEnergy.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/potentials/sspot/NatbiasSecondaryStructureEnergy.hh
11 /// @brief native biased centroid score for secondary structure
12 /// @author Nobuyasu Koga ( nobuyasau@uw.edu )
13 
14 
15 #ifndef INCLUDED_protocols_fldsgn_potentials_sspot_NatbiasSecondaryStructureEnergy_HH
16 #define INCLUDED_protocols_fldsgn_potentials_sspot_NatbiasSecondaryStructureEnergy_HH
17 
18 // Unit Headers
20 // AUTO-REMOVED #include <protocols/fldsgn/potentials/sspot/NatbiasStrandPairPotential.hh>
21 // AUTO-REMOVED #include <protocols/fldsgn/potentials/sspot/NatbiasHelixPairPotential.hh>
22 // AUTO-REMOVED #include <protocols/fldsgn/potentials/sspot/NatbiasHelicesSheetPotential.hh>
23 
24 // Package headers
29 
30 // Project headers
31 #include <core/pose/Pose.fwd.hh>
35 
39 #include <utility/vector1.hh>
40 
41 
42 // Utility headers
43 
44 
45 namespace protocols {
46 namespace fldsgn {
47 namespace potentials {
48 namespace sspot {
49 
50 /// @brief NatbiasSecondaryStructureEnergy
52 public:
53 
54 
56 
57 
58 public: // typedef
59 
60 
62  typedef core::Real Real;
68 
72 
76 
77 
78 public: // constructor/destructor
79 
80 
81  /// @brief default constructor
83 
84  /// @brief copy constructor
86 
87  /// @brief clone
88  virtual EnergyMethodOP clone() const;
89 
90 
91 public: // mutator
92 
93 
94  /// @brief set native secondary structure
95  void native_secstruct( String const & secstruct );
96 
97  /// @brief set NatbiasStrandPairPotential
98  void set_natbias_spairpot( StrandPairingSetOP const spairset );
99 
100  /// @brief set NatbiasHelixPairPotential
101  void set_natbias_hpairpot( HelixPairingSetOP const hpairset );
102 
103  /// @brief set NatbiasHelicesSheetPotential
104  void set_natbias_helices_sheet_pot( HSSTripletSetOP const hss3set );
105 
106 
107 public: // mutator
108 
109 
110  /// @brief set native NatbiasStrandPairPotential
112 
113  /// @brief set NatbiasHelixPairPotential
115 
116  /// @brief set NatbiasHelicesSheetPotential
118 
119 
120 public: //
121 
122 
123  /// @brief use use original secondary structure potential
124  void use_nobias( bool const b ) { use_nobias_ = b; }
125 
126 
127 public:
128 
129  /// @brief scoring
130  virtual void setup_for_scoring( Pose & pose, ScoreFunction const & scorefxn ) const;
131 
132  /// @brief scoring
133  virtual void finalize_total_energy( Pose & pose, ScoreFunction const &, EnergyMap & totals ) const;
134 
135  /// @brief The NatbiasSecondaryStructureEnergy class requires that the EnergyGraph
136  /// span 12 Angstroms between centroids. The centroids residues build-in a
137  /// 3 Angstrom radius each.
138  virtual Distance atomic_interaction_cutoff() const;
139 
140  /// @brief
141  virtual void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
142 
143  /// @brief
144  virtual Size version() const;
145 
146 private:
147 
148 
149  /// @brief native secondary structure
151 
152  /// @brief Is NatbiasStrandPairPotential to be used ?
154 
155  /// @brief Is NatbiasHelixPairPotential to be used ?
157 
158  /// @brief Is NatbiasHelicesSheetPotential to be used ?
160 
161  /// @brief use original secondary structure potential if this is true
163 
164 
165 private: // mutable variables
166 
167 
168  /// @brief pointer of NatbiasStrandPairPotential
170 
171  /// @brief pointer of NatbiasHelixPairPotential
173 
174  /// @brief pointer of NatbiasHeliceesSheetPotential
176 
177 
178 };
179 
180 
181 } // namespace sspot
182 } // namespace potentials
183 } // namespace fldsgn
184 } // namespace protocols
185 
186 #endif