Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AsymFoldandDockRbTrialMover.cc
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 // This file is part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file MinMover.cc
10 /// @brief
11 /// @author Ingemar Andre
12 
13 // Unit headers
16 // AUTO-REMOVED #include <core/pose/Pose.hh>
21 
22 // Package headers
23 // options
24 #include <basic/options/option.hh>
25 #include <basic/options/keys/fold_and_dock.OptionKeys.gen.hh>
26 
27 // ObjexxFCL Headers
28 
29 // C++ Headers
30 
31 // Utility Headers
32 #include <basic/Tracer.hh>
33 
34 #include <utility/vector1.hh>
35 
36 
37 namespace protocols {
38 namespace simple_moves {
39 namespace asym_fold_and_dock {
40 
41 static basic::Tracer TR("protocols.simple_moves.symmetry.AsymFoldandDockRbTrialMover");
42 
44  protocols::moves::Mover( "AsymFoldandDockRbTrialMover" ),
45  smooth_move_(false), rot_mag_(8.0), trans_mag_(3.0), rigid_body_cycles_(50), mc_filter_(true)
46 {
48 }
49 
52 ) :
53  protocols::moves::Mover( "AsymFoldandDockRbTrialMover" ),
54  scorefxn_(scorefxn), smooth_move_(false), rot_mag_(8.0), trans_mag_(3.0), rigid_body_cycles_(50), mc_filter_(true)
55 {}
56 
59  bool smooth_move
60 ) :
61  protocols::moves::Mover( "AsymFoldandDockRbTrialMover" ),
62  scorefxn_(scorefxn), smooth_move_(smooth_move), rot_mag_(8.0), trans_mag_(3.0), rigid_body_cycles_(50), mc_filter_(true)
63 {}
64 
67  bool smooth_move,
68  core::Real rot_mag,
69  core::Real trans_mag
70 ) :
71  protocols::moves::Mover( "AsymFoldandDockRbTrialMover" ),
72  scorefxn_( scorefxn), smooth_move_(smooth_move), rot_mag_(rot_mag), trans_mag_(trans_mag)
73 {}
74 
75 void
77 {
78 
79  using namespace basic::options;
80  using namespace protocols::moves;
81 
82  TR.Debug << "Rb move applied..." << std::endl;
83 
84  core::Real trans_mag_smooth = 0.1;
85  core::Real rot_mag_smooth = 1.0;
86 
87  // Docking options
88  if ( smooth_move_ ) {
89  if ( option[ OptionKeys::fold_and_dock::trans_mag_smooth ].user() ) {
90  trans_mag_smooth = option[ OptionKeys::fold_and_dock::trans_mag_smooth ];
91  }
92  if ( option[ OptionKeys::fold_and_dock::rot_mag_smooth ].user() ) {
93  rot_mag_smooth = option[ OptionKeys::fold_and_dock::rot_mag_smooth ];
94  }
95  }
96 
97  // overrriding constructor or default values
98  if ( option[ OptionKeys::fold_and_dock::rb_rot_magnitude ].user() )
99  {
100  rot_mag_ = ( option[ OptionKeys::fold_and_dock::rb_rot_magnitude ] );
101  }
102 
103  // overrriding constructor or default values
104  if ( option[ OptionKeys::fold_and_dock::rb_trans_magnitude ].user() )
105  {
106  trans_mag_ = ( option[ OptionKeys::fold_and_dock::rb_trans_magnitude ] );
107  }
108 
109  core::Real rot_mag_trial = smooth_move_ ? rot_mag_smooth : rot_mag_;
110  core::Real trans_mag_trial = smooth_move_ ? trans_mag_smooth : trans_mag_;
111 
112  // overrriding constructor or default values
113  if ( option[ OptionKeys::fold_and_dock::rigid_body_cycles ].user() )
114  {
115  rigid_body_cycles_ = ( option[ OptionKeys::fold_and_dock::rigid_body_cycles ] );
116  }
117 
118  if ( option[ OptionKeys::fold_and_dock::rigid_body_disable_mc ].user() )
119  {
120  mc_filter_ = false;
121  }
122 
123  // Setup Monte Carlo object
125 
126 
127  // Setup the movemap
129  movemap->set_bb( false );
130  movemap->set_chi( false );
131  movemap->set_jump( true );
132 
133  //set up mover for docking
136  pose, *movemap, rot_mag_trial, trans_mag_trial,
137  rigid::partner_downstream, false );
138 
139  for ( Size i = 1; i <= rigid_body_cycles_; ++i ) {
140  rb_perturb.apply( pose );
141  if ( mc_filter_ ) monteCarlo_->boltzmann( pose );
142  }
143  //monteCarlo_->recover_low(pose);
144 }
145 
148  return "AsymFoldandDockRbTrialMover";
149 }
150 
151 
152 } // asym_fold_and_dock
153 } // moves
154 } // protocols