/** * \file proteomics_em_alignment_atomic.h * \brief align proteomics graph to em density map * * Copyright 2007-2013 IMP Inventors. All rights reserved. * */ #ifndef IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H #define IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H #include #include #include #include "AlignmentParams.h" #include #include #include #include "protein_anchors_mapping_reader.h" #include #include #include #include #include IMPMULTIFIT_BEGIN_NAMESPACE //the alignment is from the em anchors to the proteomics graph // Alignments get_alignments(const AnchorData &anchor_graph, // const ProteomicsData &prot_graph) { class IMPMULTIFITEXPORT ProteomicsEMAlignmentAtomic : public base::Object { public: ProteomicsEMAlignmentAtomic( const ProteinsAnchorsSamplingSpace &mapping_data, multifit::SettingsData *asmb_data, const AlignmentParams &align_param); void align(); void add_all_restraints(); void add_states_and_filters(); void show_domino_merge_tree() const; domino::Assignments get_combinations(bool uniques=false) const; void set_density_map(em::DensityMap *dmap,float threshold) { dmap_=dmap;threshold_=threshold; } atom::Hierarchies get_molecules() const {return mhs_;} core::RigidBodies get_rigid_bodies() const {return rbs_;} /* float load_configuration(int i) { cg_->load_configuration(cg_sorted_[i].first); return cg_sorted_[i].second; }*/ //! load combination of states //!The order of the states should be the order void load_combination_of_states(const Ints &state4particles); void show_scores_header(std::ostream& ous=std::cout) const; /* void show_scores(const domino::Assignment &a, std::ostream& out=std::cout) const; */ Model * get_model() {return mdl_;} //! If set to fast EV is calculated as penetration score and Fit //! restraint is decomposed void set_fast_scoring(bool state) { fast_scoring_=state; } IMP_OBJECT_INLINE(ProteomicsEMAlignmentAtomic, {IMP_UNUSED(out);}, {}); protected: RestraintsTemp get_alignment_restraints() const; Pointer rc_; bool fast_scoring_; domino::ParticleStatesTable* set_particle_states_table(domino::SubsetFilterTables &filters); void load_atomic_molecules(); // void sort_configurations(); ProteinsAnchorsSamplingSpace mapping_data_; OwnerPointer prot_data_; Pointer dmap_; double threshold_; atom::Hierarchies mhs_; core::RigidBodies rbs_; Pointer mdl_; AlignmentParams params_; IntsLists sampled_solutions_;//instead of cg domino::Assignments sampled_assignments_;//instead of sampled_solutions //configurations sorted by score std::vector >cg_sorted_; Pointer conn_rs_; Pointer conn_rs_with_filter_; Pointer xlink_rs_; Pointer xlink_rs_with_filter_; Pointer dummy_rs_; Pointer em_rs_; Pointer ev_rs_; RestraintsTemp jt_rs_; // Pointer ev_pruned_rs_; // Pointer rog_rs_; //Pointer other_rs_;//the other restraints //Pointer fit_rs_;//the other restraints OwnerPointer all_rs_filt_; IntKey fit_state_key_,order_key_; bool restraints_set_,states_set_,filters_set_; OwnerPointer pst_; domino::SubsetFilterTables filters_; multifit::SettingsData *asmb_data_; IntPairs post_sampling_ev_pairs_; float ev_thr_; }; IMP_OBJECTS(ProteomicsEMAlignmentAtomic, ProteomicsEMAlignmentAtomics); IMPMULTIFIT_END_NAMESPACE #endif /* IMPMULTIFIT_PROTEOMICS_EM_ALIGNMENT_ATOMIC_H */