Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Mutant.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 // This file is part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file protocols/pmut_scan/Mutant.hh
10 /// @brief A helper class for the point mut scan protocol.
11 /// @author Ron Jacak
12 
13 #ifndef INCLUDED_protocols_pmut_scan_Mutant_HH
14 #define INCLUDED_protocols_pmut_scan_Mutant_HH
15 
16 // Project Headers
18 
19 // AUTO-REMOVED #include <core/graph/Graph.hh>
20 #include <core/types.hh>
21 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
22 // AUTO-REMOVED #include <core/scoring/ScoreFunction.fwd.hh>
23 // AUTO-REMOVED #include <core/scoring/EnergyMap.fwd.hh>
24 
25 // AUTO-REMOVED #include <basic/options/util.hh>
26 
27 // Utility headers
28 
29 // ObjexxFCL header
30 
31 // C++
32 // AUTO-REMOVED #include <string>
33 // AUTO-REMOVED #include <iostream>
34 
35 #include <utility/vector1.hh>
36 
37 
38 namespace protocols {
39 namespace pmut_scan {
40 
41 class MutationData {
42 
43 public:
44 
45  MutationData( char wt_residue, char mut_residue, core::Size pose_resnum, core::Size pdb_resnum, char icode, char chain );
46  ~MutationData();
47 
50 
51  char mut_residue() const;
52  core::Size pose_resnum() const;
53 
54  char pdb_chain() const { return chain_; }
55 
56  // print function for mutation data class; only used by unit tests
57  void print_mutation_data( MutationData & md );
58 
59  // function which tests two mutation_data objects for equality; only used by unit tests
60  bool operator==( const MutationData & md_other ) const;
61 
62  friend std::ostream & operator<< ( std::ostream & os, const MutationData & md );
63 
64 private:
65 
69  core::Size pdb_resnum_; // position in PDB numbering
70  char icode_; // insertion code
71  char chain_; // insertion code
72 
73 
74 friend class Mutant;
75 friend class PointMutScanDriver;
76 
77 }; // class MutationData
78 
79 
80 class Mutant {
81 
82 public:
83 
84  Mutant();
85  ~Mutant();
86 
87  core::Size n_mutations() const;
88  void add_mutation( MutationData md );
89 
92 
93  // function which tests two mutation_data objects for equality; only used by unit tests
94  bool operator==( const Mutant & m_other ) const;
95 
97 
98  friend std::ostream & operator<< ( std::ostream & os, const Mutant & m );
99 
100 private:
101 
103 
104 friend class PointMutScanDriver;
105 
106 }; // class Mutant
107 
108 
109 } // namespace pmut_scan
110 } // namespace protocols
111 
112 #endif //INCLUDED_protocols_pmut_scan_Mutant_HH