Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SheetBuilder.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/jumping/PairingTemplate
11 /// @brief header file for ClassicAbinitio protocol
12 /// @detailed
13 /// from converting jumping_pairings.cc of rosetta++ into mini
14 ///
15 ///
16 ///
17 /// @author Oliver Lange
18 
19 #ifndef INCLUDED_protocols_jumping_SheetBuilder_hh
20 #define INCLUDED_protocols_jumping_SheetBuilder_hh
21 
22 // Unit Headers
23 
24 // Package Headers
29 
30 // Project Headers
31 #include <core/pose/Pose.fwd.hh>
32 #include <core/types.hh>
34 
35 // Utility headers
36 #include <utility/pointer/ReferenceCount.hh>
37 // AUTO-REMOVED #include <utility/vector1.hh>
38 
39 // ObjexxFCL Headers
40 // AUTO-REMOVED #include <ObjexxFCL/FArray1A.hh>
41 // AUTO-REMOVED #include <ObjexxFCL/FArray2A.hh>
42 #include <ObjexxFCL/FArray3D.fwd.hh>
43 
44 #include <utility/vector1.hh>
45 #include <ObjexxFCL/FArray2A.fwd.hh>
46 
47 
48 //// C++ headers
49 //#include <cstdlib>
50 //#include <string>
51 //#include <vector>
52 
53 namespace protocols {
54 namespace jumping {
55 
56 
57 ///@brief select jumps to build a given topology
58 ///@detail this class encapsulates the functionality of choose_random_pairings in jumping_pairings.cc of Rosetta++
59 class SheetBuilder : public BaseJumpSetup {
60 public:
63 
64  //copy c'stor
65  SheetBuilder( SheetBuilder const& );
66 
67  //d'stor
68  virtual ~SheetBuilder();
69 
71  return "SheetBuilder";
72  }
73 
74  virtual
76  create_jump_sample() const;
77 
79  clean_jumps( JumpSample const& js ) const
80  {
81  std::cerr << "ERROR: JumpSetup::clean_jumps() not implemented" << std::endl;
82  return js;
83  }
84 
85  Size total_residue() const {
86  return total_residue_;
87  }
88 
89 protected:
90  //default do nothing always use input_sheet_sizes_ as sheet_sizes_.
92  { return sheet_sizes_; };
93 
94 private:
95  bool builder_loop( core::scoring::dssp::PairingsList &jump_pairings ) const;
96  void choose_next_pairing( ObjexxFCL::FArray3D_int &, core::Size, core::Size ) const;
97  bool check_next_pairing( ObjexxFCL::FArray3D_int &, core::Size, core::Size ) const;
98 
99  bool check_two_pairings(
100  ObjexxFCL::FArray1A_int pairing1,
101  ObjexxFCL::FArray1A_int pairing2,
102  int & common_strands
103  ) const;
104 
106  ObjexxFCL::FArray2A_int pairing_list,
107  const int last_pairing,
108  const bool force_single_sheet
109  ) const;
110 
111  bool check_pairing_intersect( ObjexxFCL::FArray1A_int, ObjexxFCL::FArray1A_int ) const;
112 
118 
120 };
121 
122 } //protocols
123 } //jumping
124 
125 #endif
126