Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UpstreamBuilder.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 // :noTabs=false:tabSize=4:indentSize=4:
4 //
5 // (c) Copyright Rosetta Commons Member Institutions.
6 // (c) This file is part of the Rosetta software suite and is made available under license.
7 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10 
11 /// @file protocols/match/upstream/UpstreamBuilder.hh
12 /// @brief
13 /// @author Alex Zanghellini (zanghell@u.washington.edu)
14 /// @author Andrew Leaver-Fay (aleaverfay@gmail.com), porting to mini
15 
16 #ifndef INCLUDED_protocols_match_upstream_UpstreamBuilder_hh
17 #define INCLUDED_protocols_match_upstream_UpstreamBuilder_hh
18 
19 // Unit headers
21 
22 // Package headers
24 // AUTO-REMOVED #include <protocols/match/Hit.hh>
27 
28 // Project headers
31 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
32 
33 // Utility headers
34 #include <utility/pointer/ReferenceCount.hh>
35 
36 // C++ headers
37 #include <list>
38 
40 
41 
42 namespace protocols {
43 namespace match {
44 namespace upstream {
45 
47 public:
48  typedef core::Size Size;
50 
51 public:
52  virtual ~UpstreamBuilder();
53 
54  virtual
56  clone() const = 0;
57 
58  /// @brief Iterate across possible conformations for the upstream
59  /// half of the hit, and for each (non-colliding) conformation,
60  /// invoke build on the downstream algorithm.
61  /// Return a list of hits.
62  virtual
63  std::list< Hit >
64  build(
65  ScaffoldBuildPoint const & build_point
66  ) const = 0;
67 
68  /// @brief Reconstruct the upstream conformation for a hit and pass that conformation to
69  /// an upstream residue processor.
70  virtual
71  void
73  Hit const & hit,
74  ScaffoldBuildPoint const & build_point,
75  UpstreamResidueProcessor & processor
76  ) const = 0;
77 
78  /// @brief Reconstruct the upstream conformation for a set of hits and pass their conformations to
79  /// an upstream residue processor.
80  virtual
81  void
83  std::list< Hit >::const_iterator hits_begin,
84  std::list< Hit >::const_iterator hits_end,
85  ScaffoldBuildPoint const & build_point,
86  UpstreamResidueProcessor & processor
87  ) const = 0;
88 
89  virtual
90  Size
91  n_restypes_to_build() const = 0;
92 
93  virtual
95  restype( Size which_restype ) const = 0;
96 
97  virtual bool compatible(
98  Hit const & my_hit,
99  ScaffoldBuildPoint const & build_point_mine,
100  UpstreamBuilder const & other,
101  Hit const & other_hit,
102  ScaffoldBuildPoint const & build_point_other,
103  bool first_dispatch = true
104  ) const;
105 
106 
107  virtual bool compatible(
108  Hit const & my_hit,
109  ScaffoldBuildPoint const & build_point_mine,
110  ProteinUpstreamBuilder const & other,
111  Hit const & other_hit,
112  ScaffoldBuildPoint const & build_point_other,
113  bool first_dispatch = true
114  ) const;
115 
116 
117  void
119 
120 protected:
121 
122  BumpGrid const &
123  bbgrid() const {
124  return *bbgrid_;
125  }
126 
127 private:
129 
130 };
131 
133 {
134 public:
135  virtual ~UpstreamResidueProcessor();
136 
137  virtual
138  void
139  process_hit(
140  Hit const & hit,
141  core::conformation::Residue const & upstream_conformation
142  ) = 0;
143 
144 };
145 
146 }
147 }
148 }
149 
150 #endif