25 #include <basic/Tracer.hh>
27 #include <numeric/conversions.hh>
30 #include <utility/vector1.hh>
31 #include <boost/foreach.hpp>
34 #define foreach BOOST_FOREACH
36 namespace ligand_docking {
39 static basic::Tracer
TR(
"protocols.ligand_dock.ResidueTorsionRestraints", basic::t_debug);
48 stddev_degrees_(stddev_degrees),
65 using namespace core::scoring::constraints;
74 std::set< core::scoring::constraints::ConstraintCOP > dont_care;
84 for(
core::Size j = 1, j_end = rsd_type.nchi(); j <= j_end; ++j) {
85 core::Real const curr_chi_degrees = rsd.chi(j);
86 core::Real const curr_chi_radians = numeric::conversions::radians( curr_chi_degrees );
90 AtomID(chi_idx[1],
resid_),
91 AtomID(chi_idx[2],
resid_),
92 AtomID(chi_idx[3],
resid_),
93 AtomID(chi_idx[4],
resid_),
96 TR <<
"Constraint: " << curr_chi_degrees <<
" deg, " << constraint->atom(1) <<
" "
97 << constraint->atom(2) <<
" " << constraint->atom(3) <<
" " << constraint->atom(4) << std::endl;
99 if( rsd.atom_type(chi_idx[1]).is_hydrogen() || rsd.atom_type(chi_idx[4]).is_hydrogen() ) {
100 TR <<
"Constraint involves hydrogen atom; skipping it for PROTON_CHI." << std::endl;
102 new_constraints->add_constraint( constraint );
114 std::set< core::scoring::constraints::ConstraintCOP > & removed_constraints
117 using namespace core::scoring::constraints;
121 if( old_constraints.get() != NULL ) {
123 for(
Size i = 1; i <= old_constr.size(); ++i ) {
125 new_constraints->add_constraint( old_constr[i] );
126 TR <<
"Keeping old constraint " << old_constr[i]->to_string() << std::endl;
128 removed_constraints.insert( old_constr[i] );
129 TR <<
"Removing old constraint " << old_constr[i]->to_string() << std::endl;
133 return new_constraints;
139 using namespace core::scoring::constraints;
140 TR.Trace <<
"enable(), # constraints before: " << pose.
constraint_set()->get_all_constraints().size() << std::endl;
144 bool resid_has_changed = (
old_chi_.size() != new_chi.size());
145 if( !resid_has_changed ) {
147 if( std::abs(
old_chi_[i] - new_chi[i] ) > 1e-1 ) resid_has_changed =
true;
151 TR.Trace <<
"Residue " <<
resid_ <<
" has changed conformation? " << resid_has_changed << std::endl;
152 if( !resid_has_changed ) {
156 new_constraints->add_constraint( constraint );
164 TR.Trace <<
"enable(), # constraints after: " << pose.
constraint_set()->get_all_constraints().size() << std::endl;
170 using namespace core::scoring::constraints;
174 TR.Trace <<
"disable(), # constraints before: " << pose.
constraint_set()->get_all_constraints().size() << std::endl;
177 TR.Trace <<
"disable(), # constraints after: " << pose.
constraint_set()->get_all_constraints().size() << std::endl;