29 #include <utility/tag/Tag.hh>
36 #include <basic/options/option.hh>
51 #include <basic/Tracer.hh>
54 #include <utility/string_util.hh>
59 #include <basic/options/keys/enzdes.OptionKeys.gen.hh>
61 #include <utility/vector0.hh>
62 #include <utility/vector1.hh>
68 static basic::Tracer
mv_tr(
"protocols.enzdes.PredesignPerturbMover");
78 utility::pointer::ReferenceCount(),
79 constrained_lig_atoms_( src.constrained_lig_atoms_ ),
80 constrained_nonligand_atoms_( src.constrained_nonligand_atoms_ ),
81 ligand_seqpos_( src.ligand_seqpos_ )
90 using namespace core::scoring::constraints;
101 rpc_start = constraint_set->residue_pair_constraints_begin(
ligand_seqpos_),
102 rpc_end=constraint_set->residue_pair_constraints_end(
ligand_seqpos_);
103 rpc_start != rpc_end; ++rpc_start ) {
107 constraints=rpc_start->second;
110 iter = constraints->begin(),
111 iter_end = constraints->end();
112 iter != iter_end; ++iter ) {
113 mv_tr.Info <<(*iter)->type() << std::endl;
114 if ( (*iter)->type() ==
"MultiConstraint" || (*iter)->type() ==
"AmbiguousConstraint" ) {
116 }
else if ( ((*iter)->type()) ==
"AtomPair") {
128 multi_constraint_members=real_multi_constraint->member_constraints();
130 for (core::scoring::constraints::ConstraintCOPs::const_iterator
131 MC_it=multi_constraint_members.begin();
132 MC_it!=multi_constraint_members.end(); MC_it++) {
133 if ( ((*MC_it)->type()) ==
"AtomPair") {
134 assert( dynamic_cast <core::scoring::constraints::AtomPairConstraint const * > ((*MC_it)()) );
136 }
else if ( ((*MC_it)->type()) ==
"MultiConstraint" || ((*MC_it)->type()) ==
"AmbiguousConstraint" ) {
137 assert( dynamic_cast <core::scoring::constraints::MultiConstraint const * > ((*MC_it)()) );
168 if ( (*it) == atom_no)
return;
171 if (
mv_tr.Info.visible()) {
172 mv_tr.Info <<
"Constrained ligand atom: " << std::endl;
173 mv_tr.Info << atom_no << std::endl;
185 if ( (*it) == atid )
return;
188 if (
mv_tr.Info.visible()) {
189 mv_tr.Info <<
"Constrained non-ligand atom: res " << std::endl;
190 mv_tr.Info << atid.
rsd() <<
" atom " << atid.
atomno() << std::endl;
210 return "PredesignPerturbMover";
216 protocols::rigid::RigidBodyPerturbMover()
218 trans_magnitude(basic::options::option[basic::options::OptionKeys::enzdes::trans_magnitude]);
219 rot_magnitude(basic::options::option[basic::options::OptionKeys::enzdes::rot_magnitude]);
220 dock_trials_ = basic::options::option[basic::options::OptionKeys::enzdes::dock_trials];
233 if( task -> design_residue(i) && !(cst_cache && cst_cache->contains_position(i)) )
270 geometric_center += res.
xyz(ii);
272 geometric_center /= res.
natoms();
273 return geometric_center;
292 return geometric_center;
306 task = enzprot -> create_enzdes_pack_task( pose,
true );
313 MCpredock->reset( pose );
314 MCpredock->reset_counters();
320 mv_tr.Info <<
"starting predocking ... " << std::endl;
330 MCpredock->boltzmann(pose);
333 MCpredock->show_counters();
334 MCpredock->recover_low( pose );
335 mv_tr.Info <<
"... done predocking" << std::endl;
354 trans_magnitude( tag -> getOption< core::Real >(
"trans_magnitude", 0.1 ) );
355 rot_magnitude( tag -> getOption< core::Real >(
"rot_magnitude", 2.0 ) );
356 dock_trials_ = tag -> getOption< core::Size >(
"dock_trials", 100 );
378 return "PredesignPerturbMover";
384 : sfxn_(NULL), lig_seqpos_(0), enzcst_io_(NULL), calculate_silent_Es_(false)
391 bool calculate_silent_Es
392 ) : sfxn_(sfxn), lig_seqpos_(0), enzcst_io_(NULL), calculate_silent_Es_(calculate_silent_Es)
424 runtime_assert(
sfxn_ );
439 if( all_ligands.size() != 1 ) utility_exit_with_message(
"Pose has more or less than one ligand. This mover atm can only hadndle poses with one ligand.");
449 enzcst_io_->remove_constraints_from_pose( pose,
true ,
false );
453 enzcst_io_->remove_constraints_from_pose( pose,
false ,
false );
458 detect_enzdes_interface->set_design(
false);
461 taskfactory.
push_back( detect_enzdes_interface);
471 packer->apply( pose );
482 ObjexxFCL::FArray1D_bool pack_region(
ptask_->total_residue(), false );
490 for(
core::Size i =1; i <= special_res.size(); ++i){
492 ObjexxFCL::FArray1D_bool pack_region(
ptask_->total_residue(), false );
493 pack_region( special_res[i] ) =
true;
495 std::string title(
"nlr_SR"+utility::to_string( i )+
"_rms");
514 return "RepackLigandSiteWithoutLigandMover";
524 trans_mover.apply( pose );