22 #include <basic/Tracer.hh>
24 #include <basic/options/keys/remodel.OptionKeys.gen.hh>
25 #include <basic/options/keys/cluster.OptionKeys.gen.hh>
26 #include <basic/options/keys/constraints.OptionKeys.gen.hh>
29 #include <basic/options/option.hh>
37 #include <utility/vector1.hh>
57 static basic::Tracer
TR(
"protocols.forge.remodel.RemodelAccumulator" );
65 cluster_switch_ = basic::options::option[basic::options::OptionKeys::remodel::use_clusters];
71 cluster_switch_ = basic::options::option[basic::options::OptionKeys::remodel::use_clusters];
95 using namespace core::scoring;
96 using namespace protocols::simple_filters;
97 using namespace basic::options;
107 pose_store_.insert(std::pair<core::Real, core::pose::PoseOP>(score, pose_pt));
108 keep_top_pose( basic::options::option[basic::options::OptionKeys::remodel::save_top] );
111 if (option[OptionKeys::remodel::cluster_on_entire_pose]){
117 cluster_->sort_each_group_by_energy();
128 return "RemodelAccumulator";
137 std::multimap<core::Real, core::pose::PoseOP>::iterator worst_structure = --
pose_store_.end();
146 std::vector<core::pose::PoseOP> dummy_return;
148 dummy_return.push_back(it->second);
156 std::ofstream cpfile;
157 cpfile.open(
"checkpoint.txt", std::ios::trunc);
158 cpfile << progress_point << std::endl;
161 core::Size num_report = basic::options::option[basic::options::OptionKeys::remodel::save_top];
165 if (filecount <= num_report){
166 std::stringstream sstream;
167 std::string num(ObjexxFCL::lead_zero_string_of(filecount,3));
168 sstream <<
"ck_" << num <<
".pdb";
170 it->second->dump_pdb(sstream.str());
182 using namespace core::scoring;
183 using namespace core::scoring::constraints;
185 using namespace protocols::simple_filters;
186 using namespace basic::options;
190 core::Size num_report = basic::options::option[basic::options::OptionKeys::remodel::save_top];
192 std::string number(ObjexxFCL::lead_zero_string_of(i, 3));
196 std::cout <<
"checking checkpointed file: " << filename << std::endl;
197 struct stat stFileInfo;
201 intStat = stat(filename.c_str(), &stFileInfo);
210 if (boolReturn ==
true){
222 if (option[ OptionKeys::remodel::repeat_structure].user()){
223 if (option[ OptionKeys::constraints::cst_file ].user()){
225 repeat_constraint->apply( dummyPose );
229 Size repeat_number = basic::options::option[ OptionKeys::remodel::repeat_structure];
233 for (
Size rep = 1; rep < repeat_number; rep++ ){
234 for (
Size res = 1; res <= segment_length; res++){
239 std::cout <<
"linking " << count <<
" residue pairs" << std::endl;
242 if (option[OptionKeys::remodel::RemodelLoopMover::cyclic_peptide].user()){
246 this->
apply(dummyPose);
255 std::cout <<
"checkpointed_pose " << filename <<
" score = " << score << std::endl;
259 std::ifstream trajCount(
"checkpoint.txt");
262 std::cout <<
"checkpoint at " << ck << std::endl;
291 core::Real radius = basic::options::option[basic::options::OptionKeys::remodel::cluster_radius];
295 cluster_->set_cluster_radius( radius );
301 cluster_->do_clustering(basic::options::option[basic::options::OptionKeys::cluster::max_total_cluster]());
312 return cluster_->return_top_poses_in_clusters(count);
316 cluster_->limit_groupsize( (
int)num_top );
321 return cluster_->return_lowest_poses_in_clusters();