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
dunbrack
SingleLigandRotamerLibrary.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/dunbrack/SingleLigandRotamerLibrary.hh
11
///
12
/// @brief
13
/// @author Ian W. Davis
14
15
16
#ifndef INCLUDED_core_pack_dunbrack_SingleLigandRotamerLibrary_hh
17
#define INCLUDED_core_pack_dunbrack_SingleLigandRotamerLibrary_hh
18
19
#include <
core/pack/dunbrack/RotamerLibrary.hh
>
20
#include <
core/conformation/Residue.hh
>
21
22
#include <utility/vector1.hh>
23
24
25
namespace
core {
26
namespace
pack {
27
namespace
dunbrack {
28
29
30
class
SingleLigandRotamerLibrary
;
// fwd declaration
31
typedef
utility::pointer::owning_ptr< SingleLigandRotamerLibrary >
SingleLigandRotamerLibraryOP
;
32
typedef
utility::pointer::owning_ptr< SingleLigandRotamerLibrary const >
SingleLigandRotamerLibraryCOP
;
33
typedef
utility::pointer::access_ptr< SingleLigandRotamerLibrary >
SingleLigandRotamerLibraryAP
;
34
typedef
utility::pointer::access_ptr< SingleLigandRotamerLibrary const >
SingleLigandRotamerLibraryCAP
;
35
36
///@brief A fixed library of conformations for some residue type (doesn't have to be a ligand).
37
///@details Reads residue conformations in PDB format separated by mandatory TER records.
38
/// "Included" from a residue .params file with the PDB_ROTAMERS keyword.
39
class
SingleLigandRotamerLibrary
:
public
SingleResidueRotamerLibrary
40
{
41
//typedef utility::vector1< core::Size > Fragment; // a list of atom indices (variable len)
42
//typedef utility::vector1< Fragment > Fragments;
43
//typedef utility::vector1< core::Size > Automorphism; // a remapping of atom indices (fixed len)
44
//typedef utility::vector1< Automorphism > Automorphisms;
45
46
public
:
47
48
SingleLigandRotamerLibrary
();
49
50
virtual
~SingleLigandRotamerLibrary
();
51
52
/// @brief explicit constructor
53
SingleLigandRotamerLibrary
(
54
utility::vector1< conformation::ResidueOP >
& rotamers_in,
55
Real
ref_E_in
56
);
57
/// @brief Reads conformers from PDB-format file (must be separated by TER records!)
58
virtual
59
void
60
init_from_file
(
61
std::string
const
&
filename
,
62
chemical::ResidueTypeCOP
restype
63
);
64
65
/// @brief Adheres to the contract from SingleLigandRotamerLibrary
66
virtual
67
Real
68
rotamer_energy_deriv
(
69
conformation::Residue
const
& rsd,
70
RotamerLibraryScratchSpace
& scratch
71
)
const
;
72
73
/// @brief Adheres to the contract from SingleLigandRotamerLibrary
74
virtual
75
Real
76
rotamer_energy
(
77
conformation::Residue
const
& rsd,
78
RotamerLibraryScratchSpace
& scratch
79
)
const
;
80
81
virtual
82
Real
83
best_rotamer_energy
(
84
conformation::Residue
const
& rsd,
85
bool
curr_rotamer_only,
86
RotamerLibraryScratchSpace
& scratch
87
)
const
;
88
89
virtual
90
void
91
assign_random_rotamer_with_bias
(
92
conformation::Residue
const
&,
// rsd,
93
RotamerLibraryScratchSpace
&,
// scratch,
94
numeric::random::RandomGenerator &,
// RG,
95
ChiVector
&,
// new_chi_angles,
96
bool
//perturb_from_rotamer_center
97
)
const
{}
// stubbed out for the moment.
98
99
/// @brief Adheres to the contract from SingleLigandRotamerLibrary
100
virtual
101
void
102
fill_rotamer_vector
(
103
pose::Pose
const
& pose,
104
scoring::ScoreFunction
const
& scorefxn,
105
pack::task::PackerTask
const
& task,
106
graph::GraphCOP
,
107
chemical::ResidueTypeCOP
concrete_residue,
108
conformation::Residue
const
& existing_residue,
109
utility::vector1
<
utility::vector1< Real >
>
const
& extra_chi_steps,
110
bool
buried,
111
RotamerVector
& rotamers
112
)
const
;
113
114
//XRW_B_T1
115
/*
116
/// @brief Adheres to the contract from SingleLigandRotamerLibrary
117
virtual
118
SingleResidueRotamerLibraryOP
119
coarsify(coarse::Translator const &map) const;
120
*/
121
//XRW_E_T1
122
123
/// @brief Adheres to the contract from SingleLigandRotamerLibrary
124
virtual
125
void
126
write_to_file
( utility::io::ozstream &out )
const
;
127
128
Real
129
get_reference_energy
()
const
{
130
return
ref_energy_
;
131
}
132
133
void
set_reference_energy
(
Real
ref_E_in){
134
ref_energy_
= ref_E_in;
135
}
136
137
void
set_rotamers
(
utility::vector1< conformation::ResidueOP >
& rotamers_in ){
138
rotamers_
= rotamers_in;
139
}
140
141
utility::vector1< conformation::ResidueOP >
const
&
142
get_rotamers
()
const
{
143
return
rotamers_
;
144
}
145
146
147
148
private
:
149
150
/// @brief Fills in missing hydrogens/virtual atoms from library load
151
///
152
/// @details "missing" is the vector for atoms missing for the current "rsd"
153
// "missed" is the vector annotating which atoms have already been filled (for diagnostic output tracking)
154
void
155
fill_missing_atoms
(
utility::vector1< bool >
missing,
conformation::ResidueOP
rsd,
utility::vector1< bool >
& missed )
const
;
156
157
// Breaking the ligand into rigid fragments that would supply (putative) pharamacophores
158
// to superimpose on was a nice idea, but it breaks the packer assumption that nbr_atom doesn't move.
159
160
//void find_fragments(chemical::ResidueTypeCOP restype);
161
//void list_automorphisms(chemical::ResidueTypeCOP restype);
162
//void unique_auto_for_frags();
163
164
//void superimpose(
165
// conformation::Residue const & existing,
166
// conformation::Residue & conformer,
167
// Fragment const & frag,
168
// Automorphism const & morph
169
//) const;
170
171
private
:
172
173
utility::vector1< conformation::ResidueOP >
rotamers_
;
174
175
// A baseline reference energy applied to *all* conformers in this library,
176
// like amino acid reference energies.
177
Real
ref_energy_
;
178
179
// Breaking the ligand into rigid fragments that would supply (putative) pharamacophores
180
// to superimpose on was a nice idea, but it breaks the packer assumption that nbr_atom doesn't move.
181
182
/// A ligand with N torsions decomposes into N+1 rigid fragments,
183
/// or fewer if some consist of 2 atoms or less.
184
/// Each fragement can be used for superimposing on, possibly in multiple ways.
185
//Fragments rigid_frags_;
186
/// All the automorphisms for the ligand as a whole, shared among frags (below).
187
//Automorphisms automorphs_;
188
/// A subset of automorphs_ that reflects the *unique* automorphisms within
189
/// a particular rigid fragment. These represent different ways of
190
/// superimposing two structures using the atoms from that fragment.
191
//utility::vector1< utility::vector1 < Automorphism * > > frag_automorphs_;
192
/// Total number of automorphisms in frag_automorphs_ -- number of possible ways to superimpose
193
//Size total_superpos_;
194
195
};
// SingleLigandRotamerLibrary
196
197
198
}
// namespace dunbrack
199
}
// namespace scoring
200
}
// namespace core
201
202
#endif // INCLUDED_core_pack_dunbrack_SingleLigandRotamerLibrary_HH
Generated on Sat Jun 1 2013 11:33:30 for Rosetta 3.5 by
1.8.4