Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ProteinInterfaceDesignOperation.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 protocols/toolbox/task_operations/ProteinInterfaceDesignOperation.hh
11 /// @brief TaskOperation class that restricts a chain to repacking
12 /// @author Sarel Fleishman sarelf@uw.edu
13 
14 #ifndef INCLUDED_protocols_toolbox_task_operations_ProteinInterfaceDesignOperation_hh
15 #define INCLUDED_protocols_toolbox_task_operations_ProteinInterfaceDesignOperation_hh
16 
17 // Unit Headers
20 
21 // Project Headers
22 #include <core/pose/Pose.fwd.hh>
24 #include <utility/tag/Tag.fwd.hh>
25 
26 // Utility Headers
27 #include <core/types.hh>
28 
29 // C++ Headers
30 // AUTO-REMOVED #include <string>
31 
32 #include <utility/vector1.hh>
33 
34 
35 namespace protocols {
36 namespace toolbox {
37 namespace task_operations {
38 
39 ///@details this class is a TaskOperation to prevent repacking of residues not near an interface.
41 {
42 public:
44 
46  void repack_chain1( bool const repack );
47  void repack_chain2( bool const repack );
48  void design_chain1( bool const design );
49  void design_chain2( bool const design );
50  ///@brief allow all amino acids to be designed at all positions, do not exclude C, G, P
51  void allow_all_aas( bool const allow );
52  ///@brief allow design of all residues on input pose, do not exclude G,P
53  void design_all_aas( bool const design_all );
54  ///@brief distance cutoff for atom distance in an interface.
55  /// All residues an atoms less than the distance cutoff from an atom in the other chain are
56  /// defined as interface.
57  void interface_distance_cutoff( core::Real const dist );
58  void jump( core::Size const j );
59  core::Size jump() const;
60 
62 
63  virtual TaskOperationOP clone() const;
64 
65  virtual
66  void
68 
69  virtual void parse_tag( TagPtr );
70 
71  bool modify_before_jump() const{ return modify_before_jump_; }
72  void modify_before_jump( bool const m ) { modify_before_jump_ = m; }
73  bool modify_after_jump() const{ return modify_after_jump_; }
74  void modify_after_jump( bool const m ) { modify_after_jump_ = m; }
75 
76 private:
81  core::Size jump_;//dflt 1; the jump below which it is chain1, and above which it is chain2
82  bool modify_before_jump_, modify_after_jump_; //dflt true,true; set to false to prevent this taskoperation from modifying one of the sides of the jump. This is useful, if, e.g., you want to only restrict the interface on chain2
83 };
84 
85 } //namespace protocols
86 } //namespace toolbox
87 } //namespace task_operations
88 
89 #endif // INCLUDED_protocols_toolbox_TaskOperations_ProteinInterfaceDesignOperation_HH