Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DnaInterfacePacker.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 // (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 /// @file DnaInterfacePacker.hh
11 /// @author ashworth
12 /// @brief Intended to perform anything one would want to do in a DNA interface that uses a single incarnation of the RotamerSets/InteractionGraph combo.
13 /// @details For basic packing/designing, the more basic PackRotamersMover can be used instead, provided it receives the appropriate TaskFactory/TaskOperations. This derived class, however, takes advantage of the reusability of packer data to accomplish some higher-level functions, such as rapid estimations of multi-state specificity, reversions, and mutational scanning.
14 
15 #ifndef INCLUDED_protocols_dna_DnaInterfacePacker_hh
16 #define INCLUDED_protocols_dna_DnaInterfacePacker_hh
17 
21 
23 // AUTO-REMOVED #include <protocols/dna/DnaDesignDef.hh>
26 
27 #include <core/types.hh>
34 #include <core/pose/Pose.fwd.hh>
36 #include <utility/tag/Tag.fwd.hh>
37 
38 #include <map>
39 #include <string>
40 
42 #include <utility/vector0.hh>
43 #include <utility/vector1.hh>
44 
45 
46 namespace protocols {
47 namespace dna {
48 
50 
51 typedef std::map< ResTypeSequence, core::Real, ResTypeSequence_lt > SequenceScores;
52 
54 public:
55  bool operator() ( ResTypeSequence const & a, ResTypeSequence const & b ) const;
56 };
57 
59 
60 public:
63 
64 public:
66 
69  bool minimize = false,
70  std::string filename_root = "dnapacker"
71  );
72 
73  virtual ~DnaInterfacePacker(); // important for properly "releasing" owning pointer data
74 
75  virtual moves::MoverOP fresh_instance() const;
76  virtual moves::MoverOP clone() const;
77  virtual std::string get_name() const;
78 
79  virtual void apply( Pose & );
80 
81  bool initialized() const;
82 
83  ///@brief parse XML (specifically in the context of the parser/scripting scheme)
84  virtual void parse_my_tag(
85  TagPtr const,
88  moves::Movers_map const &,
89  Pose const & );
90 
91  core::Real unbound_score( Pose const &, bool output_pdb = false, std::string pdbname = "" );
92 
93  std::pair< core::Real, core::Real > measure_specificity( Pose & );
94  std::pair< SequenceScores, SequenceScores > measure_bp_specificities( Pose & );
95  std::pair< SequenceScores, SequenceScores >
97 
98  void reversion_scan(
99  Pose &,
100  core::Real bound_score = 0.,
101  core::Real binding_score = 0.,
102  std::pair< core::Real, core::Real > specificities = std::make_pair(0.,0.) );
103 
104  // setters, getters, and book-keeping methods
105  void reference_pose( Pose const & );
106  PoseCOP reference_pose() const;
107  void targeted_dna( DnaDesignDefOPs const & );
108  DnaDesignDefOPs const & targeted_dna() const;
109  void pdboutput( PDBOutputOP );
111  std::string dna_seq_tag( Pose const &, ResTypeSequence const & ) const;
112  ResTypeSequence get_targeted_sequence( Pose const & ) const;
114  std::string current_dna_design_string( Pose const & ) const;
115  std::string allowed_types() const;
116  void clear_initialization();
118 
119 private: // methods
120  void standard_packing( Pose & );
121  void post_packing( Pose &, ResTypeSequence const &, Size );
122  void protein_scan( Pose & );
123  void init_standard( Pose & );
127 
128 private: // data
133  bool minimize_;
150 };
151 
152 } // namespace dna
153 } // namespace protocols
154 
155 #endif