4 #include <basic/Tracer.hh>
9 #include <utility/exit.hh>
21 #include <basic/options/keys/out.OptionKeys.gen.hh>
22 #include <basic/options/keys/loops.OptionKeys.gen.hh>
23 #include <basic/options/keys/in.OptionKeys.gen.hh>
24 #include <basic/options/keys/edensity.OptionKeys.gen.hh>
26 #include <basic/resource_manager/ResourceManager.hh>
27 #include <basic/resource_manager/util.hh>
33 #include <utility/vector1.hh>
34 #include <basic/options/option.hh>
41 #include <basic/options/keys/symmetry.OptionKeys.gen.hh>
54 loop_relax_mover_( loop_relax_mover)
62 if ( !psipred_ss2_ok ) {
63 std::string dssp_name( basic::options::option[ basic::options::OptionKeys::in::file::dssp ]().
name() );
71 if ( basic::options::option[ basic::options::OptionKeys::symmetry::symmetry_definition ].user() ) {
73 pre_mover.
apply( pose );
80 if ( basic::options::option[ basic::options::OptionKeys::edensity::mapfile ].user() ) {
82 pre_mover.
apply( pose );
86 if ( basic::options::option[ basic::options::OptionKeys::in::file::native ].user() ) {
88 native_pose, basic::options::option[ basic::options::OptionKeys::in::file::native ]()
97 evaluator->add_evaluation(
101 basic::Tracer
TR(
"protocols.loop_build.LoopBuildMover");
103 TR <<
"Annotated sequence of pose: "
106 std::string const refine ( basic::options::option[ basic::options::OptionKeys::loops::refine ]() );
107 std::string const remodel ( basic::options::option[ basic::options::OptionKeys::loops::remodel ]() );
108 bool const keep_time ( basic::options::option[ basic::options::OptionKeys::loops::timer ]() );
111 core::Size curr_nstruct = job->nstruct_index();
112 clock_t starttime = clock();
117 if ( basic::options::option[ basic::options::OptionKeys::edensity::mapfile ].user() ) {
135 pose,
std::string(
"final_looprelax_score"), final_score
138 if ( basic::options::option[ basic::options::OptionKeys::loops::final_score_filter ].user() &&
139 final_score > basic::options::option[ basic::options::OptionKeys::loops::final_score_filter ]()
141 TR.Debug <<
"FailedFilter " << final_score <<
" > "
142 << basic::options::option[ basic::options::OptionKeys::loops::final_score_filter ]() << std::endl;
152 if ( ! basic::options::option[ basic::options::OptionKeys::out::file::silent ].user() ) {
155 if ( remodel ==
"perturb_kic" ) {
157 TR <<
"Initial kinematic closure failed. Not outputting."
163 if ( remodel !=
"no" ) {
167 job->add_string_real_pair(
"loop_cenrms ",cen_looprms );
169 TR <<
"loop_cenrms: " << cen_looprms << std::endl;
171 if ( refine !=
"no" ) {
178 job->add_string_real_pair(
"loop_rms ", final_looprms);
179 job->add_string_real_pair(
"total_energy ", final_score);
180 job->add_string_real_pair(
"chainbreak ", final_chainbreak);
182 TR <<
"loop_rms " << final_looprms << std::endl;
183 TR <<
"total_energy " << final_score << std::endl;
184 TR <<
"chainbreak " << final_chainbreak << std::endl;
188 clock_t stoptime = clock();
190 TR <<
"Job " << curr_nstruct <<
" took "<< ((double) stoptime - starttime )/CLOCKS_PER_SEC
191 <<
" seconds" << std::endl;
197 return "LoopBuildMover";
201 using namespace basic::resource_manager;
203 if ( ! ResourceManager::get_instance()->has_resource_with_description(
"LoopsFile" ) )
205 throw utility::excn::EXCN_Msg_Exception(
"AHH IT'S THE END OF DAYS. RUN FOR YOUR LIVES" );