Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MotifLibrary.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 MotifLibrary.hh
11 /// @brief class declaration for sets of interaction motifs between residues
12 /// @author havranek, sthyme (sthyme@gmail.com)
13 
14 #ifndef INCLUDED_protocols_motifs_MotifLibrary_hh
15 #define INCLUDED_protocols_motifs_MotifLibrary_hh
16 
17 // Unit Headers
19 
20 // Package Headers
22 
23 // Project Headers
24 #include <core/types.hh>
25 
26 // Utility Headers
27 #include <utility/file/FileName.fwd.hh>
28 #include <utility/pointer/ReferenceCount.hh>
29 #include <utility/vector1.hh>
30 
31 // C++ Headers
32 #include <iosfwd>
33 
34 //Auto Headers
35 namespace protocols {
36 namespace motifs {
37 
39 {
40 
41 public:
42 
44 
45  // Constructor
46  MotifLibrary();
47 
48  // Destructor
49  virtual ~MotifLibrary();
50 
51  // Constructor for loading motifs from motif PDBs
53  utility::vector1< utility::file::FileName > const & motif_filenames
54  );
55 
56  // Constructor for loading motifs from a file with coordinates
58  std::istream & motif_info
59  );
60 
61  // Add motif to library
62  void
64  Motif const & new_motif
65  );
66 
67  // Constructor for loading motifs from a file with coordinates for ligands
69  std::istream & motif_info, core::Size ligand_marker
70  );
71 
72  // Add ligand motif from a PDB file
73  void
75  std::string const & motif_filename
76  );
77 
78  // Add motif from a PDB file
79  void
81  std::string const & motif_filename
82  );
83 
84  // Number of motifs
86  nmotifs();
87 
88  // Iterators
89  MotifCOPs::const_iterator begin() { return library_.begin(); }
90  MotifCOPs::const_iterator end() { return library_.end(); }
91 
92  MotifCOPs::const_iterator begin() const { return library_.begin(); }
93  MotifCOPs::const_iterator end() const { return library_.end(); }
94 
95  // Accessors
96  MotifCOPs const & library() const { return library_; }
97 
98  // Overloaded operator for output
99  friend std::ostream & operator <<(
100  std::ostream & os,
101  MotifLibrary const & mot_lib
102  );
103 
104 private:
106 
107 };
108 
109 } // namespace motifs
110 } // namespace protocols
111 
112 #endif // INCLUDED_protocols_motifs_MotifLibrary