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
ShortRangeTwoBodyEnergy.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/ShortRangeTwoBodyEnergy.hh
11
/// @brief Short Range Two Body Energy Method base class declaration
12
/// @author Andrew Leaver-Fay
13
14
15
#ifndef INCLUDED_core_scoring_methods_ShortRangeTwoBodyEnergy_hh
16
#define INCLUDED_core_scoring_methods_ShortRangeTwoBodyEnergy_hh
17
18
#include <
core/scoring/methods/TwoBodyEnergy.hh
>
19
#include <
core/scoring/ScoreFunction.fwd.hh
>
20
21
// Project headers
22
#include <
core/pose/Pose.fwd.hh
>
23
24
#include <utility/vector1.hh>
25
26
27
28
namespace
core {
29
namespace
scoring {
30
namespace
methods {
31
32
class
ShortRangeTwoBodyEnergy
:
public
TwoBodyEnergy
33
{
34
public
:
35
typedef
TwoBodyEnergy
parent
;
36
37
public
:
38
39
/// @brief Constructor with EnergyMethodCreator to provide to the EnergyMethod
40
/// grandparent the list of the ScoreTypes this EnergyMethod is responsible for
41
/// computing
42
ShortRangeTwoBodyEnergy
(
EnergyMethodCreatorOP
);
43
44
virtual
~ShortRangeTwoBodyEnergy
();
45
46
47
/// @brief how far apart must two heavy atoms be to have a zero interaction energy?
48
///
49
/// @details If hydrogen atoms interact at the same range as heavy atoms, then
50
/// this distance should build-in a 2 * max-bound-h-distance-cutoff buffer.
51
/// There is an improper mixing here between run-time aquired chemical knowledge
52
/// (max-bound-h-distance-cutoff) and compile time aquired scoring knowledge
53
/// (max atom cutoff); this could be resolved by adding a boolean
54
/// uses_hydrogen_interaction_distance() to the SRTBEnergy class along with
55
/// a method of the ChemicalManager max_bound_h_distance_cutoff().
56
virtual
57
Distance
58
atomic_interaction_cutoff
()
const
= 0;
59
60
61
/// @brief A derived class should return true for this function if it implements its own
62
/// versions of the backbone_backbone_energy, backbone_sidechain_energy and
63
/// sidechain_sidechain_energy functions. The default sidechain_sidechain_energy implemented
64
/// by the TwoBodyEnergy base class calls residue_pair_energy. If the derived class implements its own
65
/// versions of these functions, then calling code may avoid calling it on pairs of residues
66
/// that are "provably distant" based on a pair of bounding spheres for a sidechains and
67
/// backbones and this method's atomic_interaction_cutoff energy method.
68
virtual
69
bool
70
divides_backbone_and_sidechain_energetics
()
const
;
71
72
73
/// @brief Batch computation of rotamer pair energies. Need not be overriden in
74
/// derived class -- by default, iterates over all pairs of rotamers,
75
/// and calls derived class's residue_pair_energy method. Since short range rotamer pairs
76
/// may not need calculation, the default method looks at blocks of residue type pairs
77
/// and only calls the residue_pair_energy method if the rotamer pairs are within range
78
virtual
79
void
80
evaluate_rotamer_pair_energies
(
81
conformation::RotamerSetBase
const
& set1,
82
conformation::RotamerSetBase
const
& set2,
83
pose::Pose
const
& pose,
84
ScoreFunction
const
& sfxn,
85
EnergyMap
const
& weights,
86
ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
87
)
const
;
88
89
90
/// @brief Batch computation of rotamer/background energies. Need not be overriden
91
/// in derived class -- by default, iterates over all rotamers in the set, and calls
92
/// derived class's residue_pair_energy method for each one against the background rotamer
93
/// Since short range rotamer pairs may not need calculation, the default method
94
/// looks at blocks of residue type pairs and only calls the residue_pair_energy method
95
/// if the rotamer pairs are within range
96
virtual
97
void
98
evaluate_rotamer_background_energies
(
99
conformation::RotamerSetBase
const
& set,
100
conformation::Residue
const
& residue,
101
pose::Pose
const
& pose,
102
ScoreFunction
const
& sfxn,
103
EnergyMap
const
& weights,
104
utility::vector1< core::PackerEnergy >
& energy_vector
105
)
const
;
106
107
/// @brief Batch computation of rotamer/background energies. Need not be overriden
108
/// in derived class -- by default, iterates over all rotamers in the set, and calls
109
/// derived class's residue_pair_energy method for each one against the background rotamer
110
/// Since short range rotamer pairs may not need calculation, the default method
111
/// looks at blocks of residue type pairs and only calls the residue_pair_energy method
112
/// if the rotamer pairs are within range
113
virtual
114
void
115
evaluate_rotamer_background_energy_maps
(
116
conformation::RotamerSetBase
const
& set,
117
conformation::Residue
const
& residue,
118
pose::Pose
const
& pose,
119
ScoreFunction
const
& sfxn,
120
EnergyMap
const
& weights,
121
utility::vector1< EnergyMap >
& emaps
122
)
const
;
123
124
125
};
126
127
128
}
129
}
130
}
131
132
#endif
Generated on Sat Jun 1 2013 11:39:10 for Rosetta 3.5 by
1.8.4