Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
util.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 src/core/scoring/constraints/util.hh
11 /// @brief utility functions for defining constraints. Maybe better placed in src/numeric?
12 /// @author James Thompson
13 
14 #ifndef INCLUDED_core_scoring_constraints_util_hh
15 #define INCLUDED_core_scoring_constraints_util_hh
16 
17 #include <core/types.hh>
18 
20 #include <core/pose/Pose.fwd.hh>
23 
24 #include <utility/vector1.hh>
25 
26 
27 #ifdef WIN32
28 #include <string>
29 #endif
30 
31 
32 namespace core {
33 namespace scoring {
34 namespace constraints {
35 
36 /// @brief Returns the log of the weighted value of a Gaussian distribution
37 /// evaluated with the given mean, sd, and x values. Returns zero if the
38 /// weight is less than 1e-10.
39 Real logdgaussian_deriv( Real x, Real mean, Real sd, Real weight );
40 
41 /// @brief Returns the log of the weighted value of a Gaussian distribution
42 /// evaluated with the given mean, sd, and x values. Returns zero if the
43 /// weight is less than 1e-10.
44 Real logdgaussian( Real x, Real mean, Real sd, Real weight );
45 
46 // @brief Returns the weighted value of a Gaussian distribution evaluated
47 // with the given mean, sd, and x values. Returns zero if the weight is less
48 // than 1e-10.
49 Real dgaussian( Real x, Real mean, Real sd, Real weight );
50 
51 /// @brief Returns the weighted derivative of a Gaussian distribution
52 /// evaluated with the given mean, sd, and x values. Returns zero if the
53 /// weight is less than 1e-10.
54 Real gaussian_deriv( Real x, Real mean, Real sd, Real weight );
55 
56 /// @brief Returns the weighted value of an Exponential distribution evaluated
57 /// with the given anchor, rate, and x values. Returns zero if the weight is
58 /// less than 1e-10.
59 Real dexponential( Real x, Real anchor, Real rate, Real weight );
60 
61 /// @brief Returns the weighted derivative of an Exponential distribution
62 /// evaluated with the given anchor, rate, and x values. Returns zero if the
63 /// weight is less than 1e-10.
64 Real exponential_deriv( Real x, Real anchor, Real rate, Real weight );
65 
66 /// @brief Estimates the y-value of the given x-value by interpolating between
67 /// the given points (x1,y1) and (x2,y2) by using linear interpolation between
68 /// the two points.
70  Real const x_val,
71  Real const x1,
72  Real const x2,
73  Real const y1,
74  Real const y2
75 );
76 
77 //return only those constraints that evaluate with less than threshold on
78 //the filter_pose
79 void
81  ConstraintCOPs const & target_list,
82  ConstraintCOPs & culled_list,
83  core::pose::Pose const & filter_pose,
84  core::Real threshold = 1.0
85 );
86 
87 ////////// Centroid constraints
88 
90 //// @brief add constraints if specified by user.
92 //// @brief add constraints if specified by user.
95 );
96 //// @brief add constraints if specified by user.
99 );
100 
101 ////////// FA constraints
102 
104 
105 /// @brief add constraints if specified by user.
107 
108 /// @brief add constraints if specified by user.
110  core::scoring::ScoreFunction & scorefxn_
111 );
112 
113 /// @brief add constraints if specified by user.
115  core::pose::Pose & pose,
116  core::scoring::ScoreFunction & scorefxn_
117 );
118 
119 /// @brief handy function for tethering pose to starting coordinates.
120 void
121 add_coordinate_constraints( core::pose::Pose & pose, core::Real const coord_sdev = 10.0 );
122 
123 /// @brief call this on your constraints if you have MultiConstraints before running Abinitio -- already done by broker-type application
125 
126 ///@brief combine constraints randomly into Ambiguous constraints...
128  ConstraintCOPs& in,
129  core::Size combine_ratio,
130  utility::vector1< bool > exclude_res,
132 );
133 
134 ///@brief have at most one constraint per residue pair...
135 void skip_redundant_constraints( ConstraintCOPs& in, core::Size total_residue, core::Size influence_width = 1 );
136 void drop_constraints( ConstraintCOPs& in, core::Real drop_rate );
137 
138 } // namespace constraints
139 } // namespace scoring
140 } // namespace core
141 
142 #endif