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
protocols
ligand_docking
Rotate.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/task/ResfileReader.hh
11
/// @brief header of classes for resfile options
12
/// @author Gordon Lemmon
13
14
#ifndef INCLUDED_protocols_ligand_docking_Rotate_hh
15
#define INCLUDED_protocols_ligand_docking_Rotate_hh
16
17
// Unit Headers
18
#include <
protocols/rigid/RigidBodyMover.fwd.hh
>
19
#include <
protocols/ligand_docking/DistributionMap.hh
>
20
#include <
protocols/moves/Mover.hh
>
21
22
//// Scripter Headers
23
#include <utility/tag/Tag.fwd.hh>
24
#include <
protocols/moves/DataMap.fwd.hh
>
25
#include <
protocols/filters/Filter.fwd.hh
>
26
27
//// Scoring grid headers
28
// AUTO-REMOVED #include <protocols/qsar/scoring_grid/GridManager.fwd.hh>
29
30
//// Project Headers
31
#include <
core/kinematics/Jump.hh
>
32
// AUTO-REMOVED #include <core/pose/Pose.hh>
33
#include <
core/grid/CartGrid.fwd.hh
>
34
35
#include <
core/conformation/Residue.fwd.hh
>
36
#include <utility/vector1.hh>
37
38
39
40
///////////////////////////////////////////////////////////////////////
41
42
namespace
protocols {
43
namespace
ligand_docking {
44
45
struct
Rotate_info
{
// including default values
46
std::string
chain
;
47
core::Size
chain_id
;
// looking this up from chain is slow so we store it
48
core::Size
jump_id
;
// looking this up from chain is slow so we store it
49
Distribution
distribution
;
50
core::Size
degrees
;
51
core::Size
cycles
;
52
utility::vector1<core::Size>
tag_along_chains
;
// must be one residue per chain, eg water, metal
53
utility::vector1<core::Size>
tag_along_jumps
;
54
utility::vector1<core::Size>
tag_along_residues
;
55
};
56
57
struct
Ligand_info
{
58
core::conformation::ResidueCOPs
residues
;
// multiple per main ligand
59
core::conformation::ResidueCOPs
tag_along_residues
;
// one per tag_along_chain
60
int
atr
;
61
int
rep
;
62
core::kinematics::Jump
jump
;
63
Ligand_info
();
64
Ligand_info
(
core::conformation::ResidueCOPs
const
residues
,
int
atr
,
int
rep
);
65
Ligand_info
(
core::conformation::ResidueCOPs
const
residues
, std::pair<int,int> scores,
core::kinematics::Jump
jump
);
66
bool
operator<
(
Ligand_info
const
ligand_info)
const
;
67
bool
operator<(std::pair<int,int>
const
scores)
const
;
68
core::conformation::ResidueCOPs
const
&
get_residues
()
const
;
69
};
70
71
class
Rotate
:
public
protocols::moves::Mover
72
{
73
public
:
74
Rotate
();
75
Rotate
(
Rotate_info
rotate_info);
76
virtual
~Rotate
();
77
Rotate
(
Rotate
const
& that);
78
79
virtual
protocols::moves::MoverOP
clone
()
const
;
80
virtual
protocols::moves::MoverOP
fresh_instance
()
const
;
81
virtual
std::string
get_name
()
const
;
82
83
void
parse_my_tag
(
84
utility::tag::TagPtr
const
tag,
85
protocols::moves::DataMap
&,
86
protocols::filters::Filters_map
const
&,
87
protocols::moves::Movers_map
const
&,
88
core::pose::Pose
const
&
89
);
90
91
void
apply
(
core::pose::Pose
& pose);
92
93
private
:
94
void
rotate_ligand
(
95
utility::pointer::owning_ptr
<
core::grid::CartGrid<int>
>
const
& grid,
96
core::pose::Pose
& pose
97
);
98
99
void
rotate_ligand
(
core::pose::Pose
& pose);
100
101
///@brief These should have repulsive and attractive scores under the threshold
102
utility::vector1< Ligand_info>
create_random_rotations
(
103
utility::pointer::owning_ptr
<
core::grid::CartGrid<int>
>
const
& grid,
104
protocols::rigid::RigidBodyMoverOP
const
mover,
105
core::pose::Pose
& pose,
106
core::Size
chain_begin
107
)
const
;
108
109
// utility::vector1<Ligand_info> create_random_rotations(
110
// protocols::rigid::RigidBodyMoverOP const ,
111
// core::Size const begin,
112
// core::pose::Pose & pose) const;
113
114
Ligand_info
create_random_rotation
(
115
utility::pointer::owning_ptr
<
core::grid::CartGrid<int>
>
const
& grid,
116
protocols::rigid::RigidBodyMoverOP
const
mover,
117
core::Vector
const
center,
118
core::Size
const
begin,
119
core::Size
const
end
,
120
core::pose::Pose
& local_pose
121
)
const
;
122
/*
123
Ligand_info create_random_rotation(
124
protocols::rigid::RigidBodyMoverOP const mover,
125
core::Vector const center,
126
core::Size const begin,
127
core::Size const end,
128
core::pose::Pose & local_pose) const;
129
*/
130
Rotate_info
rotate_info_
;
131
};
// class Rotate
132
133
/// Convenience Functions for use with Rotate
134
135
bool
check_score
(
136
Ligand_info
const
ligand,
137
core::Size
const
heavy_atom_number
138
);
139
140
bool
check_RMSD
(
141
Ligand_info
const
ligand,
142
core::Size
const
heavy_atom_number,
143
utility::vector1< Ligand_info>
const
& ligands
144
);
145
146
void
apply_rotate
(
147
protocols::rigid::RigidBodyMoverOP
mover,
148
core::pose::Pose
& pose,
149
core::Vector
const
& center,
150
core::Size
jump_id,
151
utility::vector1<core::Size>
tag_along_chains
152
);
153
154
void
add_ligand_conditionally
(
155
Ligand_info
const
& ligand_info,
156
utility::vector1< Ligand_info>
& ligands,
157
core::Size
const
heavy_atom_number
158
);
159
160
}
//namespace ligand_docking
161
}
//namespace protocols
162
163
#endif
Generated on Sat Jun 1 2013 11:56:15 for Rosetta 3.5 by
1.8.4