Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SelectResiduesByLayer.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/toolbox/SelectResiduesByLayer.hh
11 /// @brief select residues depending on layer: core, boundary, and surface
12 /// and the layer are defined by accessible sufrace area of each residue
13 /// @author Nobuyasu Koga ( nobuyasu@uw.edu )
14 
15 #ifndef INCLUDED_protocols_toolbox_SelectResiduesByLayer_hh
16 #define INCLUDED_protocols_toolbox_SelectResiduesByLayer_hh
17 
18 #include <core/types.hh>
19 #include <core/pose/Pose.fwd.hh>
20 #include <core/chemical/AA.hh>
22 
23 #include <map>
24 // AUTO-REMOVED #include <fstream>
25 // AUTO-REMOVED #include <string>
26 #include <utility/vector1.hh>
27 
28 #include <utility/pointer/ReferenceCount.hh>
29 
30 
31 namespace protocols {
32 namespace toolbox {
33 
35 public:
36 
37 
38  typedef core::Size Size;
39  typedef core::Real Real;
43 
44 
45 public: // constructor/destructor
46 
47 
48  /// @brief default constructor
50 
51  /// @brief value constructor
52  SelectResiduesByLayer( bool const pick_core, bool const pick_boundary, bool const pick_surface );
53 
54  /// @brief value constructor
55  /// @detail selected layer can be given by string, for example, core_surface or core_boundary_surface
56  SelectResiduesByLayer( String const pick );
57 
58  /// @brief destructor
59  virtual ~SelectResiduesByLayer();
60 
61 
62 public:
63 
64 
66 
67 
68 public: // mutator
69 
70 
71  /// @brief
72  void
73  set_design_layer( bool const pick_core, bool const pick_boundary, bool const pick_surface )
74  {
75  pick_core_ = pick_core;
76  pick_boundary_ = pick_boundary;
77  pick_surface_ = pick_surface;
78  }
79 
80 
81  /// @brief set pore radius for colculating asa
82  void pore_radius( Real const ps )
83  {
84  pore_radius_ = ps;
85  }
86 
87  /// @brief accessible surface for evaluating residues are in surface or not
88  void sasa_surface( Real const r, String const ss="" );
89 
90  /// @brief accessible surface for evaluating residues are in core or not
91  void sasa_core( Real const r, String const ss="" );
92 
93  /// @brief accessible surface for evaluating residues are in core or not
94  void make_rasmol_format_file( bool const b )
95  {
97  }
98 
99  /// @brief
101 
102  /// @brief
104 
105 
106 public: // accessor
107 
108 
109  /// @brief accessbile surface are of each residue
110  Real rsd_sasa( Size const i ) const;
111 
112  /// @brief return defined layer for each residue
113  String layer( Size const i ) const;
114 
115  /// @brief selected residues on boundary
117 
118  /// @brief selected residues in core
120 
121  /// @brief selected residues on surface
123 
124 
125 public: // main operation
126 
127 
128  /// @brief apply
130  compute( Pose const & pose, String secstruct="" );
131 
132 
133 private: // helper functions
134 
135 
136  /// @brief
138 
139  /// @brief
141  calc_rsd_sasa( Pose const & pose ) const;
142 
143 
144 protected:
145 
146 
147  /// @brief design core ?
149 
150  /// @brief design boundary ?
152 
153  /// @brief design surface ?
155 
156  /// @brief pore radius for calculating asa( accessible surface area )
158 
159  /// @brief asa pore radius for calculating asa
160  std::map< char, Real > burial_;
161 
162  /// @brief pore radius for calculating asa
163  std::map< char, Real > surface_;
164 
165  /// @brief amino acid types excluded for selection
167 
168  /// @brief amino acid types restricted for selection
170 
171  /// @brief selected residues in core
173 
174  /// @brief selected residues at boundary
176 
177  /// @brief selected residues on surface
179 
180  /// @brief create rasmol format script for selected residues; red: surface, blue: core, green: boundary
182 
183  /// @brief output in rasmol format
184 
185 
186  /// @brief asa for each residue
188 
189  /// @brief
191 
192 
193 };
194 
195 
196 } // flxbb
197 } // protocols
198 
199 #endif