Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FullatomDisulfideEnergyContainer.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 core/scoring/disulfides/FullatomDisulfideEnergyContainer.hh
11 /// @brief Disulfide Energy Container class declaration
12 /// @author Andrew Leaver-Fay
13 
14 #ifndef INCLUDED_core_scoring_disulfides_FullatomDisulfideEnergyContainer_hh
15 #define INCLUDED_core_scoring_disulfides_FullatomDisulfideEnergyContainer_hh
16 
17 // Unit headers
19 // AUTO-REMOVED #include <core/scoring/disulfides/DisulfideAtomIndices.hh>
20 
21 // Package headers
23 
24 // Project headers
26 
28 // AUTO-REMOVED #include <core/scoring/ScoreFunction.fwd.hh>
29 
30 // AUTO-REMOVED #include <core/scoring/ScoreType.hh>
31 
32 #include <core/pose/Pose.fwd.hh>
33 
35 #include <utility/vector1.hh>
36 
37 
38 namespace core {
39 namespace scoring {
40 namespace disulfides {
41 
43 public:
44 
47  Size focused_node,
48  Size disulfide_index
49  );
50 
53  );
54 
55  virtual ~DisulfResNeighbIterator();
56 
58  virtual ResidueNeighborIterator const & operator ++ ();
59  virtual bool operator == ( ResidueNeighborIterator const & ) const;
60  virtual bool operator != ( ResidueNeighborIterator const & ) const;
61 
62  virtual Size upper_neighbor_id() const;
63  virtual Size lower_neighbor_id() const;
64 
65  virtual Size residue_iterated_on() const;
66  virtual Size neighbor_id() const;
67 
68  virtual void save_energy( EnergyMap const & );
69  virtual void retrieve_energy( EnergyMap & ) const;
70  virtual void accumulate_energy( EnergyMap & ) const;
71 
72  virtual void mark_energy_computed();
73  virtual void mark_energy_uncomputed();
74 
75  virtual bool energy_computed() const;
76 
77 private:
81 };
82 
84 public:
87  Size focused_node,
88  Size disulfide_index
89  );
90 
92 
94 
97  virtual bool operator == ( ResidueNeighborConstIterator const & ) const;
98  virtual bool operator != ( ResidueNeighborConstIterator const & ) const;
99 
100  virtual Size upper_neighbor_id() const;
101  virtual Size lower_neighbor_id() const;
102 
103  virtual Size residue_iterated_on() const;
104  virtual Size neighbor_id() const;
105 
106  virtual void retrieve_energy( EnergyMap & ) const;
107  virtual void accumulate_energy( EnergyMap & ) const;
108 
109  virtual bool energy_computed() const;
110 
111 private:
115 
116 };
117 
119 {
120 public:
122  dslf_ss_dst_( 0.0 ),
123  dslf_cs_ang_( 0.0 ),
124  dslf_ss_dih_( 0.0 ),
125  dslf_ca_dih_( 0.0 ),
126  dslf_cbs_ds_( 0.0 )
127  {}
128 
129  Energy dslf_ss_dst() const { return dslf_ss_dst_;}
130  Energy dslf_cs_ang() const { return dslf_cs_ang_;}
131  Energy dslf_ss_dih() const { return dslf_ss_dih_;}
132  Energy dslf_ca_dih() const { return dslf_ca_dih_;}
133  Energy dslf_cbs_ds() const { return dslf_cbs_ds_;}
134 
140 
141 private:
142 
148 };
149 
151 public:
152  static Size const NO_DISULFIDE;
153 
154 public:
156 
158 
159  void
160  update( pose::Pose const & );
161 
162  virtual
164 
165  virtual
166  bool empty() const;
167 
168  virtual
169  LREnergyContainerOP clone() const;
170 
171  virtual
172  void
173  set_num_nodes( Size );
174 
175  virtual
177  const_neighbor_iterator_begin( int resid ) const;
178 
179  virtual
181  const_neighbor_iterator_end( int resid ) const;
182 
183  virtual
185  const_upper_neighbor_iterator_begin( int resid ) const;
186 
187  virtual
189  const_upper_neighbor_iterator_end( int resid ) const;
190 
191  virtual
193  neighbor_iterator_begin( int resid );
194 
195  virtual
197  neighbor_iterator_end( int resid );
198 
199  virtual
201  upper_neighbor_iterator_begin( int resid );
202 
203  virtual
205  upper_neighbor_iterator_end( int resid );
206 
207  bool
208  disulfide_bonded( Size res1id, Size res2id ) const;
209 
210  bool residue_forms_disulfide( Size resid ) const;
211 
212  // What residue is resid forming a disulfide with?
213  Size other_neighbor_id( Size resid ) const;
214 
215  DisulfideAtomIndices const &
216  disulfide_atom_indices( Size resid ) const;
217 
218  DisulfideAtomIndices const &
219  other_neighbor_atom_indices( Size resid ) const;
220 
221 // Read and write access granted to Disulf Iterators. Other classes should not use these methods.
222 public:
223 
224  // Mutators
225  void save_energy( Size disulfide_index, EnergyMap const & emap );
226  void mark_energy_computed( Size disulfide_index );
227  void mark_energy_uncomputed( Size disulfide_index );
228 
229  // Accessors
230  Size lower_neighbor_id( Size disulfide_index ) const;
231  Size upper_neighbor_id( Size disulfide_index ) const;
232  Size other_neighbor_id( Size disulfide_index, Size resid ) const;
233 
234  void accumulate_energy( Size disulfide_index, EnergyMap & emap ) const;
235  void retrieve_energy( Size disulfide_index, EnergyMap & emap ) const;
236  bool energy_computed( Size disulfide_index ) const;
237  Size num_residues() const;
238 
239 
240 private:
241  void find_disulfides( pose::Pose const & pose );
242  bool disulfides_changed( pose::Pose const & pose );
243  Size num_disulfides() const;
244 
245 private:
251 
252 };
253 
254 }
255 }
256 }
257 
258 #endif