Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StructureRestrictor.hh
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 // This file is part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file protocols/moves/StructureRestrictor.hh
10 ///
11 /// @brief lookup relevant chains for a structure in a table.
12 /// @author Matthew O'Meara
13 
14 /// This should probably be a pilot app, but the way Rosetta Scripts
15 /// is set up, it can't be in the pilot apps
16 
17 
18 #ifndef INCLUDED_protocols_moves_StructureRestrictor_hh
19 #define INCLUDED_protocols_moves_StructureRestrictor_hh
20 
22 
23 #include <protocols/moves/Mover.hh>
24 #include <utility/tag/Tag.fwd.hh>
25 
26 #include <map>
27 #include <string>
28 
29 #include <utility/vector1.hh>
30 
31 
32 using namespace std;
33 using namespace core;
34  using namespace pose;
35 
36 namespace protocols{
37 namespace moves{
38 
39 
41 
42 public:
44 
45  StructureRestrictor( string const & name);
46 
48 
49  virtual ~StructureRestrictor();
50 
51  virtual MoverOP fresh_instance() const;
52 
53  virtual MoverOP clone() const;
54 
55  virtual std::string get_name() const { return "StructureRestrictor"; }
56 
57 
58  // So this this can be called from RosettaScripts
59  void
60  parse_my_tag(
61  TagPtr const tag,
62  protocols::moves::DataMap & /*data*/,
63  Filters_map const & /*filters*/,
64  protocols::moves::Movers_map const & /*movers*/,
65  Pose const & /*pose*/ );
66 
67  void
68  setup_relevant_chains(
69  string const & relevant_chains_fname,
70  map<string const, string const> & chain_map
71  );
72 
73  // this is a hack because poses do not have canonical names!
74  string pose_name(Pose const & pose);
75 
76  void apply( Pose& pose );
77 
78 private:
79  map<string const, string const> chain_map;
82 };
83 
84 }//moves
85 }//protocols
86 
87 #endif //INCLUDED_protocols_moves_StructureRestrictor_FWD_HH