20 #include <basic/options/keys/relax.OptionKeys.gen.hh>
21 #include <basic/options/keys/in.OptionKeys.gen.hh>
22 #include <basic/options/keys/edensity.OptionKeys.gen.hh>
23 #include <basic/options/keys/constraints.OptionKeys.gen.hh>
24 #include <basic/options/keys/symmetry.OptionKeys.gen.hh>
25 #include <basic/options/keys/run.OptionKeys.gen.hh>
26 #include <basic/options/keys/pocket_grid.OptionKeys.gen.hh>
32 #include <core/conformation/Residue.hh>
34 #include <core/kinematics/Jump.hh>
35 #include <core/kinematics/MoveMap.hh>
37 #include <core/import_pose/import_pose.hh>
39 #include <core/optimization/AtomTreeMinimizer.hh>
40 #include <core/optimization/MinimizerOptions.hh>
42 #include <core/pose/Pose.hh>
44 #include <core/scoring/ScoreFunctionFactory.hh>
45 #include <core/scoring/ScoreFunction.hh>
46 #include <core/scoring/ScoreFunction.fwd.hh>
47 #include <core/scoring/ScoreType.hh>
48 #include <core/scoring/constraints/util.hh>
50 #include <core/types.hh>
58 #include <protocols/electron_density/SetupForDensityScoringMover.hh>
60 #include <protocols/jd2/JobDistributor.hh>
61 #include <protocols/jd2/util.hh>
63 #include <protocols/moves/Mover.hh>
64 #include <protocols/moves/Mover.fwd.hh>
65 #include <protocols/moves/MoverContainer.hh>
67 #include <protocols/pockets/PocketGrid.hh>
69 #include <protocols/relax/ClassicRelax.hh>
70 #include <protocols/relax/RelaxProtocolBase.hh>
71 #include <protocols/relax/util.hh>
73 #include <protocols/simple_moves/symmetry/SetupForSymmetryMover.hh>
74 #include <protocols/simple_moves/SuperimposeMover.hh>
75 #include <protocols/simple_moves/ConstraintSetMover.hh>
88 using namespace protocols;
89 using namespace protocols::moves;
90 using namespace core::scoring;
105 virtual MoverOP
clone()
const;
106 virtual MoverOP fresh_instance()
const;
109 virtual std::string get_name()
const;
120 Mover(
"benchmark" ),
121 score_function_( get_score_function() )
125 using namespace basic::options::OptionKeys;
140 using namespace pose;
142 using namespace basic::options::OptionKeys;
147 core::optimization::MinimizerOptions
options(
min_type, min_tol,
true,
false );
148 core::kinematics::MoveMap final_mm;
149 final_mm.set_chi(
true );
150 final_mm.set_bb(
true );
152 (*score_function_)(
pose);
155 core::optimization::AtomTreeMinimizer().run( pose, final_mm, *
score_function_, options );
156 TR <<
"Score: " << i <<
" " << (*score_function_)(
pose) << std::endl;
160 TR <<
"FinalScore: " << final_score << std::endl;
172 main(
int argc,
char * argv [] )
175 using namespace core;
176 using namespace protocols::moves;
177 using namespace scoring;
179 using namespace protocols::jobdist;
181 using namespace basic::options::OptionKeys;
182 using protocols::moves::MoverOP;
184 NEW_OPT( exemplar_target_pdb_num,
"Target residue(s) for exemplar generation",
"");
193 option.add_relevant( OptionKeys::in::file::fullatom );
195 option.add_relevant( OptionKeys::relax::fast );
198 std::string
const resid_c =
option[exemplar_target_pdb_num];
201 if ( resid_c.length() ) {
202 const std::string & delimiters =
";";
203 std::string::size_type lastPos = resid_c.find_first_not_of(delimiters, 0);
206 std::string::size_type
pos = resid_c.find_first_of(delimiters, lastPos);
207 while ( std::string::npos != pos || std::string::npos != lastPos ) {
208 std::string
const & resid_list = resid_c.substr( lastPos, pos - lastPos );
209 lastPos = resid_c.find_first_not_of(delimiters, pos);
210 pos = resid_c.find_first_of(delimiters, lastPos);
212 const std::string & subdelimiters =
",";
213 std::string::size_type lastSubPos = resid_list.find_first_not_of(subdelimiters, 0);
215 std::string::size_type subpos = resid_list.find_first_of(subdelimiters, lastSubPos);
216 while ( std::string::npos != subpos || std::string::npos != lastSubPos ) {
217 std::string
const & resid = resid_list.substr( lastSubPos, subpos - lastSubPos );
218 lastSubPos = resid_list.find_first_not_of(subdelimiters, subpos);
219 subpos = resid_list.find_first_of(subdelimiters, lastSubPos);
220 std::size_t fpos( resid.find(
':') );
221 if ( fpos != std::string::npos ) {
222 if ( fpos != resid.length() -2 || fpos == 0 ) {
225 char chain = resid[resid.length() -1];
226 if ( !( (chain >=
'A' && chain <=
'Z') || (chain >=
'a' && chain <=
'z') ) ) {
229 for (
int i = 0; i< (
int) fpos; ++i ) {
230 if ( !(resid[i] >=
'0' && resid[i] <=
'9') ) {
235 for (
int i = 0; i< (
int) resid.length(); ++i ) {
236 if ( !(resid[i] >=
'0' && resid[i] <=
'9') ) {
248 protocols::moves::MoverOP protocol = generate_relax_from_cmd();
249 protocols::jd2::set_native_in_mover( *protocol );
253 protocols::moves::SequenceMoverOP seqmov(
new protocols::moves::SequenceMover );
254 protocols::simple_moves::ConstraintSetMoverOP loadCsts(
new protocols::simple_moves::ConstraintSetMover );
255 if (
option[ OptionKeys::constraints::cst_fa_file ].
user() ) {
256 loadCsts->constraint_file( core::scoring::constraints::get_cst_fa_file_option() );
258 loadCsts->constraint_file( core::scoring::constraints::get_cst_file_option() );
260 seqmov->add_mover( loadCsts );
261 seqmov->add_mover( protocol );
267 if (
option[ OptionKeys::edensity::mapfile ].
user() ) {
268 protocols::moves::SequenceMoverOP seqmov(
new protocols::moves::SequenceMover );
269 seqmov->add_mover( MoverOP(
new protocols::electron_density::SetupForDensityScoringMover ) );
270 seqmov->add_mover( protocol );
276 if (
option[ OptionKeys::symmetry::symmetry_definition ].
user() ) {
277 protocols::moves::SequenceMoverOP seqmov(
new protocols::moves::SequenceMover );
278 seqmov->add_mover( MoverOP(
new protocols::simple_moves::symmetry::SetupForSymmetryMover ) );
279 seqmov->add_mover( protocol );
284 if (
option[ OptionKeys::relax::superimpose_to_file ].
user() ||
288 std::string ref_filename;
289 if (
option[ OptionKeys::relax::superimpose_to_file ].
user() ) ref_filename =
option[ basic::options::OptionKeys::relax::superimpose_to_file ]();
291 core::import_pose::pose_from_pdb( ref_pose, ref_filename );
292 protocols::moves::SequenceMoverOP seqmov(
new protocols::moves::SequenceMover );
293 protocols::simple_moves::SuperimposeMoverOP sm(
new protocols::simple_moves::SuperimposeMover );
294 sm->set_reference_pose( ref_pose );
295 seqmov->add_mover( sm );
296 seqmov->add_mover( protocol );
300 protocols::moves::SequenceMoverOP seqmov(
new protocols::moves::SequenceMover );
301 seqmov->add_mover( protocol );
305 seqmov->add_mover( minprotocol );
309 protocols::jd2::JobDistributor::get_instance()->go( protocol );
313 std::cout <<
"caught exception " << e.
msg() << std::endl;
virtual MoverOP fresh_instance() const
virtual std::string const msg() const
vector0: std::vector with assert-checked bounds
virtual void test_move(Pose &pose)
virtual MoverOP clone() const
void init(int argc, char *argv[])
Command line init() version.
BooleanOptionKey const user("options:user")
Random number generator system.
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
virtual void apply(Pose &pose)
Tracer & Error(TracerPriority priority=t_error)
Predefined Error tracer.
std::vector with 1-based indexing
static THREAD_LOCAL basic::Tracer TR("pocket_relax")
rule< Scanner, options_closure::context_t > options
#define OPT_KEY(type, key)
Tracer & Warning(TracerPriority priority=t_warning)
Predefined Warning tracer.
virtual std::string get_name() const
#define NEW_OPT(akey, help, adef)
ocstream cout(std::cout)
Wrapper around std::cout.
vector1: std::vector with 1-based indexing
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
int main(int argc, char *argv[])
Program options global and initialization function.
static void clone(T *&dst, S *src, int n)
BooleanOptionKey superimpose_to_native("score_app:superimpose_to_native")
ScoreFunctionOP score_function_
rule< Scanner, option_closure::context_t > option