Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PDBSilentStruct.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 // :noTabs=false:tabSize=4:indentSize=4:
4 //
5 // (c) Copyright Rosetta Commons Member Institutions.
6 // (c) This file is part of the Rosetta software suite and is made available under license.
7 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10 
11 /// @file core/io/silent/PDBSilentStruct.hh
12 ///
13 /// @brief Representation of rosetta++ protein silent-file structures.
14 /// @author James Thompson
15 
16 #ifndef INCLUDED_core_import_pose_PDBSilentStruct_hh
17 #define INCLUDED_core_import_pose_PDBSilentStruct_hh
18 
19 // mini headers
20 #include <core/types.hh>
21 #include <core/pose/Pose.fwd.hh>
24 #include <core/io/pdb/file_data.hh>
25 // AUTO-REMOVED #include <core/io/silent/SilentFileData.fwd.hh>
26 
27 
29 
30 #include <utility/pointer/ReferenceCount.hh>
31 
32 // C++ Headers
33 #include <string>
34 
35 #include <utility/vector1.hh>
36 
37 
38 namespace core {
39 namespace import_pose {
40 
42 
43 public:
44 
45  /// @brief Constructors.
47  decoy_tag( "empty_tag" );
48  }
49 
51  core::pose::Pose const & pose,
52  std::string tag = "empty_tag"
53  );
54 
56  return new PDBSilentStruct( *this );
57  }
58 
59  // destructor
61 
63 
64  virtual void print_header( std::ostream & out );
65 
66  /// @brief Test if this PDBSilentStruct is equal to the given PDBSilentStruct in terms of conformation.
67  /// Doesn't check energies.
69  PDBSilentStruct const & src
70  );
71 
72  /// @brief Tells this PDBSilentStruct object to initialize itself from the given set of lines. Lines should
73  /// be of the format
74  virtual bool init_from_lines(
75  utility::vector1< std::string > const & lines,
77  );
78 
79  /// @brief Configure the conformation of the given Pose with the conformational data within this PDBSilentStruct.
80  /// Calls pose.clear() and rebuilds Pose from scratch using FA_STANDARD residue types.
81  virtual void fill_pose(
82  core::pose::Pose & pose
83  ) const;
84 
85  /// @brief Configure the conformation of the given Pose with the
86  /// conformational data within this PDBSilentStruct. Calls pose.clear() and
87  /// rebuilds Pose from scratch using the / user-specified residue types.
88  virtual void fill_pose(
89  core::pose::Pose & pose,
90  core::chemical::ResidueTypeSet const & residue_set
91  ) const;
92 
93  /// @brief opposite of fill_pose
94  virtual void fill_struct(
95  core::pose::Pose const & pose,
96  std::string tag = "empty_tag"
97  );
98 
99  /// @brief Prints the conformation information within this PDBSilentStruct
100  /// to the given std::ostream.
101  virtual void print_conformation( std::ostream & output ) const;
102 
103  /// @brief data getters/setters
105  file_data() const {
106  return fd_;
107  }
108 
110  fd_ = new_fd;
111  }
112 
114  return pdb_lines_;
115  }
116 
117  /// @brief returns the positions of the CA atoms in this PDBSilentStruct.
118  /// Useful for RMS calculations.
119  virtual ObjexxFCL::FArray2D< Real > get_CA_xyz() const;
120 
121  /// @brief calculates the RMSD between the C-alpha atoms of a Pose built from the torsions in this
122  /// PDBSilentStruct and the C-alpha atoms from this PDBSilentStruct.
123  virtual Real get_debug_rmsd();
124 
125 protected:
127  std::string pdb_lines_; // a concatenated version of all the lines in the pdb file
128 }; // class PDBSilentStruct
129 
130 } // namespace import_pose
131 } // namespace core
132 
133 #endif