52 #include <basic/datacache/BasicDataCache.hh>
58 #include <basic/Tracer.hh>
72 #include <basic/options/keys/in.OptionKeys.gen.hh>
73 #include <basic/options/keys/run.OptionKeys.gen.hh>
74 #include <basic/options/keys/out.OptionKeys.gen.hh>
75 #include <basic/options/option.hh>
79 #include <utility/exit.hh>
80 #include <basic/prof.hh>
81 #include <basic/Tracer.hh>
90 using namespace protocols::surface_docking;
91 using namespace protocols;
92 using namespace protocols::moves;
96 static basic::Tracer
TR(
"protocols.SurfaceDocking.SurfaceDockingProtocol");
99 namespace surface_docking {
101 using namespace core;
108 (
"standard",
"score12" );
110 TR <<
"Setting Weights for score12" << std::endl;
125 TR<<
"FoldTree"<<ft<<std::endl;
126 TR<<
"Number of Jumps:"<<pose.
num_jump()<<std::endl;
133 Size const first_protein_residue( pose.
num_jump() + 1 );
139 surfEs->set_residue_range_not_surface( first_protein_residue, pose.
total_residue() );
144 TR<<
"Remark Info attached to pose SurfaceDockingProtocol:"<<std::endl;
145 TR<<
"Size of Remarks:"<<pose.
pdb_info()->remarks().size()<<std::endl;
146 for(
Size i=0; i<pose.
pdb_info()->remarks().size(); i++) {
147 TR << pose.
pdb_info()->remarks().at(i).num <<
" " << pose.
pdb_info()->remarks().at(i).value << std::endl;
148 if ( i > 2 ) {
TR <<
"TOO MANY REMARKS!" << std::endl;
continue; }
149 SurfVectors[i]=pose.
pdb_info()->remarks().at(i).value;
165 job_outputter()->output_name( job ) );
179 TR<<
"Applying surfaceOrient Mover"<<std::endl;
187 assert( singlechain_poses.size() == 2);
192 TR<<
"CentroidRelaxed Started................"<<std::endl;
193 to_centroid.
apply( *singlechain_poses[2] );
200 centroidrelax->set_nmoves(10);
201 centroidrelax->apply(*singlechain_poses[2]);
204 TR<<
"CentroidRelaxed Done................"<<std::endl;
205 to_all_atom.
apply(*singlechain_poses[2]);
208 pose.
copy_segment((*singlechain_poses[2]).total_residue(),
209 (*singlechain_poses[2]),
210 (*singlechain_poses[1]).total_residue()+1,1);
218 TR<<
"Secondary Structure:"<<pose.
secstruct()<<std::endl;
221 ( pack::task::TaskFactory::create_packer_task( pose ));
225 if (ii < first_protein_residue) {
226 my_task_fullatom->nonconst_residue_task( ii ).prevent_repacking();
228 my_task_fullatom->nonconst_residue_task( ii ).restrict_to_repacking();
233 (*score_sidechain_pack_)(pose);
234 TR <<
" Score Before Sidechain Packing:" << (*score_sidechain_pack_)(pose) << std::endl;
235 side_chain_pack_fullatom->apply(pose);
236 (*score_sidechain_pack_)(pose);
237 TR <<
" Score After Sidechain Packing:" << (*score_sidechain_pack_)(pose) << std::endl;
238 TR<<
"Packing Sidechain Done................"<<std::endl;
240 TR<<
"FullatomeRelaxed Started................"<<std::endl;
244 MoveProteinAway.
apply(pose);
247 if ( basic::options::option[ basic::options::OptionKeys::run::benchmark ] ) {
248 allatomrelax->set_nmoves(3);
250 allatomrelax->set_nmoves(6);
255 core::Real lj_increment = ( 1.0 - 0.02 )/ lj_ramp_cycle;
256 for (
Size i=1;i<=lj_ramp_cycle;++i) {
257 TR<<
"FullatomRelax Execution Number:"<<i<<std::endl;
258 if ( basic::options::option[ basic::options::OptionKeys::run::benchmark ] ) {
259 allatomrelax->set_smallmovesize(3);
261 allatomrelax->set_smallmovesize(30/i);
264 allatomrelax->set_ljrepulsion_weight((0.02+i*lj_increment));
265 allatomrelax->set_ecounter(i);
267 allatomrelax->apply(pose);
270 TR<<
"FullatomeRelaxed Done................"<<std::endl;
272 TR<<
"Packing Sidechains Started................"<<std::endl;
277 if (ii < first_protein_residue ){
278 my_task->nonconst_residue_task( ii ).prevent_repacking();
280 my_task->nonconst_residue_task( ii ).restrict_to_repacking();
286 (*score_sidechain_pack_)(pose);
287 TR <<
" Score Before Sidechain Packing:" << (*score_sidechain_pack_)(pose) << std::endl;
288 side_chain_pack->apply(pose);
289 (*score_sidechain_pack_)(pose);
290 TR <<
" Score After Sidechain Packing:" << (*score_sidechain_pack_)(pose) << std::endl;
291 TR<<
"Packing Sidechain Done................"<<std::endl;
295 TR<<
"Secondary Structure in Solution:"<<allatomrelax->getSecondayStruct()<<std::endl;
296 TR<<
"Secondary Structure on Surface:"<<
SecStruct_<<std::endl;
297 job->add_string_string_pair(
"SolState_SecondaryStructure:",allatomrelax->getSecondayStruct());
298 job->add_string_string_pair(
"Adsorbed_SecondaryStructure:",
SecStruct_);
318 singlechain_poses = pose_tmp->split_by_chain();
321 for (
Size ii = 1; ii <= singlechain_poses[2]->total_residue(); ++ii ) {
322 SecStruct_+=singlechain_poses[2]->secstruct(ii);
335 using namespace core;
336 using namespace basic::options;
338 TR <<
"starting ClassicAbinitio...." << std::endl;
340 std::string frag_large_file = option[ OptionKeys::in::file::frag9 ]();
341 std::string frag_small_file = option[ OptionKeys::in::file::frag3 ]();
342 TR<<
"Loading Fragment 9:"<<std::endl;
345 TR<<
"Loading Fragment 3:"<<std::endl;
353 abinitio.
apply(pose);
358 return "SurfaceDockingProtocol";