Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
scoring
methods
MembraneEnvSmoothEnergy.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 core/scoring/methods/MembraneEnvSmoothEnergy.hh
11
/// @brief Statistically derived smooth membrane environment potential class declaration
12
/// @brief and based on EnvSmoothEnergy.hh developed by Andrew Leaver-Fay, Mike Tyka and Phil Bradley
13
/// @author Vladimir Yarov-Yarovoy
14
15
#ifndef INCLUDED_core_scoring_methods_MembraneEnvSmoothEnergy_hh
16
#define INCLUDED_core_scoring_methods_MembraneEnvSmoothEnergy_hh
17
18
// Unit Headers
19
#include <
core/scoring/methods/MembraneEnvSmoothEnergy.fwd.hh
>
20
21
// Package headers
22
#include <
core/scoring/methods/ContextDependentOneBodyEnergy.hh
>
23
// AUTO-REMOVED #include <core/scoring/MembranePotential.fwd.hh>
24
25
// Project headers
26
#include <
core/chemical/AA.hh
>
27
#include <
core/conformation/Atom.fwd.hh
>
28
#include <
core/pose/Pose.fwd.hh
>
29
#include <
core/scoring/ScoreFunction.fwd.hh
>
30
31
// Utility headers
32
#include <ObjexxFCL/FArray3D.hh>
33
34
#include <utility/vector1.hh>
35
36
37
38
namespace
core {
39
namespace
scoring {
40
namespace
methods {
41
42
///
43
class
MembraneEnvSmoothEnergy
:
public
ContextDependentOneBodyEnergy
{
44
public
:
45
typedef
ContextDependentOneBodyEnergy
parent
;
46
47
public
:
48
49
///
50
MembraneEnvSmoothEnergy
();
51
52
/// clone
53
virtual
54
EnergyMethodOP
55
clone
()
const
;
56
57
/////////////////////////////////////////////////////////////////////////////
58
// scoring
59
/////////////////////////////////////////////////////////////////////////////
60
61
/// @brief computes dScore/dNumNeighbors for all residues for rapid use in later
62
/// atom derivate calculations
63
virtual
64
void
65
setup_for_scoring
(
pose::Pose
& pose,
ScoreFunction
const
& )
const
;
66
67
/// @brief causes a neighbor graph update
68
virtual
69
void
70
setup_for_derivatives
(
pose::Pose
& pose,
ScoreFunction
const
& sf)
const
;
71
72
/// @brief evaluates the one-body energy for a residue
73
virtual
74
void
75
residue_energy
(
76
conformation::Residue
const
& rsd,
77
pose::Pose
const
&,
// pose,
78
EnergyMap
&
// emap
79
)
const
;
80
81
/// @brief increments the F1 and F2 derivative vectors for an atom
82
virtual
83
void
84
eval_atom_derivative
(
85
id::AtomID
const
& atom_id,
86
pose::Pose
const
& pose,
87
kinematics::DomainMap
const
&,
88
ScoreFunction
const
&,
89
EnergyMap
const
& weights,
90
Vector
& F1,
91
Vector
& F2
92
)
const
;
93
94
/// @brief unused by the MembraneEnvSmoothEnergy class, returns 0
95
Distance
96
atomic_interaction_cutoff
()
const
;
97
98
/// @brief Tells the scoring function to maintain the TwelveANeighborGraph
99
virtual
100
void
indicate_required_context_graphs
(
utility::vector1< bool >
& context_graphs_required )
const
;
101
102
private
:
103
104
/// @brief returns the atom name for the atom used to represent the sidechain for
105
/// a particular amino acid; this atom was used to derive the statistics this potential
106
/// is based on.
107
std::string
const
&
108
representative_atom_name
(
chemical::AA
const
aa )
const
;
109
110
/// @brief convert the neighbor counts for a residue and its aa type into
111
/// a score and a score derivative.
112
void
113
calc_energy
(
114
conformation::Residue
const
& rsd,
115
pose::Pose
const
& pose,
116
Real
const
neighbor_count
,
117
chemical::AA
const
aa,
118
Real
& score,
119
Real
& dscore_dneighbor_count
120
)
const
;
121
122
/// @brief given the square distance between a representative atom and a neighbor atom,
123
/// return the neighborlyness. Ramps from 1 down to 0 over a range.
124
Real
125
sigmoidish_neighbor
(
DistanceSquared
const
sqdist )
const
;
126
127
/// @brief given a pair of atoms, one of which is a neighbor atom and the other of which
128
/// is a representative atom, and given the weighted score derivative, increments
129
/// the F1 and F2 derivatives.
130
void
131
increment_f1_f2_for_atom_pair
(
132
conformation::Atom
const
& atom1,
133
conformation::Atom
const
& atom2,
134
Real
weighted_dScore_dN,
135
Vector
& F1,
136
Vector
& F2
137
)
const
;
138
139
/////////////////////////////////////////////////////////////////////////////
140
// data
141
/////////////////////////////////////////////////////////////////////////////
142
143
private
:
144
145
mutable
utility::vector1< Real >
residue_N_
;
146
mutable
utility::vector1< Real >
residue_E_
;
147
mutable
utility::vector1< Real >
residue_dEdN_
;
148
149
ObjexxFCL::FArray3D< Real >
mem_env_log10_
;
150
virtual
151
core::Size
version
()
const
;
152
153
};
154
155
156
}
157
}
158
}
159
160
#endif
Generated on Sat Jun 1 2013 11:38:20 for Rosetta 3.5 by
1.8.4