Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
minimize.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 // (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
11 /// @brief
12 
13 
14 #include <protocols/jd2/JobDistributor.hh>
15 #include <core/scoring/ScoreFunctionFactory.hh>
16 #include <core/scoring/ScoreFunction.hh>
17 #include <core/scoring/ScoreFunction.fwd.hh>
18 #include <core/conformation/Residue.hh>
19 #include <core/scoring/constraints/util.hh>
20 #include <basic/options/option.hh>
21 #include <basic/options/keys/in.OptionKeys.gen.hh>
22 #include <basic/options/keys/run.OptionKeys.gen.hh>
23 #include <core/types.hh>
24 #include <basic/Tracer.hh>
25 #include <devel/init.hh>
26 #include <protocols/moves/Mover.hh>
27 #include <protocols/moves/Mover.fwd.hh>
28 #include <core/optimization/AtomTreeMinimizer.hh>
29 #include <core/optimization/MinimizerOptions.hh>
30 #include <core/kinematics/MoveMap.hh>
31 #include <numeric/random/random.hh>
32 #include <string>
34 
35 #include <core/kinematics/Jump.hh>
36 #include <utility/vector0.hh>
37 #include <utility/vector1.hh>
39 
40 #if defined(WIN32) || defined(__CYGWIN__)
41 #include <ctime>
42 #endif
43 
44 
45 using namespace ObjexxFCL;
46 
47 using basic::T;
48 using basic::Error;
49 using basic::Warning;
50 
51 using namespace core;
52 using namespace protocols;
53 using namespace protocols::moves;
54 using namespace core::scoring;
55 
56 using utility::vector1;
57 
58 static THREAD_LOCAL basic::Tracer TR( "minimize" );
59 
60 class Minimize : public moves::Mover {
61 
62 public:
63  Minimize();
64 
65  ~Minimize();
66 
67  virtual MoverOP clone() const;
68  virtual MoverOP fresh_instance() const;
69 
70  virtual void apply( Pose & pose );
71  virtual std::string get_name() const;
72  virtual void test_move( Pose & pose )
73  {
74  apply(pose);
75  }
76 
77 private:
78  ScoreFunctionOP score_function_;
79 };
80 
82  Mover( "benchmark" ),
83  score_function_( get_score_function() )
84 {
85 
86  using namespace basic::options;
87  using namespace basic::options::OptionKeys;
88 
89  if ( option[ in::file::fullatom ]() ) {
90  core::scoring::constraints::add_fa_constraints_from_cmdline_to_scorefxn( *score_function_ );
91  } else {
92  core::scoring::constraints::add_constraints_from_cmdline_to_scorefxn( *score_function_ );
93  }
94 
95 
96 }
97 
99 
100 MoverOP Minimize::clone() const {
101  return MoverOP( new Minimize( *this ) );
102 }
103 MoverOP Minimize::fresh_instance() const {
104  return MoverOP( new Minimize );
105 }
106 
107 void
109  using namespace pose;
110  using namespace basic::options;
111  using namespace basic::options::OptionKeys;
112 
113 
114  if ( option[ in::file::fullatom ]() ) {
115  core::scoring::constraints::add_fa_constraints_from_cmdline_to_pose( pose );
116  } else {
117  core::scoring::constraints::add_constraints_from_cmdline_to_pose( pose );
118  }
119 
120 
121  std::string min_type = option[ OptionKeys::run::min_type ]();
122  core::Real min_tol = option[ OptionKeys::run::min_tolerance ]();
123  core::optimization::MinimizerOptions options( min_type, min_tol, true, false );
124  core::kinematics::MoveMap final_mm;
125  final_mm.set_chi( true );
126  final_mm.set_bb( true );
127 
128  /*core::Real start_score =*/ (*score_function_)(pose);
129  core::Size repeats = 1;
130  for ( core::Size i = 0; i < repeats; i++ ) {
131  core::optimization::AtomTreeMinimizer().run( pose, final_mm, *score_function_, options );
132  TR << "Score: " << i << " " << (*score_function_)(pose) << std::endl;
133  }
134 
135  core::Real final_score = (*score_function_)(pose);
136  TR << "FinalScore: " << final_score << std::endl;
137 
138 }
139 
140 std::string
142  return "Minimize";
143 }
144 
145 
146 ///////////////////////////////////////////////////////////////////////////////
147 
148 int
149 main( int argc, char * argv [] )
150 {
151  try {
152  using namespace protocols::moves;
153  using namespace scoring;
154 
155  devel::init(argc, argv);
156 
157  MoverOP protocol( new Minimize() );
158  protocols::jd2::JobDistributor::get_instance()->go( protocol );
159  } catch ( utility::excn::EXCN_Base const & e ) {
160  std::cout << "caught exception " << e.msg() << std::endl;
161  return -1;
162  }
163 }
virtual std::string get_name() const
Definition: minimize.cc:141
#define THREAD_LOCAL
virtual std::string const msg() const
Definition: EXCN_Base.hh:70
Minimize()
Definition: minimize.cc:81
~Minimize()
Definition: minimize.cc:98
vector0: std::vector with assert-checked bounds
ScoreFunctionOP score_function_
Definition: minimize.cc:78
void init(int argc, char *argv[])
Command line init() version.
Definition: init.cc:23
core::pose::Pose Pose
Definition: supercharge.cc:101
Random number generator system.
Tracer & T(std::string const &channel, TracerPriority priority)
T is special function for assign tracer property on the static object.
Definition: Tracer.cc:567
common derived classes for thrown exceptions
int main(int argc, char *argv[])
Definition: minimize.cc:149
Tracer & Error(TracerPriority priority=t_error)
Predefined Error tracer.
Definition: Tracer.hh:395
virtual MoverOP fresh_instance() const
Definition: minimize.cc:103
Tracer IO system.
std::vector with 1-based indexing
Definition: vector1.fwd.hh:44
virtual void apply(Pose &pose)
Definition: minimize.cc:108
rule< Scanner, options_closure::context_t > options
Definition: Tag.cc:377
Tracer & Warning(TracerPriority priority=t_warning)
Predefined Warning tracer.
Definition: Tracer.hh:398
string min_type
Definition: loops_kic.py:76
virtual MoverOP clone() const
Definition: minimize.cc:100
double Real
Definition: types.hh:39
ocstream cout(std::cout)
Wrapper around std::cout.
Definition: ocstream.hh:287
vector1: std::vector with 1-based indexing
virtual void test_move(Pose &pose)
Definition: minimize.cc:72
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
Definition: Tracer.hh:134
Program options global and initialization function.
static void clone(T *&dst, S *src, int n)
Definition: Svm.cc:22
platform::Size Size
Definition: random.fwd.hh:30
static THREAD_LOCAL basic::Tracer TR("minimize")
rule< Scanner, option_closure::context_t > option
Definition: Tag.cc:378