IMP  2.2.0
The Integrative Modeling Platform
proteomics_em_alignment_atomic.h
Go to the documentation of this file.
1 /**
2  * \file IMP/multifit/proteomics_em_alignment_atomic.h
3  * \brief align proteomics graph to em density map
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H
10 #define IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H
11 
15 #include "AlignmentParams.h"
16 #include <IMP/core/LeavesRefiner.h>
21 #include <IMP/em/DensityMap.h>
22 #include <IMP/multifit/multifit_config.h>
23 #include <algorithm>
24 #include <boost/scoped_ptr.hpp>
25 
26 IMPMULTIFIT_BEGIN_NAMESPACE
27 
28 //! Align proteomics graph to EM density map
29 /** The alignment is from the em anchors to the proteomics graph
30  */
31 class IMPMULTIFITEXPORT ProteomicsEMAlignmentAtomic : public base::Object {
32  public:
34  multifit::SettingsData *asmb_data,
35  const AlignmentParams &align_param);
36  void align();
37  void add_all_restraints();
38  void add_states_and_filters();
39  void show_domino_merge_tree() const;
40  domino::Assignments get_combinations(bool uniques = false) const;
41  void set_density_map(em::DensityMap *dmap, float threshold) {
42  dmap_ = dmap;
43  threshold_ = threshold;
44  }
45  atom::Hierarchies get_molecules() const { return mhs_; }
46  core::RigidBodies get_rigid_bodies() const { return rbs_; }
47  /* float load_configuration(int i) {
48  cg_->load_configuration(cg_sorted_[i].first);
49  return cg_sorted_[i].second;
50  }*/
51  //! load combination of states
52  //!The order of the states should be the order
53  void load_combination_of_states(const Ints &state4particles);
54  void show_scores_header(std::ostream &ous = std::cout) const;
55  /* void show_scores(const domino::Assignment &a,
56  std::ostream& out=std::cout) const;
57  */
58  kernel::Model *get_model() { return mdl_; }
59  //! If set to fast EV is calculated as penetration score and Fit
60  //! restraint is decomposed
61  void set_fast_scoring(bool state) { fast_scoring_ = state; }
62 
64 
65  protected:
66  kernel::RestraintsTemp get_alignment_restraints() const;
68  bool fast_scoring_;
69  domino::ParticleStatesTable *set_particle_states_table(
71  void load_atomic_molecules();
72  // void sort_configurations();
73  ProteinsAnchorsSamplingSpace mapping_data_;
76  double threshold_;
77  atom::Hierarchies mhs_;
78  core::RigidBodies rbs_;
80  AlignmentParams params_;
81  IntsLists sampled_solutions_; // instead of cg
82  domino::Assignments sampled_assignments_; // instead of sampled_solutions
83  // configurations sorted by score
84  std::vector<std::pair<int, float> > cg_sorted_;
86  base::Pointer<kernel::RestraintSet> conn_rs_with_filter_;
88  base::Pointer<kernel::RestraintSet> xlink_rs_with_filter_;
93  // base::Pointer<kernel::RestraintSet> ev_pruned_rs_;
94  // base::Pointer<kernel::RestraintSet> rog_rs_;
95  // Pointer<kernel::RestraintSet> other_rs_;//the other restraints
96  // Pointer<kernel::RestraintSet> fit_rs_;//the other restraints
98  IntKey fit_state_key_, order_key_;
99  bool restraints_set_, states_set_, filters_set_;
102  multifit::SettingsData *asmb_data_;
103  IntPairs post_sampling_ev_pairs_;
104  float ev_thr_;
105 };
107 
108 IMPMULTIFIT_END_NAMESPACE
109 
110 #endif /* IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H */
A base class for Keys.
Definition: kernel/Key.h:46
handles reading of proteomics data
A smart pointer to a ref-counted Object that is a class memeber.
Definition: base/Pointer.h:147
stores the anchors sampling space for each protein
handles reading matches between a protein and its anchors
Return the hierarchy children of a particle.
stored multifit settings data
Calculate weighted excluded volume between rigid bodies.
Align proteomics graph to EM density map.
Class for handling density maps.
Class for handling density maps.
Definition: DensityMap.h:94
stored a multifit fitting solution
Holds header data for optimization.
Definition: SettingsData.h:135
Parameters for alignments.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Common base class for heavy weight IMP objects.
Definition: base/Object.h:106
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
A beyesian infererence-based sampler.
handles reading of anchors data
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:72