IMP  2.0.1
The Integrative Modeling Platform
ensemble_analysis.h
Go to the documentation of this file.
1 /**
2  * \file ensemble_analysis.h
3  *
4  * Copyright 2007-2013 IMP Inventors. All rights reserved.
5  */
6 
7 #ifndef IMPMULTIFIT_ENSEMBLE_ANALYSIS_H
8 #define IMPMULTIFIT_ENSEMBLE_ANALYSIS_H
9 
10 #include <IMP/multifit/multifit_config.h>
14 #include <IMP/atom/distance.h>
16 #include <IMP/base_types.h>
18 
19 IMPMULTIFIT_BEGIN_NAMESPACE
20 
21 class IMPMULTIFITEXPORT Ensemble : public base::Object {
22 public:
23  void load_combination(Ints fit_comb);
24  void unload_combination(Ints fit_comb);
25  void add_component_and_fits(
26  atom::Hierarchy mh,
28  atom::Hierarchies get_molecules() const {return mhs_;}
29  core::RigidBodies get_rigid_bodies() const {return rbs_;}
30  float get_rmsd(const core::XYZs &second_xyz) const {
31  return atom::get_rmsd(second_xyz,xyz_);}
32  Ensemble(multifit::SettingsData *sd,
33  const ProteinsAnchorsSamplingSpace &mapping_data);
34  std::vector<Floats> score_by_restraints(Restraints rs,
35  const IntsList &combinations);
36 
37  IMP_OBJECT_INLINE(Ensemble, {IMP_UNUSED(out);}, {});
38 
39 private:
40  atom::Hierarchies mhs_;
41  core::RigidBodies rbs_;
42  core::XYZs xyz_;
43  std::vector<multifit::FittingSolutionRecords> fits_;
45  ProteinsAnchorsSamplingSpace mapping_data_;
46  multifit::SettingsData *sd_;
47 };
49 
50 IMPMULTIFITEXPORT
51 Ensemble* load_ensemble(multifit::SettingsData *sd,Model *mdl,
52  const ProteinsAnchorsSamplingSpace &mapping_data);
53 
54 IMPMULTIFIT_END_NAMESPACE
55 
56 #endif /* IMPMULTIFIT_ENSEMBLE_ANALYSIS_H */