Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AllowInsert.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 // CVS information:
4 // $Revision: 1.1.2.1 $
5 // $Date: 2005/11/07 21:05:35 $
6 // $Author: rhiju $
7 // (c) Copyright Rosetta Commons Member Institutions.
8 // (c) This file is part of the Rosetta software suite and is made available under license.
9 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
10 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
11 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
12 
13 #ifndef INCLUDED_protocols_toolbox_AllowInsert_HH
14 #define INCLUDED_protocols_toolbox_AllowInsert_HH
15 
17 #include <core/pose/Pose.fwd.hh>
20 #include <core/id/AtomID.fwd.hh>
22 #include <core/id/TorsionID.fwd.hh>
23 #include <core/types.hh>
24 #include <utility/pointer/ReferenceCount.hh>
25 #include <utility/vector1.hh>
26 
27 //XRW2 suggestion: refactor to protocols/toolbox
28 
29 // C++ Headers
30 #include <map>
31 
32 #ifdef WIN32
33  #include <core/id/AtomID.hh>
34 #endif
35 
36 
37 namespace protocols {
38 namespace toolbox {
39 
40 //////////////////////////////////////////////////////////////////////////////////////////////
41 //
42 // Contains a map of each atom to a "domain":
43 // 0 = no domain, can move this atom if you want
44 // 1,2... = domain occupied by a predefined "chunk". Don't shift relative atom
45 // positions within each domain.
46 // 999 = (FIXED) part of a user-defined fixed domain.
47 
48 extern core::Size const FIXED_DOMAIN;
49 
51 public:
52 
53  //constructor
54  AllowInsert( core::pose::Pose const & pose );
55  virtual ~AllowInsert();
56 
57  AllowInsert &
58  operator=( AllowInsert const & src );
59 
60  AllowInsert( AllowInsert const & src );
61 
62  virtual AllowInsertOP clone() const;
63 
64 public:
65 
66  bool
67  get( Size const & i ) const;
68 
69  bool
70  get( core::id::AtomID const & atom_id ) const;
71 
72  bool
73  get( core::id::TorsionID const & torsion_id, core::conformation::Conformation const & conformation ) const;
74 
75  Size
76  get_domain( Size const & i ) const;
77 
78  bool
79  has_domain( core::id::AtomID const & atom_id ) const;
80 
81  Size
82  get_domain( core::id::AtomID const & atom_id ) const;
83 
84  void
85  set_domain( Size const & i, Size const & setting );
86 
87  void
88  set_domain( core::id::AtomID const & atom_id, Size const & setting );
89 
90  void
91  set_domain( Size const & setting );
92 
93  void
94  and_allow_insert(AllowInsertOP allow_insert_in );
95 
96  core::Size nres(){ return nres_;}
97 
98  void
100  core::pose::Pose const & pose,
101  Size const & setting );
102  void
103  set_phosphate( core::Size const & i,
104  core::pose::Pose const & pose,
105  bool const & setting );
106 
107  void
108  set( Size const & i, bool const & setting );
109 
110  void
111  set( core::id::AtomID const & atom_id, bool const & setting );
112 
113  void
114  set( bool const & setting );
115 
116  void
117  show();
118 
119  std::map< core::id::AtomID, Size > const &
121 
122  std::map< core::id::AtomID, Size > const &
124 
125  void
127 
128  void
130  core::pose::Pose const & pose,
131  std::map< core::Size, core::Size > const & res_map,
132  core::kinematics::FoldTree const & scratch_fold_tree,
133  std::map< core::id::AtomID, core::id::AtomID > & atom_id_map );
134 
135  void
136  set_force_ideal_chainbreak( bool const & setting ){ force_ideal_chainbreak_ = setting; }
137 
138  void
139  append_residue( core::pose::Pose const & pose,
140  Size const & i,
141  bool const & setting );
142 
143 private:
144  void
145  initialize( core::pose::Pose const & pose );
146 
147 private:
148 
149  std::map< core::id::AtomID, Size > allow_insert_;
150  std::map< core::id::NamedAtomID, core::id::AtomID > named_atom_id_map_;
152 
153  std::map< core::id::AtomID, Size > calculated_atom_id_domain_map_;
154 
155  std::map< core::id::AtomID, core::id::AtomID > map_to_original_;
156 
158 
160 };
161 
162 
163 } //rna
164 } //protocols
165 
166 #endif