Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MultiStateFitnessFunction.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 MultiStateFitnessFunction.hh
11 /// @brief
12 /// @author ashworth
13 
14 #ifndef INCLUDED_protocols_multistate_design_MultiStateFitnessFunction_hh
15 #define INCLUDED_protocols_multistate_design_MultiStateFitnessFunction_hh
16 
19 
21 // AUTO-REMOVED #include <protocols/multistate_design/MultiStateEntity.fwd.hh>
22 
23 #include <core/pose/Pose.fwd.hh>
25 
27 // AUTO-REMOVED #include <protocols/toolbox/PoseMetricCalculators/MetricValueGetter.hh>
28 
29 #include <core/types.hh>
30 // AUTO-REMOVED #include <utility/vector1.hh>
31 #include <utility/pointer/owning_ptr.hh>
32 
35 #include <utility/vector1.hh>
36 #include <map>
37 
38 #ifdef WIN32
40  #include <core/pose/Pose.hh>
41 #endif
42 
43 
44 namespace protocols {
45 namespace multistate_design {
46 
48 
49 public:
51 
54 
55  virtual void add_state( SingleStateOP state );
56  virtual void add_state( core::pose::Pose const & pose, bool is_positive );
57 
59  virtual core::Real evaluate( protocols::genetic_algorithm::Entity & entity, core::Size single_state_num ) = 0;
61 
64 
67 
68  ///@brief true const (read only) access to states
69  virtual SingleStateCOPs const_states( bool positive_only = false ) const;
70  virtual SingleStateCOPs positive_states() const;
71 
72  virtual core::Size num_states() const { return states_.size(); }
73  virtual core::Size num_states( bool pos_neg ) const;
74  virtual core::Size num_positive_states() const { return num_states( true ); }
75  virtual core::Size num_negative_states() const { return num_states( false ); }
76 
77  virtual void add_metric_value_getter(
78  std::string const & name,
80  );
81 
82 protected:
83  typedef std::map<std::string, protocols::toolbox::pose_metric_calculators::MetricValueGetter> MetricValueGetterMap;
84 
85  virtual SingleStateOPs & states();
87 
88 private:
92  // pose(s) to track most fit trait set in real time (such as for graphics)
96 };
97 
98 } // namespace multistate_design
99 } // namespace protocols
100 
101 #endif