24 #include <basic/Tracer.hh>
29 #include <utility/vector1.hh>
44 namespace rotamer_recovery {
49 static Tracer
TR(
"protocol.moves.RRComparer");
52 recovery_threshold_(0)
57 recovery_threshold_(src.recovery_threshold_)
64 Real const recovery_threshold
82 if( res1.
aa() != res2.
aa() ) {
83 TR <<
"Cannot measure rotamer recovery because" << endl;
84 TR <<
"residue 1 has type '" << res1.
type().
name() <<
"'" << endl;
85 TR <<
"residue 2 has type '" << res2.
type().
name() <<
"'" << endl;
86 TR <<
"Make sure the protocol to generate the conformations did not 'design' the sequence identity too." << endl;
91 TR <<
"WARNING: trying to compare rotamer bins for non-canonical amino acid '" << res1.
name() <<
"'" << endl;
100 for (
Size chi_index=1; chi_index <= res1_rotbins.size(); ++chi_index ){
101 if ( res1_rotbins[ chi_index ] == res2_rotbins[ chi_index ] ) {
105 score = res1_rotbins.size() - chi_match;
112 return "RRComparerRotBins";
125 tolerance_( src.tolerance_ )
147 if( res1.
aa() != res2.
aa() ) {
148 TR <<
"Cannot measure rotamer recovery because" << endl;
149 TR <<
"residue 1 has type '" << res1.
type().
name() <<
"'" << endl;
150 TR <<
"residue 2 has type '" << res2.
type().
name() <<
"'" << endl;
151 TR <<
"Make sure the protocol to generate the conformations did not 'design' the sequence identity too." << endl;
156 TR <<
"WARNING: trying to compare rotamer bins for non-canonical amino acid '" << res1.
name() <<
"'" << endl;
162 for (
Size chi_index=1; chi_index <= res1.
nchi(); ++chi_index ){
165 if ( score < chidiff ) { score = chidiff; }
166 if ( chidiff >
tolerance_ ) { recovered =
false; }
175 return "RRComparerChiDiff";