Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RelativePoseFilter.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 sw=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 protocols/simple_filters/RelativePoseFilter.hh
11 /// @brief Computes a filter's value on a pose that is modified from one that is read from disk. Useful for computing values for the same sequence across many structures.
12 /// @author Sarel Fleishman (sarelf@uw.edu)
13 
14 #ifndef INCLUDED_protocols_simple_filters_RelativePoseFilter_hh
15 #define INCLUDED_protocols_simple_filters_RelativePoseFilter_hh
16 
17 
18 // Project Headers
20 #include <core/pose/Pose.fwd.hh>
21 #include <utility/tag/Tag.fwd.hh>
26 
27 #include <utility/vector1.hh>
28 
29 // Unit headers
30 
31 namespace protocols {
32 namespace simple_filters {
33 
35 {
36 private:
38 public:
39  /// @brief default ctor
41  ///@brief Constructor with a single target residue
42  virtual bool apply( core::pose::Pose const & pose ) const;
43  virtual void report( std::ostream & out, core::pose::Pose const & pose ) const;
44  virtual core::Real report_sm( core::pose::Pose const & pose ) const;
45  virtual protocols::filters::FilterOP clone() const;
47  core::Real compute( core::pose::Pose const & pose ) const;
48  virtual ~RelativePoseFilter();
49  void parse_my_tag( utility::tag::TagPtr const tag,
53  core::pose::Pose const & );
57  void relax_mover( protocols::moves::MoverOP const mover );
58  core::pose::PoseOP pose() const;
59  void pose( core::pose::PoseOP p );
60  void pdb_name( std::string const pdb_name ); // sets pose( ) function above with the pdb parameter
62  void dump_pose_fname( std::string const s );
63 
66  void packing_shell( core::Real const s );
67  core::Real packing_shell() const;
68  core::pose::PoseOP thread_seq( core::pose::Pose const & p) const; //key functionality of this filter: thread relevant sections, repack and relax
69  bool thread() const;
70  void thread( bool const t );
71  bool baseline() const;
72  void baseline( bool const b );
73  core::Real baseline_val() const;
74  void baseline_val( core::Real const );
75  bool unbound() const{ return unbound_; }
76  void unbound( bool const b ){ unbound_ = b; }
77  bool copy_stretch() const{ return copy_stretch_; }
78  void copy_stretch( bool const b ){ copy_stretch_ = b; }
79  void symmetry_definition( std::string const s );
81  std::string filter_name() const;
82  void filter_name( std::string const s );
83  void rtmin( bool const b);
84  bool rtmin() const;
85 private:
86  protocols::filters::FilterOP filter_; //which filter to use
87  protocols::moves::MoverOP relax_mover_; // a mover to be called before evaluating the filter's value.
88  std::map< core::Size, core::Size > alignment_; //alignment of active pose to the pose read from disk. Only the segments that are threaded need be specified. Assumes a mapping from disk sequence to input structure sequence
89  std::string dump_pose_fname_; //filename of dumped pose. Empty means no dumping
92  core::Real packing_shell_; //dflt 8; after threading, what shell to repack around residue
93  bool thread_;// dflt true; should we thread or only repack? Only repack is useful for computing baseline filter values at the start of the run, vs. the values for the actual mutated sequences later
94  bool baseline_; // dflt true; should we use an internal baseline? (see wiki for details)
96  bool unbound_; //dflt false; measure the filter for the unbound system?
97  bool copy_stretch_; //dflt false; rather than change residue identities, copy an entire stretch of residues (this means using replace_residue w/o orient backbone, and will normally lead to very poor behaviour. Use with care, and probably only on entire chains which are pre-aligned.)
100  std::string filter_name_; //for tracer output to tell us which filter is reporting the current value in multi-filter optimizations.
101  bool rtmin_; //dflt false; after repacking the substituted residues, should we also rtmin?
102 };
103 
104 } // simple_filters
105 } // protocols
106 
107 #endif //INCLUDED_protocols_simple_filters_RelativePoseFilter_HH_
108