Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DisulfideMover.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 // 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/protein_interface_design/movers/DisulfideMover.hh
10 /// @brief
11 /// @author Spencer Bliven <blivens@u.washington.edu>
12 /// @date 4/30/2009
13 
14 #ifndef INCLUDED_protocols_protein_interface_design_movers_DisulfideMover_hh
15 #define INCLUDED_protocols_protein_interface_design_movers_DisulfideMover_hh
16 
17 // Project Headers
18 #include <core/pose/Pose.fwd.hh>
19 #include <core/types.hh>
20 
21 //parsing
22 #include <utility/tag/Tag.fwd.hh>
24 #include <protocols/moves/Mover.fwd.hh> //Movers_map
25 #include <protocols/filters/Filter.fwd.hh> //Filters_map
26 
27 // Utility headers
28 #include <utility/vector1.fwd.hh>
29 
30 // C++ headers
31 
33 #include <utility/vector1.hh>
34 
35 //Auto Headers
37 
38 
39 
40 // Unit headers
41 
42 namespace protocols {
43 namespace protein_interface_design {
44 namespace movers {
45 
46 
48 {
49 private:
51 public:
52  ///@brief default ctor
54  ///@brief copy ctor
55  DisulfideMover(DisulfideMover const& dm);
56  ///@brief Constructor with a single target residue
57  DisulfideMover( core::Size targetResidue );
58  ///@brief Constructor with multiple target residues
59  DisulfideMover( utility::vector1<core::Size> const& targetResidues );
60  virtual ~DisulfideMover();
61 
62  virtual void apply( core::pose::Pose & pose );
63  virtual std::string get_name() const;
64  virtual protocols::moves::MoverOP clone() const {
65  return (protocols::moves::MoverOP( new DisulfideMover( *this ) ) );
66  }
69  }
70 
71  void parse_my_tag( utility::tag::TagPtr const tag,
75  core::pose::Pose const & );
76 public:
77  /// @brief Find all residues which could disulfide bond to a target
78  /// @return pairs of residues (target, host) from the target protein and the
79  /// docking protein.
80  /// @note This is implemented as a static method so that DisulfidedFilter
81  /// can share code.
82  static void disulfide_list( core::pose::Pose const & pose,
83  utility::vector1< core::Size > const& targets, Size rb_jump,
84  utility::vector1< std::pair<core::Size,core::Size> > & disulfides);
85 private:
86  /// @brief Modify the pose to define a disulfide bond between the two specified
87  /// residues.
88  /// @details Does not do the repacking & minimization required to place the
89  /// disulfide correctly.
90  static void form_disulfide(core::pose::Pose & pose, core::Size lower_res, core::Size upper_res);
91 
92 private:
94 private:
96 };
97 
98 } // movers
99 } // protein_interface_design
100 } // protocols
101 
102 #endif //INCLUDED_protocols_protein_interface_design_movers_DisulfideMover_HH_
103