6 #include <utility/stream_util.hh>
7 #include <basic/MetricValue.hh>
8 #include <basic/Tracer.hh>
9 #include <basic/prof.hh>
28 #include <utility/string_util.hh>
29 #include <utility/vector0.hh>
30 #include <utility/vector1.hh>
32 #include <boost/foreach.hpp>
36 #define foreach BOOST_FOREACH
39 namespace pose_metric_calculators {
68 using namespace protocols::moves;
69 using namespace core::pack::rotamer_set;
70 using namespace core::pack::task;
71 using namespace core::conformation;
73 task->set_bump_check(
false);
79 min_mover->apply( pose );
84 Size moltenResid = rotsets->resid_2_moltenres(resi);
112 PROF_START(basic::TEST3);
115 min_mover->apply( pose );
116 PROF_STOP(basic::TEST3);
118 scores.push_back( score );
128 using namespace core::pack::task;
129 using namespace core::pack::rotamer_set;
130 using namespace core::conformation;
134 rotset_ = rsf.create_rotamer_set( res );
139 PackerTaskOP ptask( tf->create_task_and_apply_taskoperations( pose ) );
143 ptask->set_bump_check(
false);
149 des_around->include_residue( resi );
150 tf->push_back( des_around );
151 PackerTaskOP task = tf->create_task_and_apply_taskoperations( pose );
155 using namespace core::conformation;
161 mm->set_jump(
false );
163 mm->set_jump( (
int)(
rb_jump()),
true );
165 if( task->being_designed( i ) ){
166 task->nonconst_residue_task( i ).restrict_to_repacking();
167 mm->set_chi( i,
true );
170 task->nonconst_residue_task( i ).prevent_repacking();
172 mm->set_chi( i,
false );
178 min_mover->score_function(
scorefxn() );
179 min_mover->movemap( mm );
180 min_mover->min_options()->min_type(
"dfpmin_armijo_nonmonotone" );
188 boltz_sum += exp(( init_score - score )/
temperature());
190 return( 1/boltz_sum );
194 if ( key ==
"boltz" ) {
195 basic::check_cast( valptr, &
all_boltz_,
"boltz expects to return a util:vector1<real>" );
196 (
static_cast<basic::MetricValue<utility::vector1< core::Real >
> *>(valptr))->set(
all_boltz_ );
199 basic::Error() <<
"This Calculator cannot compute metric " << key << std::endl;
205 if ( key ==
"boltz" ) {
219 rot_to_pack.reserve( rotamer_sets->nrotamers() );
221 for (
Size rot = 1;
rot <= rotamer_sets->nrotamers(); ++
rot ) {
222 core::Size this_moltenres = rotamer_sets->moltenres_for_rotamer(
rot);
223 core::Size this_rotid = rotamer_sets->rotid_on_moltenresidue(
rot);
224 if(this_moltenres ==moltenres && !(this_rotid==rot_to_fix)){
227 rot_to_pack.push_back(
rot );