15 #include <core/pose/Pose.hh>
16 #include <core/pose/util.hh>
17 #include <core/import_pose/import_pose.hh>
18 #include <core/conformation/Conformation.hh>
20 #include <core/pack/task/TaskFactory.hh>
21 #include <core/pack/task/PackerTask.hh>
22 #include <core/pack/task/operation/TaskOperation.hh>
23 #include <core/pack/task/operation/TaskOperations.hh>
25 #include <core/scoring/ScoreFunction.hh>
26 #include <core/scoring/ScoreFunctionFactory.hh>
27 #include <core/scoring/Energies.hh>
28 #include <core/scoring/constraints/util.hh>
29 #include <core/scoring/ScoringManager.hh>
31 #include <core/chemical/VariantType.hh>
32 #include <core/chemical/ResidueTypeSet.hh>
33 #include <core/chemical/ResidueTypeFinder.hh>
34 #include <core/chemical/ChemicalManager.hh>
36 #include <core/kinematics/FoldTree.hh>
37 #include <core/kinematics/MoveMap.hh>
40 #include <protocols/jd2/JobDistributor.hh>
41 #include <protocols/jd2/Job.hh>
44 #include <protocols/moves/MoverContainer.hh>
45 #include <protocols/moves/TrialMover.hh>
46 #include <protocols/moves/MonteCarlo.hh>
47 #include <protocols/moves/PyMolMover.hh>
48 #include <protocols/moves/RepeatMover.hh>
49 #include <protocols/simple_moves/MinMover.hh>
50 #include <protocols/simple_moves/PackRotamersMover.hh>
51 #include <protocols/simple_moves/RotamerTrialsMover.hh>
52 #include <protocols/simple_moves/TaskAwareMinMover.hh>
53 #include <protocols/simple_moves/BackboneMover.fwd.hh>
54 #include <protocols/simple_moves/BackboneMover.hh>
55 #include <protocols/simple_moves/RandomTorsionMover.hh>
56 #include <protocols/simple_moves/RandomOmegaFlipMover.hh>
57 #include <protocols/simple_moves/CyclizationMover.hh>
58 #include <protocols/rigid/RigidBodyMover.hh>
59 #include <protocols/rigid/RB_geometry.hh>
61 #include <protocols/ncbb/util.hh>
65 #include <core/pose/metrics/CalculatorFactory.hh>
67 #include <core/pose/metrics/simple_calculators/SasaCalculatorLegacy.hh>
69 #include <protocols/toolbox/pose_metric_calculators/NumberHBondsCalculator.hh>
70 #include <protocols/toolbox/pose_metric_calculators/BuriedUnsatisfiedPolarsCalculator.hh>
71 #include <protocols/toolbox/pose_metric_calculators/PackstatCalculator.hh>
77 #include <basic/options/keys/out.OptionKeys.gen.hh>
78 #include <basic/options/keys/run.OptionKeys.gen.hh>
87 #include <protocols/moves/PyMolMover.hh>
92 using namespace conformation;
93 using namespace chemical;
94 using namespace scoring;
96 using namespace protocols;
97 using namespace protocols::moves;
98 using namespace protocols::ncbb;
99 using namespace protocols::simple_moves;
100 using namespace protocols::rigid;
101 using namespace protocols::toolbox;
102 using namespace protocols::toolbox::pose_metric_calculators;
105 using namespace basic::options::OptionKeys;
106 using namespace core::id;
117 namespace peptoid_design {
136 virtual std::string
get_name()
const {
return "PeptoidDesignMover"; }
166 setup_filter_stats();
169 protocols::jd2::JobDistributor::get_instance()->go( OD_mover );
172 std::cout <<
"caught exception " << e.
msg() << std::endl;
184 scoring::ScoreFunctionOP score_fxn( ScoreFunctionFactory::create_score_function( scoring::MM_STD_WTS ) );
185 score_fxn->set_weight( atom_pair_constraint, 10 );
186 score_fxn->set_weight( angle_constraint, 10 );
187 score_fxn->set_weight( dihedral_constraint, 10 );
190 setup_pert_foldtree( pose );
194 simple_moves::CyclizationMoverOP init_cyclization(
new CyclizationMover( 2,
true,
false, 0 ) );
195 init_cyclization->apply( pose );
199 moves::MonteCarloOP
mc(
new moves::MonteCarlo( pose, *score_fxn, 1.0 ) );
210 rigid::RigidBodyPerturbMoverOP pert_dock_rbpm(
new rigid::RigidBodyPerturbMover( 1, 0.1, 0.1 ) );
213 Size pep_start( pose.conformation().chain_begin( 2 ) );
Size pep_end( pose.total_residue() );
214 TR <<
"peptoid_start: " << pep_start <<
" peptoid_end: " <<
pep_end << std::endl;
217 kinematics::MoveMapOP pert_pep_mm(
new kinematics::MoveMap() );
218 pert_pep_mm->set_bb_true_range(pep_start,
pep_end);
219 pert_pep_mm->set_jump( 1,
true );
222 simple_moves::CyclizationMoverOP pert_cyclization(
new CyclizationMover( 2,
false,
true, 1, score_fxn, pert_pep_mm ) );
225 simple_moves::RandomTorsionMoverOP pert_pep_rand_tor(
new simple_moves::RandomTorsionMover( pert_pep_mm, 0.5, 10 ) );
228 simple_moves::RandomOmegaFlipMoverOP pert_pep_omg_flip(
new simple_moves::RandomOmegaFlipMover( pert_pep_mm ) );
231 moves::RandomMoverOP pert_random(
new moves::RandomMover() );
232 pert_random->add_mover( pert_dock_rbpm, 1 );
233 pert_random->add_mover( pert_pep_rand_tor, 1 );
237 moves::RepeatMoverOP pert_repeat(
new moves::RepeatMover( pert_random, 100 ) );
240 moves::SequenceMoverOP pert_sequence(
new moves::SequenceMover() );
241 pert_sequence->add_mover( pert_repeat );
244 pert_sequence->add_mover( pert_cyclization );
249 moves::TrialMoverOP pert_trial(
new moves::TrialMover( pert_sequence, mc ) );
255 using core::pack::task::operation::TaskOperationCOP;
256 TaskFactoryOP desn_tf(
new TaskFactory() );
257 desn_tf->push_back( TaskOperationCOP(
new core::pack::task::operation::InitializeFromCommandline ) );
266 kinematics::MoveMapOP desn_mm(
new kinematics::MoveMap() );
267 desn_mm->set_bb(
false );
268 desn_mm->set_bb_true_range( pep_start,
pep_end );
269 desn_mm->set_chi(
true );
270 desn_mm->set_jump( 1,
true );
276 using protocols::simple_moves::TaskAwareMinMoverOP;
277 using protocols::simple_moves::TaskAwareMinMover;
278 TaskAwareMinMoverOP desn_ta_min(
new TaskAwareMinMover( desn_min, desn_tf ) );
282 chemical::ResidueTypeCOPs rt_caps( chemical::ResidueTypeFinder( *ChemicalManager::get_instance()->residue_type_set( FA_STANDARD ) ).base_property( PEPTOID ).get_possible_base_residue_types() );
283 std::set< std::string > peptoid_name_set;
284 for (
Size i(1); i <= rt_caps.size(); ++i ) {
285 if ( rt_caps[i]->is_peptoid() ) {
286 peptoid_name_set.insert( rt_caps[i]->name3() );
290 peptoid_name_set.erase( peptoid_name_set.find(
"004" ) );
291 peptoid_name_set.erase( peptoid_name_set.find(
"006" ) );
292 peptoid_name_set.erase( peptoid_name_set.find(
"010" ) );
293 peptoid_name_set.erase( peptoid_name_set.find(
"013" ) );
294 peptoid_name_set.erase( peptoid_name_set.find(
"111" ) );
295 peptoid_name_set.erase( peptoid_name_set.find(
"206" ) );
296 peptoid_name_set.erase( peptoid_name_set.find(
"307" ) );
297 peptoid_name_set.erase( peptoid_name_set.find(
"313" ) );
298 peptoid_name_set.erase( peptoid_name_set.find(
"402" ) );
299 peptoid_name_set.erase( peptoid_name_set.find(
"405" ) );
301 peptoid_name_set.erase( peptoid_name_set.find(
"623" ) );
302 peptoid_name_set.erase( peptoid_name_set.find(
"624" ) );
304 peptoid_name_set.erase( peptoid_name_set.find(
"701" ) );
305 peptoid_name_set.erase( peptoid_name_set.find(
"702" ) );
306 peptoid_name_set.erase( peptoid_name_set.find(
"703" ) );
307 peptoid_name_set.erase( peptoid_name_set.find(
"704" ) );
309 TR <<
"Allowed sidechains: ";
320 TR <<
"Main loop..." << std::endl;
334 mc->recover_low( pose );
336 protocols::jd2::JobOP curr_job( protocols::jd2::JobDistributor::get_instance()->current_job() );
338 curr_job->add_string_real_pair(
"ENERGY_FINAL ", (*score_fxn)(pose) );
340 TR <<
"Ending main loop..." << std::endl;
341 TR <<
"Checking pose energy..." << std::endl;
342 calculate_statistics( curr_job, pose, score_fxn );
virtual ~PeptoidDesignMover()
virtual std::string const msg() const
Automatic hidden index key for integer options.
int main(int argc, char *argv[])
utility::keys::KeyLookup< KeyType >::const_iterator const_iterator
Key collection iterators.
Non-owning access smart pointer – dispatch class.
void init(int argc, char *argv[])
Command line init() version.
IntegerOptionKey const design_loop_num("peptoid_design::design_loop_num")
File name class supporting Windows and UN*X/Linux format names.
Tracer & T(std::string const &channel, TracerPriority priority)
T is special function for assign tracer property on the static object.
static THREAD_LOCAL basic::Tracer TR("PeptoidDesign")
Program exit functions and macros.
Tracer & Error(TracerPriority priority=t_error)
Predefined Error tracer.
Automatic hidden index key for boolean options.
utility::pointer::shared_ptr< PeptoidDesignMover > PeptoidDesignMoverOP
rule< Scanner, options_closure::context_t > options
Tracer & Warning(TracerPriority priority=t_warning)
Predefined Warning tracer.
IntegerOptionKey const pert_num("peptoid_design::pert_num")
BooleanOptionKey const cyclic("peptoid_design::cyclic")
ocstream cout(std::cout)
Wrapper around std::cout.
utility::pointer::shared_ptr< PeptoidDesignMover const > PeptoidDesignMoverCOP
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
Automatic hidden index key for integer options.
virtual std::string get_name() const
virtual void apply(core::pose::Pose &pose)
Program options global and initialization function.
IntegerVectorOptionKey const peptoid_design_positions("peptoid_design::peptoid_design_positions")
rule< Scanner, option_closure::context_t > option