18 #include <core/pose/Pose.hh>
19 #include <core/pose/util.hh>
20 #include <core/pose/ncbb/util.hh>
21 #include <core/import_pose/import_pose.hh>
22 #include <core/conformation/Conformation.hh>
24 #include <core/pack/task/TaskFactory.hh>
25 #include <core/pack/task/PackerTask.hh>
26 #include <core/pack/task/operation/TaskOperation.hh>
27 #include <core/pack/task/operation/TaskOperations.hh>
29 #include <core/scoring/ScoreFunction.hh>
30 #include <core/scoring/ScoreFunctionFactory.hh>
31 #include <core/scoring/Energies.hh>
32 #include <core/scoring/constraints/util.hh>
33 #include <core/scoring/ScoringManager.hh>
35 #include <core/chemical/VariantType.hh>
37 #include <core/kinematics/FoldTree.hh>
38 #include <core/kinematics/MoveMap.hh>
41 #include <protocols/jd2/JobDistributor.hh>
42 #include <protocols/jd2/Job.hh>
45 #include <protocols/moves/MoverContainer.hh>
46 #include <protocols/moves/TrialMover.hh>
47 #include <protocols/moves/MonteCarlo.hh>
48 #include <protocols/moves/PyMolMover.hh>
49 #include <protocols/moves/RepeatMover.hh>
50 #include <protocols/simple_moves/MinMover.hh>
51 #include <protocols/simple_moves/PackRotamersMover.hh>
52 #include <protocols/simple_moves/RotamerTrialsMover.hh>
53 #include <protocols/simple_moves/TaskAwareMinMover.hh>
54 #include <protocols/simple_moves/BackboneMover.fwd.hh>
55 #include <protocols/simple_moves/BackboneMover.hh>
56 #include <protocols/simple_moves/oop/OopRandomPuckMover.hh>
57 #include <protocols/simple_moves/oop/OopRandomSmallMover.hh>
58 #include <protocols/simple_moves/oop/OopPatcher.hh>
59 #include <protocols/rigid/RigidBodyMover.hh>
60 #include <protocols/rigid/RB_geometry.hh>
62 #include <protocols/ncbb/util.hh>
66 #include <core/pose/metrics/CalculatorFactory.hh>
68 #include <core/pose/metrics/simple_calculators/SasaCalculatorLegacy.hh>
70 #include <protocols/toolbox/pose_metric_calculators/NumberHBondsCalculator.hh>
71 #include <protocols/toolbox/pose_metric_calculators/BuriedUnsatisfiedPolarsCalculator.hh>
72 #include <protocols/toolbox/pose_metric_calculators/PackstatCalculator.hh>
78 #include <basic/options/keys/out.OptionKeys.gen.hh>
79 #include <basic/options/keys/run.OptionKeys.gen.hh>
80 #include <basic/options/keys/in.OptionKeys.gen.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::simple_moves::oop;
101 using namespace protocols::rigid;
102 using namespace protocols::toolbox;
103 using namespace protocols::toolbox::pose_metric_calculators;
106 using namespace basic::options::OptionKeys;
107 using namespace core::id;
118 namespace oop_design {
140 virtual std::string
get_name()
const {
return "OopDesignMover"; }
174 setup_filter_stats();
177 protocols::jd2::JobDistributor::get_instance()->go( OD_mover );
180 std::cout <<
"caught exception " << e.
msg() << std::endl;
192 scoring::ScoreFunctionOP score_fxn( get_score_function() );
193 scoring::constraints::add_fa_constraints_from_cmdline_to_scorefxn(*score_fxn);
195 scoring::constraints::add_fa_constraints_from_cmdline_to_pose(pose);
198 setup_pert_foldtree( pose );
201 moves::MonteCarloOP
mc(
new moves::MonteCarlo( pose, *score_fxn, 1.0 ) );
204 rigid::RigidBodyPerturbMoverOP pert_dock_rbpm(
new rigid::RigidBodyPerturbMover(1, 1.0, 0.5 ) );
211 Size pep_start( pose.conformation().chain_begin( 2 ) );
Size pep_end( pose.total_residue() );
212 TR <<
"oop_start: " << pep_start <<
" oop_end: " <<
pep_end << std::endl;
215 kinematics::MoveMapOP pert_pep_mm(
new kinematics::MoveMap() );
216 pert_pep_mm->set_bb_true_range(pep_start,
pep_end);
221 for (
Size i = 1; i <= oop_seq_positions.size(); i++ ) {
222 pert_pep_mm->set_bb( oop_seq_positions[i],
false );
224 if ( score_fxn->has_zero_weight( core::scoring::atom_pair_constraint ) ) {
225 score_fxn->set_weight( core::scoring::atom_pair_constraint, 1.0 );
231 simple_moves::SmallMoverOP pert_pep_small(
new simple_moves::SmallMover( pert_pep_mm, 0.8, 1 ) );
234 moves::RandomMoverOP pert_pep_random(
new moves::RandomMover() );
235 pert_pep_random->add_mover( pert_pep_small, 1 );
238 moves::RepeatMoverOP pert_pep_repeat(
new moves::RepeatMover( pert_pep_random, 20 ) );
244 oop::OopRandomSmallMoverOP opm_small(
new oop::OopRandomSmallMover( oop_seq_positions, 2.0 ) );
245 oop::OopRandomPuckMoverOP opm_puck(
new oop::OopRandomPuckMover( oop_seq_positions ) );
252 moves::RandomMoverOP pert_random(
new moves::RandomMover() );
253 pert_random->add_mover( pert_dock_rbpm, 1 );
254 pert_random->add_mover( pert_pep_repeat, 0.5 );
255 pert_random->add_mover( opm_small, 0.5 );
256 pert_random->add_mover( opm_puck, 0.1 );
259 moves::SequenceMoverOP pert_sequence(
new moves::SequenceMover() );
260 pert_sequence->add_mover( pert_random );
263 moves::TrialMoverOP pert_trial(
new moves::TrialMover( pert_sequence, mc ) );
269 using core::pack::task::operation::TaskOperationCOP;
270 TaskFactoryOP desn_tf(
new TaskFactory() );
271 desn_tf->push_back( TaskOperationCOP(
new core::pack::task::operation::InitializeFromCommandline ) );
278 kinematics::MoveMapOP desn_mm(
new kinematics::MoveMap() );
280 desn_mm->set_bb(
false );
281 desn_mm->set_bb_true_range( pep_start,
pep_end );
282 desn_mm->set_chi(
true );
283 desn_mm->set_jump( 1,
true );
289 using protocols::simple_moves::TaskAwareMinMoverOP;
290 using protocols::simple_moves::TaskAwareMinMover;
291 TaskAwareMinMoverOP desn_ta_min(
new TaskAwareMinMover( desn_min, desn_tf ) );
297 TR <<
"Main loop..." << std::endl;
311 protocols::jd2::JobOP curr_job( protocols::jd2::JobDistributor::get_instance()->current_job() );
313 curr_job->add_string_real_pair(
"ENERGY_FINAL ", (*score_fxn)(pose) );
315 TR <<
"Ending main loop..." << std::endl;
316 TR <<
"Checking pose energy..." << std::endl;
317 calculate_statistics( curr_job, pose, score_fxn );
virtual std::string const msg() const
Automatic hidden index key for integer options.
Non-owning access smart pointer – dispatch class.
void init(int argc, char *argv[])
Command line init() version.
virtual void apply(core::pose::Pose &pose)
static THREAD_LOCAL basic::Tracer TR("OopDesign")
IntegerVectorOptionKey const oop_design_positions("oop_design::oop_design_positions")
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.
int main(int argc, char *argv[])
common derived classes for thrown exceptions
utility::pointer::shared_ptr< OopDesignMover > OopDesignMoverOP
virtual std::string get_name() const
Program exit functions and macros.
Tracer & Error(TracerPriority priority=t_error)
Predefined Error tracer.
IntegerOptionKey const pert_num("oop_design::pert_num")
rule< Scanner, options_closure::context_t > options
virtual ~OopDesignMover()
Tracer & Warning(TracerPriority priority=t_warning)
Predefined Warning tracer.
IntegerOptionKey const design_loop_num("oop_design::design_loop_num")
ocstream cout(std::cout)
Wrapper around std::cout.
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
Automatic hidden index key for integer options.
Program options global and initialization function.
utility::pointer::shared_ptr< OopDesignMover const > OopDesignMoverCOP
rule< Scanner, option_closure::context_t > option