Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
make_exemplar.cc
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @brief
11 /// @author jk
12 #include <iostream>
13 #include <iomanip>
14 #include <fstream>
15 #include <ostream>
16 #include <string>
17 #include <sstream>
18 #include <cmath>
19 #include <map>
20 
21 #include <devel/init.hh>
22 #include <core/io/pdb/pose_io.hh>
23 #include <core/pack/task/TaskFactory.hh>
24 #include <core/pack/task/PackerTask.hh>
25 #include <core/pack/pack_rotamers.hh>
26 #include <core/pose/Pose.hh>
27 #include <core/pose/util.hh>
28 #include <core/pose/PDBInfo.hh>
29 #include <core/scoring/ScoreFunction.hh>
30 #include <core/scoring/ScoreFunctionFactory.hh>
31 #include <core/scoring/TenANeighborGraph.hh>
32 #include <core/kinematics/MoveMap.hh>
33 #include <core/optimization/MinimizerOptions.hh>
34 #include <core/optimization/AtomTreeMinimizer.hh>
35 #include <basic/options/util.hh>
36 #include <basic/options/option.hh>
37 #include <basic/options/keys/out.OptionKeys.gen.hh>
38 #include <basic/options/keys/relax.OptionKeys.gen.hh>
39 #include <basic/options/keys/in.OptionKeys.gen.hh>
40 #include <basic/options/keys/docking.OptionKeys.gen.hh>
41 #include <basic/options/keys/pocket_grid.OptionKeys.gen.hh>
42 #include <basic/Tracer.hh>
43 #include <core/scoring/Energies.hh>
46 #include <protocols/rigid/RigidBodyMover.hh>
47 #include <protocols/rigid/RB_geometry.hh>
48 #include <core/chemical/ResidueTypeSet.hh>
49 #include <core/conformation/ResidueFactory.hh>
50 #include <core/kinematics/FoldTree.hh>
51 #include <core/conformation/Residue.hh>
52 #include <core/conformation/Conformation.hh>
53 #include <protocols/simple_moves/SuperimposeMover.hh>
54 
55 #include <protocols/jd2/JobDistributor.hh>
56 #include <protocols/jd2/JobOutputter.hh>
57 #include <protocols/jd2/NoOutputJobOutputter.hh>
58 
59 #include <protocols/jd2/util.hh>
60 
61 #include <protocols/moves/Mover.hh>
62 #include <protocols/moves/Mover.fwd.hh>
63 
64 
65 
66 // Utility Headers
67 #include <utility/vector1.hh>
68 #include <utility/io/ozstream.hh>
69 #include <core/id/AtomID.hh>
70 #include <core/id/AtomID_Map.hh>
71 #include <core/scoring/rms_util.hh>
72 #include <core/scoring/rms_util.tmpl.hh>
73 
74 //Auto Headers
75 #include <core/import_pose/import_pose.hh>
76 #include <core/conformation/Residue.hh>
77 #include <utility/io/mpistream.hh>
78 #include <core/kinematics/MoveMap.hh>
79 
80 //Protocol Headers
81 #include <protocols/pockets/PocketGrid.hh>
82 //#include <basic/options/keys/pocket_grid.OptionKeys.gen.hh>
83 
84 using namespace core;
85 using namespace basic::options;
86 using namespace std;
87 using namespace core::scoring;
88 using namespace core::optimization;
89 using namespace basic::options::OptionKeys;
90 using namespace conformation;
91 using namespace core::pose::datacache;
92 using namespace core::id;
93 using namespace protocols::rigid;
94 using namespace protocols::simple_moves;
95 using namespace protocols;
96 using namespace protocols::moves;
97 
98 
99 OPT_KEY( String, central_relax_pdb_num )
100 
101 static THREAD_LOCAL basic::Tracer TR( "apps.public.make_exemplar.main", basic::t_debug );
102 
103 //This Mover creates an exemplar
104 class ExemplarMover : public moves::Mover {
105 
106 public:
107  ExemplarMover();
108 
109  ~ExemplarMover();
110 
111  virtual MoverOP clone() const;
112  virtual MoverOP fresh_instance() const;
113 
114  virtual void apply( Pose & pose );
115  virtual std::string get_name() const;
116  virtual void test_move( Pose & pose )
117  {
118  apply(pose);
119  }
120 };
121 
123  Mover( "benchmark" )
124 {
125 
126 }
127 
129 
130 MoverOP ExemplarMover::clone() const {
131  return MoverOP( new ExemplarMover( *this ) );
132 }
133 
135  return MoverOP( new ExemplarMover );
136 }
137 
139  using namespace pose;
140  using namespace basic::options;
141  using namespace basic::options::OptionKeys;
142  using namespace core;
143 
144  std::string const resid_c = option[central_relax_pdb_num];
145 
146  //validate that the exemplar_target_pdb_num is properly formatted
147  if ( resid_c.length() ) {
148  std::string resid_tag = resid_c;
149  while ( true ) {
150  std::size_t fpos( resid_tag.find(','));
151  if ( fpos == std::string::npos ) break;
152  resid_tag[fpos]='-';
153  }
154  std::string out_exfname = get_current_tag().substr(0,get_current_tag().find_last_of("_")) +".pdb."+ resid_tag + ".exemplar.pdb";
155 
156  std::vector< conformation::ResidueCOP > residues = protocols::pockets::PocketGrid::getRelaxResidues(pose, resid_c);
157 
158  protocols::pockets::PocketGrid comparison_pg( residues );
159  comparison_pg.zeroAngle();
160  comparison_pg.autoexpanding_pocket_eval( residues, pose ) ;
161  comparison_pg.dumpExemplarToFile( out_exfname.c_str() );
162  }
163 
164 }
165 
166 std::string ExemplarMover::get_name() const {
167  return "ExemplarMover";
168 }
169 
170 
171 /// General testing code
172 int main( int argc, char * argv [] ) {
173 
174  try{
175  using namespace core;
176  using namespace protocols::moves;
177  using namespace scoring;
178  using namespace basic::options;
179  using namespace protocols::jobdist;
180  using namespace basic::options::OptionKeys;
181  using protocols::moves::MoverOP;
182 
183  NEW_OPT( central_relax_pdb_num, "target residue(s)", "-1");
184 
185  // APL NOTE: Tracers cannot be written to before devel::init gets called. TR << "Calling init" << std::endl;
186  //initializes Rosetta functions
188  option.add_relevant( OptionKeys::in::file::fullatom );
189  option.add_relevant( OptionKeys::in::file::movemap );
190  devel::init(argc, argv);
191 
192  MoverOP protocol( new ExemplarMover() );
193  protocols::jd2::JobDistributor::get_instance()->go( protocol, jd2::JobOutputterOP( new jd2::NoOutputJobOutputter ) );
194 
195  }
196 catch ( utility::excn::EXCN_Base const & e ) {
197  std::cerr << "caught exception " << e.msg() << std::endl;
198  return -1;
199 }
200  return 0;
201 }
202 
static THREAD_LOCAL basic::Tracer TR("apps.public.make_exemplar.main", basic::t_debug)
int main(int argc, char *argv[])
General testing code.
ocstream cerr(std::cerr)
Wrapper around std::cerr.
Definition: ocstream.hh:290
#define THREAD_LOCAL
virtual std::string const msg() const
Definition: EXCN_Base.hh:70
void register_options()
std::string String
Definition: remodel.cc:69
void init(int argc, char *argv[])
Command line init() version.
Definition: init.cc:23
virtual void test_move(Pose &pose)
core::pose::Pose Pose
Definition: supercharge.cc:101
virtual MoverOP clone() const
Tracer IO system.
rule< Scanner, options_closure::context_t > options
Definition: Tag.cc:377
#define OPT_KEY(type, key)
virtual void apply(Pose &pose)
Output file stream wrapper for uncompressed and compressed files.
Option lookup functions emulating Rosetta++ equivalents for transitional use.
#define NEW_OPT(akey, help, adef)
vector1: std::vector with 1-based indexing
tuple movemap
Definition: loops.py:29
Program options global and initialization function.
static void clone(T *&dst, S *src, int n)
Definition: Svm.cc:22
virtual std::string get_name() const
virtual MoverOP fresh_instance() const
rule< Scanner, option_closure::context_t > option
Definition: Tag.cc:378