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
conformation
RotamerSetBase.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/conformation/RotamerSetBase.hh
11
/// @brief Abstract base class for a class that holds disembodied Residues (ie not contained within a Pose) as Rotamers
12
/// @author Andrew Leaver-Fay (aleaverfay@gmail.com)
13
14
15
#ifndef INCLUDED_core_conformation_RotamerSetBase_hh
16
#define INCLUDED_core_conformation_RotamerSetBase_hh
17
18
// Unit Headers
19
#include <
core/conformation/RotamerSetBase.fwd.hh
>
20
21
// Package Headers
22
#include <
core/types.hh
>
23
#include <
core/conformation/AbstractRotamerTrie.fwd.hh
>
24
#include <
core/conformation/Residue.fwd.hh
>
25
26
#ifdef WIN32
27
#include <
core/conformation/AbstractRotamerTrie.hh
>
// WIN32 INCLUDE
28
#include <
core/conformation/Residue.hh
>
// WIN32 INCLUDE
29
#endif
30
31
#include <basic/datacache/BasicDataCache.fwd.hh>
32
33
// Utility headers
34
#include <utility/pointer/ReferenceCount.hh>
35
#include <utility/vector1.fwd.hh>
36
37
namespace
core {
38
namespace
conformation {
39
40
class
RotamerSetBase
:
public
utility::pointer::ReferenceCount
41
{
42
private
:
// typedefs
43
typedef
utility::pointer::ReferenceCount
parent
;
44
45
public
:
// typedefs
46
typedef
basic::datacache::BasicDataCache
BasicDataCache
;
47
typedef
basic::datacache::BasicDataCacheOP
BasicDataCacheOP
;
48
49
public
:
50
RotamerSetBase
();
51
virtual
~RotamerSetBase
();
52
53
virtual
54
Size
55
get_n_residue_types
()
const
= 0;
56
57
virtual
58
Size
59
get_residue_type_begin
(
Size
which_restype )
const
= 0;
60
61
virtual
62
Size
63
get_n_rotamers_for_residue_type
(
Size
which_restype )
const
= 0;
64
65
66
/// @brief Rotamers i to i+j of all the same residue type are grouped together.
67
/// This function returns the index of the residue type in a contiguous block
68
/// of rotamers. E.g. rotamers 100 to 120 might all be lysine rotamers, and might
69
/// be the 8th residue type, with the first 7 residue types spanning rotamers 1 to 99.
70
/// If new lysine rotamers are appended to the end of the rotamer set, they are
71
/// considered to be in a separate residue type block. Lysine rotamers 200 to 210 might
72
/// be block 15 while lysine rotamers 100 to 120 are still block 7.
73
virtual
74
Size
75
get_residue_type_index_for_rotamer
(
Size
which_rotamer )
const
= 0;
76
77
virtual
78
Size
79
num_rotamers
()
const
= 0;
80
81
virtual
82
Size
resid
()
const
= 0;
83
84
virtual
85
conformation::ResidueCOP
86
rotamer
(
Size
rot_id )
const
= 0;
87
88
/// @brief mutatable access to a single rotamer in the set.
89
virtual
90
conformation::ResidueOP
91
nonconst_rotamer
(
Size
rot_id ) = 0;
92
93
virtual
94
void
95
store_trie
(
Size
method_enum_id,
AbstractRotamerTrieOP
trie ) = 0;
96
97
virtual
98
AbstractRotamerTrieCOP
99
get_trie
(
Size
method_enum_id )
const
= 0;
100
101
/// @brief BasicDataCache indexed by enum in core/pack/rotamer_set/RotamerSetCacheableDataType.hh
102
BasicDataCache
&
103
data
();
104
105
/// @brief BasicDataCache indexed by enum in core/pack/rotamer_set/RotamerSetCacheableDataType.hh
106
BasicDataCache
const
&
107
data
()
const
;
108
109
110
private
:
111
// deny use of the copy constructor (no pass-by-value)
112
RotamerSetBase
(
RotamerSetBase
const
& );
113
114
/// @brief BasicDataCache indexed by enum in core/pack/rotamer_set/RotamerSetCacheableDataType.hh
115
/// @warning DataCache must always be initialized with the number of cacheable
116
/// data types -- see the last enum entry.
117
BasicDataCacheOP
data_cache_
;
118
119
};
120
121
122
}
// namespace conformation
123
}
// namespace core
124
125
#endif
Generated on Sat Jun 1 2013 11:32:28 for Rosetta 3.5 by
1.8.4