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>
33 #include <core/kinematics/FoldTree.hh>
34 #include <core/kinematics/MoveMap.hh>
37 #include <protocols/jd2/JobDistributor.hh>
38 #include <protocols/jd2/Job.hh>
41 #include <protocols/moves/MoverContainer.hh>
42 #include <protocols/moves/TrialMover.hh>
43 #include <protocols/moves/MonteCarlo.hh>
44 #include <protocols/moves/PyMolMover.hh>
45 #include <protocols/moves/RepeatMover.hh>
46 #include <protocols/simple_moves/MinMover.hh>
47 #include <protocols/simple_moves/PackRotamersMover.hh>
48 #include <protocols/simple_moves/RotamerTrialsMover.hh>
49 #include <protocols/simple_moves/TaskAwareMinMover.hh>
50 #include <protocols/simple_moves/BackboneMover.fwd.hh>
51 #include <protocols/simple_moves/BackboneMover.hh>
52 #include <protocols/simple_moves/hbs/HbsPatcher.hh>
53 #include <protocols/rigid/RigidBodyMover.hh>
54 #include <protocols/rigid/RB_geometry.hh>
56 #include <protocols/ncbb/util.hh>
60 #include <core/pose/metrics/CalculatorFactory.hh>
62 #include <core/pose/metrics/simple_calculators/SasaCalculatorLegacy.hh>
64 #include <protocols/toolbox/pose_metric_calculators/NumberHBondsCalculator.hh>
65 #include <protocols/toolbox/pose_metric_calculators/BuriedUnsatisfiedPolarsCalculator.hh>
66 #include <protocols/toolbox/pose_metric_calculators/PackstatCalculator.hh>
72 #include <basic/options/keys/out.OptionKeys.gen.hh>
73 #include <basic/options/keys/run.OptionKeys.gen.hh>
84 using namespace conformation;
85 using namespace chemical;
86 using namespace scoring;
88 using namespace protocols;
89 using namespace protocols::ncbb;
90 using namespace protocols::moves;
91 using namespace protocols::simple_moves;
92 using namespace protocols::simple_moves::hbs;
93 using namespace protocols::rigid;
94 using namespace protocols::toolbox;
95 using namespace protocols::toolbox::pose_metric_calculators;
98 using namespace basic::options::OptionKeys;
99 using namespace core::id;
110 namespace hbs_design {
132 virtual std::string
get_name()
const {
return "HbsDesignMover"; }
163 setup_filter_stats();
166 protocols::jd2::JobDistributor::get_instance()->go( OD_mover );
168 std::cout <<
"caught exception " << e.
msg() << std::endl;
179 scoring::ScoreFunctionOP score_fxn( get_score_function() );
181 scoring::constraints::add_fa_constraints_from_cmdline_to_scorefxn(*score_fxn);
183 scoring::constraints::add_fa_constraints_from_cmdline_to_pose(pose);
186 setup_pert_foldtree( pose );
190 moves::MonteCarloOP
mc(
new moves::MonteCarlo( pose, *score_fxn, 1.0 ) );
193 rigid::RigidBodyPerturbMoverOP pert_dock_rbpm(
new rigid::RigidBodyPerturbMover(1, 1.0, 0.5 ) );
200 Size pep_start( pose.conformation().chain_begin( 2 ) );
Size pep_end( pose.total_residue() );
201 TR <<
"hbs_start: " << pep_start <<
" hbs_end: " <<
pep_end << std::endl;
204 kinematics::MoveMapOP pert_pep_mm(
new kinematics::MoveMap() );
205 pert_pep_mm->set_bb_true_range(pep_start,
pep_end);
209 for (
Size i = 1; i <= pose.total_residue(); ++i ) {
210 if ( pose.residue(i).has_variant_type(chemical::HBS_PRE) == 1 ) {
211 hbs_seq_positions.push_back( i );
213 add_hbs_constraint( pose, i );
215 pert_pep_mm->set_bb( i,
false );
217 if ( score_fxn->has_zero_weight( core::scoring::atom_pair_constraint ) ) {
218 score_fxn->set_weight( core::scoring::atom_pair_constraint, 1.0 );
230 moves::RandomMoverOP pert_random(
new moves::RandomMover() );
231 pert_random->add_mover( pert_dock_rbpm, 1 );
234 moves::SequenceMoverOP pert_sequence(
new moves::SequenceMover() );
235 pert_sequence->add_mover( pert_random );
239 moves::TrialMoverOP pert_trial(
new moves::TrialMover( pert_sequence, mc ) );
245 using core::pack::task::operation::TaskOperationCOP;
246 TaskFactoryOP desn_tf(
new TaskFactory() );
247 desn_tf->push_back( TaskOperationCOP(
new core::pack::task::operation::InitializeFromCommandline ) );
254 kinematics::MoveMapOP desn_mm(
new kinematics::MoveMap() );
256 desn_mm->set_bb(
false );
257 desn_mm->set_bb_true_range( pep_start,
pep_end );
259 desn_mm->set_chi(
true );
260 desn_mm->set_jump( 1,
true );
266 using protocols::simple_moves::TaskAwareMinMoverOP;
267 using protocols::simple_moves::TaskAwareMinMover;
268 TaskAwareMinMoverOP desn_ta_min(
new TaskAwareMinMover( desn_min, desn_tf ) );
274 TR <<
"Main loop..." << std::endl;
290 TR <<
"Ending main loop..." << std::endl;
292 TR <<
"Checking pose energy..." << std::endl;
293 protocols::jd2::JobOP curr_job( protocols::jd2::JobDistributor::get_instance()->current_job() );
295 curr_job->add_string_real_pair(
"ENERGY_FINAL ", (*score_fxn)(pose) );
297 calculate_statistics( curr_job, pose, score_fxn );
virtual std::string const msg() const
Automatic hidden index key for integer options.
static THREAD_LOCAL basic::Tracer TR("HbsDesign")
Non-owning access smart pointer – dispatch class.
void init(int argc, char *argv[])
Command line init() version.
utility::pointer::shared_ptr< HbsDesignMover const > HbsDesignMoverCOP
virtual std::string get_name() const
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.
common derived classes for thrown exceptions
IntegerOptionKey const pert_num("hbs_design::pert_num")
Program exit functions and macros.
Tracer & Error(TracerPriority priority=t_error)
Predefined Error tracer.
rule< Scanner, options_closure::context_t > options
IntegerVectorOptionKey const hbs_design_positions("hbs_design::hbs_design_positions")
Tracer & Warning(TracerPriority priority=t_warning)
Predefined Warning tracer.
virtual ~HbsDesignMover()
int main(int argc, char *argv[])
ocstream cout(std::cout)
Wrapper around std::cout.
virtual void apply(core::pose::Pose &pose)
IntegerOptionKey const design_loop_num("hbs_design::design_loop_num")
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< HbsDesignMover > HbsDesignMoverOP
rule< Scanner, option_closure::context_t > option