IMP  2.0.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-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPMULTIFIT_FITTING_SOLUTION_RECORD_H
10 #define IMPMULTIFIT_FITTING_SOLUTION_RECORD_H
11 
12 
14 #include <IMP/Model.h>
15 #include <IMP/core/Hierarchy.h>
16 #include <IMP/multifit/multifit_config.h>
17 IMPMULTIFIT_BEGIN_NAMESPACE
18 
19 //! A fitting solution record
20 /**
21 \todo discuss with Daniel - should it be an object ?
22  */
23 class IMPMULTIFITEXPORT FittingSolutionRecord {
24  public:
25  //! Constructor
26  /**
27  \todo consider using better initialization
28  */
30  inline unsigned int get_index() const {return index_;}
31  void set_index(unsigned int new_ind) {index_ = new_ind;}
32  inline std::string get_solution_filename() const {return sol_fn_;}
33  void set_solution_filename(std::string sol_fn) {sol_fn_=sol_fn;}
34  inline algebra::Transformation3D get_fit_transformation() const
35  {return fit_transformation_;}
36  void set_fit_transformation(algebra::Transformation3D t)
37  {fit_transformation_=t;}
38  inline unsigned int get_match_size() const {return match_size_;}
39  void set_match_size(unsigned int match_size) {match_size_=match_size;}
40  inline Float get_match_average_distance() const {return match_avg_dist_;}
41  void set_match_average_distance(Float match_avg_dist) {
42  match_avg_dist_=match_avg_dist;}
43  inline Float get_fitting_score() const {return fitting_score_;}
44  void set_fitting_score(Float fit_score) {
45  fitting_score_=fit_score;}
46  inline Float get_rmsd_to_reference() const{return rmsd_to_ref_;}
47  void set_rmsd_to_reference(Float rmsd_to_ref) {
48  rmsd_to_ref_=rmsd_to_ref;}
49  inline algebra::Transformation3D get_dock_transformation() const
50  {return dock_transformation_;}
51  void set_dock_transformation(algebra::Transformation3D t)
52  {dock_transformation_=t;}
53  inline Float get_envelope_penetration_score() const {return env_pen_;}
54  void set_envelope_penetration_score(Float s){env_pen_=s;}
55  //! Show
56  /**
57  \todo consider using initialization mechanism
58  */
59  void show(std::ostream& out=std::cout) const;
60  static std::string get_record_header() {
61  std::stringstream ss;
62  ss<<"solution index | solution filename | fit rotation | fit translation |"
63  <<" match size | match average distance | "
64  <<" envelope penetration score | fitting score|"<<
65  "dock rotation | dock translation |"
66  <<" RMSD to reference"<<std::endl;
67  return ss.str();
68  }
69  protected:
70  unsigned int index_;
71  std::string sol_fn_;
72  algebra::Transformation3D fit_transformation_; //fit to map
73  algebra::Transformation3D dock_transformation_;//best geo dock to partners
74  unsigned int match_size_;
75  Float match_avg_dist_;
76  Float env_pen_;
77  Float fitting_score_;
78  Float rmsd_to_ref_;
79 };
81 
82 IMPMULTIFIT_END_NAMESPACE
83 #endif /* IMPMULTIFIT_FITTING_SOLUTION_RECORD_H */