45 #include <numeric/random/random.hh>
46 #include <utility/tag/Tag.hh>
47 #include <utility/vector1.hh>
54 #include <basic/Tracer.hh>
58 #include <utility/vector0.hh>
64 static basic::Tracer
TR(
"protocols.enzdes.BackboneSampler" );
65 static numeric::random::RandomGenerator
RG( 6172774 );
81 return "BackboneSampler";
91 using namespace core::scoring;
92 using namespace pack::task;
93 using namespace protocols::moves;
103 bb_moves_ = bb_moves;
123 std::set< core::Size > segments;
130 if ( segments.empty() ) {
133 movemap -> set_bb( ii,
true );
134 mobile_bb[ii] =
true;
138 movemap -> set_bb( ii-1,
false );
139 mobile_bb[ii-1] =
false;
145 if ( pose.
residue(ii).
is_protein() && ( segments.find(ii) != segments.end() ) ) {
146 movemap -> set_bb( ii,
true );
147 mobile_bb[ii] =
true;
154 TR <<
"Original fold tree: " << pose.
fold_tree() << std::endl;
155 core::Size lig_jump = get_ligand_jump_id(pose);
157 reorder_foldtree_around_mobile_regions( pose, lig_jump, mobile_bb, lig_id);
159 TR <<
"Modified fold tree: " << pose.
fold_tree() << std::endl;
162 bbg8t3amover.
movemap( movemap );
170 TR <<
"Score After PDB Load:" << std::endl;
171 scorefxn_repack_->show(
TR, pose);
177 TR <<
"Running " << bb_moves_ <<
" trials..." << std::endl;
178 for (
core::Size ii =1; ii != bb_moves_; ++ii ) {
179 bbg8t3amover.
apply( pose );
184 TR <<
"Lowest score: \n";
186 scorefxn_repack_->show(
TR, pose);
191 TR <<
"Reinstated original fold tree: " << pose.
fold_tree() << std::endl;
207 bb_moves_ = tag->getOption<
core::Size>(
"moves", 1000 );
208 std::string const scorefxn( tag->getOption<
string>(
"scorefxn",
"score12" ));