Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FlexPepDockingFlags.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) 199x-2008 Hebrew University, Jerusalem
5 //
6 // (c) Copyright Rosetta Commons Member Institutions.
7 // (c) This file is part of the Rosetta software suite and is made available under license.
8 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
9 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
10 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
11 /// @file FlexPepDockingFlags.hh
12 ///
13 /// @brief flags structure for FlexPepDocking protocols
14 /// @date January 1, 2009
15 /// @author Barak Raveh
16 
17 #ifndef INCLUDED_protocols_flexpep_docking_FlexPepDockingFlags_hh
18 #define INCLUDED_protocols_flexpep_docking_FlexPepDockingFlags_hh
19 
20 #include <core/pose/Pose.fwd.hh>
22 #include <utility/pointer/ReferenceCount.hh>
23 #include <map>
24 // AUTO-REMOVED #include <cstdlib>
25 #include <string>
26 
27 #include <utility/vector1.hh>
28 
29 
30 namespace protocols {
31 namespace flexpep_docking {
32 
33 
36 {
37 public:
38 
39  ///////////////////////////////////////////////
40  /// @brief
41  /// initialize all flags from cmd-line options
42  ///////////////////////////////////////////////
44 
45  // TODO: documentation
47  return new FlexPepDockingFlags( *this );
48  }
49 
50  // TODO: more documentation
51  // validate chain info (if no info specified, choose first two chains)
52  void updateChains(core::pose::Pose const& pose);
53 
54  // TODO: more documentation
55  // set default chain anchors (peptide c.o.m, and nearest receptor residue)
56  void setDefaultAnchors(core::pose::Pose& pose); // TODO: pose should be const, but need to fix RB_geometry 4 this
57 
58  // update chane boundaries and anchors -
59  // support for old params-file format
60  //
61  // TODO: also take chain-ids from params file
63  ( std::string const& params_file );
64 
65  // TODO: documentation
66  bool valid_chain_info() const
67  {
69  }
70 
71  bool valid_receptor_chain() const
72  { return valid_receptor_chain_; }
73 
74  bool valid_peptide_chain() const
75  { return valid_peptide_chain_; }
76 
77  // TODO: documentation
78  bool valid_anchors() const
79  {
80  return
81  (peptide_anchors.size() > 0 &&
82  peptide_anchors.size() == peptide_cuts.size() + 1 &&
84  }
85 
86 
87 public:
88  /////////////////////
89  // Accessor Methods:
90  /////////////////////
91 
92  bool is_ligand_present( core::pose::Pose const& pose ) const;
93 
94  char receptor_chain() const;
95 
96  char peptide_chain() const;
97 
98  void set_receptor_chain(char ch){
100  }
101 
102  void set_peptide_chain(char ch){
104  }
105 
106  int receptor_first_res() const;
107 
108  int receptor_last_res() const;
109 
110  int receptor_nres() const;
111 
112  int peptide_first_res() const;
113 
114  int peptide_last_res() const;
115 
116  int peptide_nres() const;
117 
119 
120  bool valid_ref_start_struct() const;
121 
122 
123 private:
124  // TODO: change all ints to Size, and add access to basic::options::user() to check validity
125  // chain info fields
134  bool valid_chain_bounds_; // refers to fields above
137 public:
139  int receptor_anchor_pos; // anchor position within the receptor protein
140  std::map<int,int> peptide_cuts; // peptide internal cuts
141  std::map<int,int> peptide_anchors; // anchors for peptide fragments
142  std::string params_file; // parameters for describing the complex, anchor residues, etc.
145  bool min_only;
149  bool extend;
151  bool rbMCM;
153  double rb_rot_size;
161  bool ramp_rama;
163  int mcm_cycles; // TODO: spearate rigid-body and torsion cycles #
167  bool ppk_only;
170  double score_filter;
173  double frag3_weight;
174  double frag5_weight;
175  double frag9_weight;
181 }; // class FlexPepDockingFlags
182 
183 } // namespace flexpep_docking
184 } // namespace protocols
185 
186 #endif
187