42 #include <basic/options/option.hh>
57 #include <ObjexxFCL/FArray1D.hh>
60 #include <basic/Tracer.hh>
79 #include <basic/options/keys/score.OptionKeys.gen.hh>
80 #include <basic/options/keys/rna.OptionKeys.gen.hh>
82 #include <utility/vector0.hh>
83 #include <utility/vector1.hh>
93 static basic::Tracer
TR(
"protocols.rna.rna_minimizer" ) ;
98 RNA_Minimizer::RNA_Minimizer():
100 deriv_check_( false ),
101 use_coordinate_constraints_( false ),
102 coord_sdev_( 10.0 * std::sqrt(10.0) ),
103 coord_cst_weight_( 1.0 ),
104 rounds_( basic::options::option[ basic::options::OptionKeys::rna::minimize_rounds ] ),
105 skip_o2star_trials_( false ),
106 perform_minimizer_run_( true ),
107 vary_bond_geometry_( false ),
108 include_default_linear_chainbreak_( true ),
110 do_dump_pdb_( false ),
111 move_first_rigid_body_( false ),
112 min_type_(
"dfpmin" )
114 Mover::type(
"RNA_Minimizer");
115 if ( basic::options::option[ basic::options::OptionKeys::score::weights ].user() ) {
127 using namespace core::scoring;
128 using namespace core::kinematics;
129 using namespace core::optimization;
130 using namespace basic::options;
131 using namespace basic::options::OptionKeys;
134 TR <<
"Check it! SEQUENCE " << pose.
sequence() << std::endl;
135 TR <<
"In protocols.rna.rna_minimizer.apply()" << std::endl;
148 time_t pdb_start_time = time(NULL);
169 float const dummy_tol( 0.0000025);
170 bool const use_nblist(
true );
189 minimize_scorefxn_->set_weight(
fa_rep, fa_rep_final * suppress );
191 if(
do_dump_pdb_) pose.
dump_pdb(
"RNA_Minimizer_round_" + ObjexxFCL::string_of(r) +
"_before_o2star_trials.pdb" );
195 if(
do_dump_pdb_) pose.
dump_pdb(
"RNA_Minimizer_round_" + ObjexxFCL::string_of(r) +
"_after_o2star_trials.pdb" );
207 TR <<
"Minimizing...round= " << r << std::endl;
210 if (
do_dump_pdb_) pose.
dump_pdb(
"RNA_Minimizer_round_" + ObjexxFCL::string_of(r) +
"_after_minimizer_run.pdb" );
214 time_t pdb_end_time = time(NULL);
220 if(
verbose_) std::cout <<
"----------After minimizing:----------" << std::endl;
222 (*scorefxn_)( pose );
227 TR <<
"RNA minimizer finished in " << (long)(pdb_end_time - pdb_start_time) <<
" seconds." << std::endl;
237 return "RNA_Minimizer";
255 task->nonconst_residue_task(i).and_extrachi_cutoff( 0 );
256 task->nonconst_residue_task(i).or_include_current(
true );
260 TR <<
"Orienting 2' hydroxyls..." << std::endl;
270 using namespace core::id;
271 using namespace core::scoring::rna;
280 for (
Size i = 1; i <= nres; i++ ) {
291 mm.
set( dof_id,
true );
301 AtomID jump_atom_id1( 1, jump_pos1 );
306 AtomID jump_atom_id2( 1, jump_pos2 );
324 CTIMover.
apply(pose);
345 atom_ids_to_move.push_back(
id::AtomID( j, i ) );
360 for (
Size n = 1; n <= atom_ids_to_move.size(); n++ ){