Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CrossPeakInfo.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 // (c) This file is part of the Rosetta software suite and is made available under license.
4 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
5 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
6 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
7 
8 /// @file CrossPeakList.hh
9 /// @author Oliver Lange
10 
11 #ifndef INCLUDED_protocols_noesy_assign_CrossPeakInfo_hh
12 #define INCLUDED_protocols_noesy_assign_CrossPeakInfo_hh
13 
14 
15 // Unit Headers
17 
18 // Package Headers
20 
21 // Project Headers
22 #include <core/types.hh>
23 // AUTO-REMOVED #include <core/id/NamedAtomID.fwd.hh>
24 #include <core/chemical/AA.hh>
25 
26 // Utility headers
27 // AUTO-REMOVED #include <utility/exit.hh>
28 // #include <utility/excn/Exceptions.hh>
29 #include <utility/vector1.hh>
30 #include <utility/pointer/ReferenceCount.hh>
31 // #include <numeric/numeric.functions.hh>
32 // #include <basic/prof.hh>
33 //#include <basic/Tracer.hh>
34 // #include <basic/options/option.hh>
35 // #include <basic/options/keys/abinitio.OptionKeys.gen.hh>
36 // #include <basic/options/keys/run.OptionKeys.gen.hh>
37 //#include <basic/options/keys/templates.OptionKeys.gen.hh>
38 
39 //// C++ headers
40 // AUTO-REMOVED #include <cstdlib>
41 #include <string>
42 
43 //Auto Headers
44 namespace protocols {
45 namespace noesy_assign {
46 
47 
48 ///@brief shared information about CrossPeak (one for each proton dimension)
50 public:
51 
52  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
53  virtual ~CrossPeakInfo();
55 
56  proton_atom_name_( proton ),
57  label_atom_type_( label ),
58  max_noe_distance_( max_noe_distance ),
59  proton_tolerance_( proton_tolerance ),
60  label_tolerance_( label_tolerance )
61  {}
62 
63  std::string const& main_atom() const { return proton_atom_name_; }
64  std::string const& label_atom_type() const { return label_atom_type_; }
65 
66  core::Real const& proton_tolerance() const { return proton_tolerance_; }
67  core::Real const& label_tolerance() const { return label_tolerance_; }
68  bool has_label() const { return label_atom_type_ != "" && label_tolerance_ < 200; } //tolerance is sometimes set to 999
69 
70  //returns the corresponding label-atom depending on type: (HN) H --> N, (CH) QD1-->CD1 etc.
71  std::string label_atom_name( std::string const& proton_name, core::chemical::AA aa ) const;
72 
73  void set_label( std::string label, core::Real tolerance ) {
74  label_atom_type_ = label;
75  label_tolerance_ = tolerance;
76  }
77  void set_proton( std::string name, core::Real tolerance ) {
78  proton_atom_name_ = name;
79  proton_tolerance_ = tolerance;
80  }
81 
82  bool operator ==( CrossPeakInfo const& cpi ) const {
87  }
88 
90 
91  std::string const& filename() const {
92  return filename_;
93  }
94 
96  return max_noe_distance_;
97  }
98 
99  size_t exp_hash() const {
100  return exp_hash_;
101  }
102 
103  void show( std::ostream& ) const;
104 
107 
108  void set_folding_window( core::Real start, core::Real end, bool label=true ) {
109  if ( label ) {
110  fold_label_resonance_.set_window( start, end );
111  } else {
112  fold_proton_resonance_.set_window( start, end );
113  }
114  }
115 
116 private:
123  size_t exp_hash_;
125  FoldResonance fold_proton_resonance_; //this is probably nonsense but for completeness...
126 
127 };
128 
129 std::ostream& operator<< ( std::ostream&, CrossPeakInfo const& );
130 
131 }
132 }
133 
134 #endif