Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BinaryProteinSilentStruct.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/BinaryProteinSilentStruct.hh
12 ///
13 /// @brief
14 /// @author Frank DiMaio
15 /// @author Mike Tyka
16 
17 #ifndef INCLUDED_core_io_silent_BinaryProteinSilentStruct_hh
18 #define INCLUDED_core_io_silent_BinaryProteinSilentStruct_hh
19 
20 // mini headers
21 #include <core/types.hh>
22 #include <core/pose/Pose.fwd.hh>
23 
24 // AUTO-REMOVED #include <core/conformation/Residue.fwd.hh>
26 // AUTO-REMOVED #include <core/io/silent/ProteinSilentStruct.hh>
28 #include <core/kinematics/Jump.hh>
29 
30 // AUTO-REMOVED #include <utility/vector1.hh>
31 
32 // C++ Headers
33 #include <iostream>
34 #include <string>
35 
38 #include <utility/vector1.hh>
39 
40 
41 namespace core {
42 namespace io {
43 namespace silent {
44 
45 /// why this inheritance pathway? this makes no sense!
46 //class BinaryProteinSilentStruct : public ProteinSilentStruct {
48 
49 public:
50 
51  /// @brief Constructors.
52  BinaryProteinSilentStruct( Size const nres_in );
53 
55 
57  core::pose::Pose const & pose,
58  std::string tag = "empty_tag"
59  );
60 
61  virtual SilentStructOP clone() const {
62  return new BinaryProteinSilentStruct( *this );
63  }
64 
65  /// @brief Re-dimension the storage capacity of this BinaryProteinSilentStruct to the given number of residues.
66  void resize(
67  Size const nres_in
68  );
69 
70  // destructor
72 
73  /// @brief Test if this BinaryProteinSilentStruct is equal to the given
74  /// BinaryProteinSilentStruct in terms of conformation. Doesn't check
75  /// energies.
77  BinaryProteinSilentStruct const & src
78  );
79 
80  /// @brief Initialize object from a set of lines
81  virtual bool init_from_lines(
82  utility::vector1< std::string > const & lines,
83  SilentFileData & container
84  );
85 
86  /// @brief Configure the conformation of the given Pose with the
87  /// conformational data within this BinaryProteinSilentStruct. Calls
88  /// pose.clear() and rebuilds Pose from scratch using FA_STANDARD residue
89  /// types.
90  virtual void fill_pose(
91  core::pose::Pose & pose
92  ) const ;
93 
94  /// @brief Configure the conformation of the given Pose with the
95  /// conformational data within this BinaryProteinSilentStruct. Calls
96  /// pose.clear() and rebuilds Pose from scratch using the user-specified
97  /// residue types.
98  virtual void fill_pose(
99  core::pose::Pose & pose,
100  core::chemical::ResidueTypeSet const & residue_set
101  ) const;
102 
103  /// @brief opposite of fill_pose
104  virtual void fill_struct( core::pose::Pose const & pose, std::string tag );
105 
106  /// @brief print header information
107  virtual void print_header( std::ostream & out ) const;
108 
109  /// @brief Prints the conformation information within this
110  /// BinaryProteinSilentStruct to the given std::ostream.
111  virtual void print_conformation( std::ostream & output ) const;
112 
113  /// @brief returns the positions of the CA atoms
114  virtual ObjexxFCL::FArray2D< Real > get_CA_xyz() const;
115 
116  // model quality-related methods.
117  virtual Real CA_rmsd( BinaryProteinSilentStruct other_pss );
118 
119  /// @brief calculates the RMSD between the C-alpha atoms of a Pose built from
120  /// the torsions in this ProteinSilentStruct and the C-alpha atoms from this
121  /// ProteinSilentStruct.
122  virtual Real get_debug_rmsd();
123 
124 
126  jumps_.push_back( jump.rt() );
127  }
128 
129  kinematics::RT const & jump( Size jump_num ) const {
130  return jumps_[ jump_num ];
131  }
132 
134  fold_tree_ = f;
135  }
136 
137  kinematics::FoldTree const& fold_tree( ) const {
138  return fold_tree_;
139  }
140 
141  bool fullatom() const {
142  return fullatom_;
143  }
144 
145  virtual void fullatom( bool fullatom ) {
147  }
148 
149  char secstruct( unsigned int seqpos ) const {
150  return secstruct_[seqpos];
151  }
152 
153  void secstruct( unsigned int seqpos, char ss ) {
154  secstruct_[seqpos] = ss;
155  }
156 
159  }
160 
162  return symminfo_;
163  }
164 
165  bool is_symmetric() const {
166  return symminfo_->get_use_symmetry();
167  }
168 
169  void parse_chain_endings( std::istream & stream );
170  void chain_endings( utility::vector1< Size > const & endings );
173  return chain_endings_;
174  }
175  void add_chain_ending( Size const seqpos );
176 
177 private:
178  bool fullatom_;
179 
181 
188 }; // class BinaryProteinSilentStruct
189 
190 } // namespace silent
191 } // namespace io
192 } // namespace core
193 
194 #endif