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
pack
rotamer_set
RotamerSetOperation.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/pack/rotamer_set/RotamerSetOperation.hh
11
/// @brief rotamer set operation class
12
/// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
13
14
15
#ifndef INCLUDED_core_pack_rotamer_set_RotamerSetOperation_hh
16
#define INCLUDED_core_pack_rotamer_set_RotamerSetOperation_hh
17
18
// Unit Headers
19
#include <
core/pack/rotamer_set/RotamerSetOperation.fwd.hh
>
20
21
// Package Headers
22
#include <
core/pack/rotamer_set/RotamerSet.fwd.hh
>
23
#include <
core/graph/Graph.fwd.hh
>
24
#include <
core/pack/task/PackerTask.fwd.hh
>
25
#include <
core/pose/Pose.fwd.hh
>
26
#include <
core/scoring/ScoreFunction.fwd.hh
>
27
#include <
core/pack/dunbrack/ChiSet.fwd.hh
>
28
29
// Utility Headers
30
#include <utility/pointer/ReferenceCount.hh>
31
32
#include <
core/types.hh
>
33
#include <utility/vector1.hh>
34
35
36
namespace
core {
37
namespace
pack {
38
namespace
rotamer_set {
39
40
/// @brief RotamerSetOperations are able to modify the contents of a RotamerSet
41
/// within the packer immediately after rotamer creation.
42
///
43
/// @li They are handed into the packer through a packer task; each ResidueLevelTask
44
/// keeps its own list of rotamer set operations.
45
///
46
/// @li Each RotamerSet, within the build_rotamers() method will iterate across
47
/// the RotamerSetOperation objects, and call alter_rotamer_set on each
48
/// element in the ResidueLevelTask's list of rotamer_set_operations.
49
///
50
/// @li RotamerSetOperations are visited in the order in which they are appended
51
/// to the ResidueLevelTasks's operation list.
52
///
53
/// @li RotamerSetOperations are unable to correlate changes to rotamer sets across
54
/// multiple rotamer sets -- they have access to only a single RotamerSet object
55
/// in their alter_rotamer_set operations. For correlated alterations to rotamer
56
/// sets, the (as of yet undefined) RotamerSetsOperation class should be used.
57
58
class
RotamerOperation
:
public
utility::pointer::ReferenceCount
59
{
60
public
:
61
RotamerOperation
();
62
virtual
~RotamerOperation
();
63
64
virtual
65
bool
66
operator()
(
67
conformation::ResidueOP
rotamer,
68
pose::Pose
const
& pose,
69
scoring::ScoreFunction
const
& sfxn,
70
pack::task::ResidueLevelTask
const
& rtask,
71
graph::GraphCOP
packer_neighbor_graph,
72
pack::dunbrack::ChiSetOP
chi_set
73
) = 0;
74
75
};
76
77
class
RotamerSetOperation
:
public
utility::pointer::ReferenceCount
78
{
79
public
:
80
RotamerSetOperation
();
81
virtual
~RotamerSetOperation
();
82
83
virtual
84
RotamerSetOperationOP
85
clone
()
const
= 0;
86
87
virtual
88
void
89
alter_rotamer_set
(
90
pose::Pose
const
& pose,
91
scoring::ScoreFunction
const
& sfxn,
92
task::PackerTask
const
& ptask,
93
graph::GraphCOP
packer_neighbor_graph,
94
RotamerSet
& rotamer_set
95
) = 0;
96
97
virtual
98
Real
99
increase_packer_residue_radius
(
100
pose::Pose
const
& pose,
101
task::PackerTaskCOP
the_task,
102
core::Size
residue_in
103
)
const
;
104
105
#ifdef USEBOOSTSERIALIZE
106
private
:
107
friend
class
boost::serialization::access;
108
109
template
<
class
Archive>
110
void
serialize(Archive & ar,
const
unsigned
int
version) {
111
}
112
#endif
113
};
114
115
}
116
}
117
}
118
119
#endif
Generated on Sat Jun 1 2013 11:33:45 for Rosetta 3.5 by
1.8.4