Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DistanceScoreMover.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file CrossPeakList.hh
11 /// @author Oliver Lange
12 
13 #ifndef INCLUDED_protocols_noesy_assign_DistanceScoreMover_HH
14 #define INCLUDED_protocols_noesy_assign_DistanceScoreMover_HH
15 
16 
17 // Unit Headers
19 
20 // Package Headers
21 // AUTO-REMOVED #include <protocols/noesy_assign/CrossPeakList.hh>
24 
25 // Project Headers
26 #include <protocols/moves/Mover.hh>
27 #include <core/types.hh>
28 #include <core/pose/Pose.fwd.hh>
29 
30 // Utility headers
31 #include <utility/exit.hh>
32 #include <utility/vector1.hh>
33 #include <utility/pointer/ReferenceCount.hh>
34 
36 
37 #ifdef WIN32
39 #endif
40 
41 namespace protocols {
42 namespace noesy_assign {
43 
44 ///@brief maintains a list of constraints_ (each PeakAssignment yields one) and peak_constraints_ ( each
45 /// cross peak with multiple assignments creates one AmbiguousNMRConstraint ).
46 /// the DistanceMover (prepare scoring and apply directly interacts with the Dk term in CrossPeak (set_decoy_compatibility)
47 
48 
50 public:
52 
54 
55  ///@brief set decoy_compatibility in PeakAssignments to zero
56  ///
57  void prepare_scoring( bool use_for_calibration = false );
58 
59  ///@brief sum up decoy_compatibility score in PeakAssignments
60  void apply( core::pose::Pose& pose );
61 
62  // void find_violators_with_individual_dist_cutoff( PoseVector poses );
63  ///@brief normalize decoy_compatibility of PeakAssignments by count_decoys_
64  void finalize_scoring() const;
65 
66  //core::Real compute_violation_percentage() const;
67  //void eliminate_violated_constraints() const;
68 
69  virtual std::string get_name() const { return "DistanceScoreMover"; }
70 
71  void set_dcut( core::Real setting ) {
72  dcut_ = setting;
73  }
74 
75 private:
77  core::Size count_decoys_; //how many decoys for scoring
81 
82 
83  //use this if we have a distance cutoff for each individual peak, based on the structural variation at that point.
88  // typedef utility::vector1< core::scoring::constraints::AmbiguousNMRConstraintOP > PeakConstraints;
89  // PeakConstraints peak_constraints_;
90 
91 
92  ///@brief count for each peak how many decoys have violated
95 
96  ///@brief cumulative sum of peak_violation_counts_;
98 
99  // typedef utility::vector1< core::Real > VectorReal;
101 
102 
103  core::Size active_peaks_; //count nr peaks that have assignment with sufficient Vk
104 
105  core::Real final_dist_power_; //eta in Cyana-paper
106 
107  bool used_for_calibration_; //if used_for_calibration --> filter peaks and do not update decoy_compatibility score
109 };
110 
111 }
112 }
113 
114 #endif
115