IMP logo
IMP Reference Guide  2.16.0
The Integrative Modeling Platform
FittingSolutionRecord.h
Go to the documentation of this file.
1 /**
2  * \file IMP/multifit/FittingSolutionRecord.h
3  * \brief stored a multifit fitting solution
4  *
5  * Copyright 2007-2021 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPMULTIFIT_FITTING_SOLUTION_RECORD_H
10 #define IMPMULTIFIT_FITTING_SOLUTION_RECORD_H
11 
13 #include <IMP/Model.h>
14 #include <IMP/core/Hierarchy.h>
15 #include <IMP/multifit/multifit_config.h>
16 IMPMULTIFIT_BEGIN_NAMESPACE
17 
18 //! A fitting solution record
19 /**
20 \todo discuss with Daniel - should it be an object ?
21  */
22 class IMPMULTIFITEXPORT FittingSolutionRecord {
23  public:
24  //! Constructor
25  /**
26  \todo consider using better initialization
27  */
29  inline unsigned int get_index() const { return index_; }
30  void set_index(unsigned int new_ind) { index_ = new_ind; }
31  inline std::string get_solution_filename() const { return sol_fn_; }
32  void set_solution_filename(std::string sol_fn) { sol_fn_ = sol_fn; }
33  inline algebra::Transformation3D get_fit_transformation() const {
34  return fit_transformation_;
35  }
36  void set_fit_transformation(algebra::Transformation3D t) {
37  fit_transformation_ = t;
38  }
39  inline unsigned int get_match_size() const { return match_size_; }
40  void set_match_size(unsigned int match_size) { match_size_ = match_size; }
41  inline Float get_match_average_distance() const { return match_avg_dist_; }
42  void set_match_average_distance(Float match_avg_dist) {
43  match_avg_dist_ = match_avg_dist;
44  }
45  inline Float get_fitting_score() const { return fitting_score_; }
46  void set_fitting_score(Float fit_score) { fitting_score_ = fit_score; }
47  inline Float get_rmsd_to_reference() const { return rmsd_to_ref_; }
48  void set_rmsd_to_reference(Float rmsd_to_ref) { rmsd_to_ref_ = rmsd_to_ref; }
49  inline algebra::Transformation3D get_dock_transformation() const {
50  return dock_transformation_;
51  }
52  void set_dock_transformation(algebra::Transformation3D t) {
53  dock_transformation_ = t;
54  }
55  inline Float get_envelope_penetration_score() const { return env_pen_; }
56  void set_envelope_penetration_score(Float s) { env_pen_ = s; }
57  //! Show
58  /**
59  \todo consider using initialization mechanism
60  */
61  void show(std::ostream& out = std::cout) const;
62  static std::string get_record_header() {
63  std::stringstream ss;
64  ss << "solution index | solution filename | fit rotation | fit translation "
65  " |"
66  << " match size | match average distance | "
67  << " envelope penetration score | fitting score|"
68  << "dock rotation | dock translation |"
69  << " RMSD to reference" << std::endl;
70  return ss.str();
71  }
72 
73  protected:
74  unsigned int index_;
75  std::string sol_fn_;
76  algebra::Transformation3D fit_transformation_; // fit to map
77  algebra::Transformation3D dock_transformation_; // best geo dock to partners
78  unsigned int match_size_;
79  Float match_avg_dist_;
80  Float env_pen_;
81  Float fitting_score_;
82  Float rmsd_to_ref_;
83 };
85 
86 IMPMULTIFIT_END_NAMESPACE
87 #endif /* IMPMULTIFIT_FITTING_SOLUTION_RECORD_H */
Decorator for helping deal with a hierarchy.
Simple 3D transformation class.
Storage of a model, its restraints, constraints and particles.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Definition: value_macros.h:23
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
Simple 3D transformation class.
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:20