Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PseudocontactShiftInput.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  //////////////////////////////////////////////
11  /// @begin
12  ///
13  /// @file protocols/scoring/PseudocontactShiftInput.hh
14  ///
15  /// @brief Read input .npc input file
16  ///
17  /// @detailed The following classes are responsable to read / parse the PCS input file (.npc format)
18  ///
19  /// @param
20  ///
21  /// @return
22  ///
23  /// @remarks
24  ///
25  /// @references
26  ///
27  /// @authorsv Christophe Schmitz
28  ///
29  /// @last_modified June 2009
30  ////////////////////////////////////////////////
31 
32 
33 #ifndef INCLUDED_protocols_scoring_methods_pcs_PseudocontactShiftInput_hh
34 #define INCLUDED_protocols_scoring_methods_pcs_PseudocontactShiftInput_hh
35 
36 // Package headers
37 
38 // Project headers
39 #include <core/types.hh>
40 
41 // Utility headers
42 
43 // Numeric headers
44 
45 // Objexx headers
46 
47 // C++ headers
48 #include <string>
49 #include <map>
50 
51 #include <utility/vector1_bool.hh>
52 
53 
54 namespace protocols{
55 namespace scoring{
56 namespace methods{
57 namespace pcs{
58 
59 ///////////////////////////////////////////////////////////////////////////
60 /// @brief PCS_line_data class: hold a line of the input file information (.npc format)
61 /// One PCS_line_data per line in the input file
63 
64 public:
65  PCS_line_data();
66 
68 
69  PCS_line_data(PCS_line_data const & other);
70 
72  operator=( PCS_line_data const & other );
73 
75  core::Size const residue_num,
76  std::string const atom_name,
79  );
80 
82  residue_num() const;
83 
85  atom_name() const;
86 
88  PCS_experimental() const;
89 
91  PCS_tolerance() const;
92 
93  friend std::ostream &
94  operator<<(std::ostream& out, const PCS_line_data &PCS_l_d);
95 
96 private:
101 };
102 
103 
104 //////////////////////////////////////////////////////////
105 /// @brief PCS_file_data contain all the information of a .npc file
106 /// one per lanthanide.
108 private:
112 
113  void
114  read_PCS_file();
115 
116 public:
117 private:
118  PCS_file_data();
119 public:
120  ~PCS_file_data();
121 
122  PCS_file_data(PCS_file_data const & other);
123 
124  PCS_file_data &
125  operator=( PCS_file_data const & other );
126 
127  PCS_file_data(std::string const & filename, core::Real const my_weight );
128 
130  get_filename() const;
131 
132  core::Real
133  get_weight() const;
134 
137 
138  friend std::ostream &
139  operator<<(std::ostream& out, const PCS_file_data &PCS_f_d);
140 };
141 
142 
143 //////////////////////////////////////////////////////////////
144 /// @brief PCS_data_input contain all the input information for the PCS.
145 /// This includes all the information from the .npc files
147 private:
148  std::map< std::string, PCS_file_data > PCS_filename_and_data_;
149 
150 public:
151  PCS_data_input();
152 
153  ~PCS_data_input();
154 
155  PCS_data_input(PCS_data_input const & other);
156 
158  operator=( PCS_data_input const & other );
159 
161 
162  std::map< std::string, PCS_file_data > &
164 
165  friend std::ostream &
166  operator<<(std::ostream& out, const PCS_data_input &PCS_d_i);
167 
168 };
169 
171 
172 private:
174 
176  std::map<std::string, PCS_data_input> file_2_data_map_;
177 
178 public:
179  static
181  get_instance();
182 
184  get_input_data(utility::vector1<std::string> const & filenames, utility::vector1<core::Real> const & vec_weight);
185 };
186 
187 
188 
189 
190 }//namespace pcs
191 }//namespace methods
192 }//namespace scoring
193 }//namespace protocols
194 
195 #endif