Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FlexPepDockingAbInitio.hh
Go to the documentation of this file.
1 // (c) Copyright Rosetta Commons Member Institutions.
2 // (c) This file is part of the Rosetta software suite and is made available under license.
3 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
4 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
5 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
6 
7 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
8 // vi: set ts=2 noet;
9 //
10 // (C) 199x-2008 Hebrew University, Jerusalem
11 //
12 /// @file FlexPepDockingAbInitio.hh
13 ///
14 /// @brief low-resolution agressive ab-initio folding and docking of peptide
15 /// @date August 5, 2008
16 /// @author Barak Raveh
17 
18 #ifndef INCLUDED_protocols_flexpep_docking_FlexPepDockingAbInitio_hh
19 #define INCLUDED_protocols_flexpep_docking_FlexPepDockingAbInitio_hh
20 
21 
25 // AUTO-REMOVED #include <core/fragment/FragSet.fwd.hh>
28 #include <core/pose/Pose.fwd.hh>
30 #include <protocols/moves/Mover.hh>
33 // AUTO-REMOVED #include <utility/options/keys/BooleanOptionKey.hh>
34 #include <string>
35 #include <set>
36 
37 #include <utility/vector1.hh>
38 
39 
40 namespace protocols {
41 namespace flexpep_docking {
42 
44 {
45 public:
46 
47  /// @brief
48  /// constructor for low resolution flexpible peptide docking
49  //
50  // @param[in] scorefxn_in
51  // The scoring function used for optimization
52  // @param[in] rb_jump
53  // The FoldTree rigid body jump over
54  // which rigid-body pertrubations are made
56  FlexPepDockingFlags flags_in,
58  core::kinematics::MoveMapOP movemap_in,
59  Size const rb_jump_in = 1
60  );
61 
62  // empty destructor - for good inclusion of OP clasesses
64 
65  virtual void apply( core::pose::Pose & pose );
66 
67  virtual std::string get_name() const;
68 
69  private:
70 
71  /// @brief initial setup for apply
73 
74  // switch pose to centroid mode, if in full-atom
75  void to_centroid ( core::pose::Pose & pose ) const;
76 
77  // switch pose to full-atom mode, if referncePose is full-atom
78  // (using side-chains of referencePose)
79  void to_allatom ( core::pose::Pose & pose, core::pose::Pose& referencePose ) const;
80 
81  // pose - the pose to perturb
82  // cycles - # of MC cycles
83  // acceptance_rate [Output] - the acceptance rate in the MC cycles
85  core::pose::Pose & pose,
86  const int cycles,
87  double& acceptance_rate
88  );
89 
90  // pose - the pose to loop close, containing the peptide
92  core::pose::Pose & pose
93  );
94 
95  // pose - the pose to perturb
96  // cycles - # of MC cycles
97  // trans_magnitude = random translation magnitude
98  // rot_magnitude = random rotation magnitude
99  // acceptance_rate [Output] - the acceptance rate in the MC cycles
101  core::pose::Pose & pose,
102  const int cycles,
103  const float trans_magnitude,
104  const float rot_magnitude,
105  double& acceptance_rate
106  );
107 
108  /////////////////////////////////////////////////////////////////////////////
109  // @brief convert all pSer residues to Asp, and save list of pSers to pSer_positions
110  //
111  // @param pose pose for conversion
112  // @param pSer_positions[out] - positions that were converted from pSer to Asp
113  /////////////////////////////////////////////////////////////////////////////
114  void convertPSERtoASP(core::pose::Pose& pose, std::set<int>& pSer_positions);
115 
116  /////////////////////////////////////////////////////////////////////////////
117  // @brief convert all pSer residues to Glu, and save list of pSers to pSer_positions
118  //
119  // @param pose pose for conversion
120  // @param pSer_positions[out] - positions that were converted from pSer to Asp
121  /////////////////////////////////////////////////////////////////////////////
122  void convertPSERtoGLU(core::pose::Pose& pose, std::set<int>& pSer_positions);
123 
124 
125  /////////////////////////////////////////////////////////////////////////////
126  // @brief restore pSer residues if they were changed to Asp/Glu (based on pSer_positions)
127  //
128  // @param pose pose for conversion
129  // @param pSer_positions - positions for pSer'ilation
130  /////////////////////////////////////////////////////////////////////////////
131  void restorePSER(core::pose::Pose& pose, std::set<int> const& pSer_positions);
132 
133 
134 
135 private:
136  FlexPepDockingFlags flags_; // all flags loaded from cmd-line options
137 
138  // energy scoring function for centroid optimization
140 
141  // the flexpepdock protocol movemap // may change throughout the run
143 
144  /// the jump number across which to do rigid_body transformations
146 
147  /// whether or not to initialize the viewer (for opengl)
148  bool view_;
149 
151 
153 
154  // loop mover for modeling loop closure // TODO: this is a wrapper, use the loop modeller directly
156 
157  // set of fragments from a fragment library
161 
162 };
163 
164 } // flexPepDocking
165 } // protocols
166 
167 #endif
168