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
annealer
FASTERAnnealer.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/annealer/FASTERAnnealer.hh
11
/// @brief
12
/// @author Andrew Leaver-Fay (aleaverfay@gmail.com)
13
14
#ifndef INCLUDED_core_pack_annealer_FASTERAnnealer_hh
15
#define INCLUDED_core_pack_annealer_FASTERAnnealer_hh
16
17
// Unit headers
18
#include <
core/pack/annealer/FASTERAnnealer.fwd.hh
>
19
20
// Package headers
21
#include <
core/types.hh
>
22
#include <
core/pack/annealer/RotamerAssigningAnnealer.hh
>
23
#include <
core/pack/interaction_graph/FASTERInteractionGraph.fwd.hh
>
24
#include <
core/pack/rotamer_set/FixbbRotamerSets.fwd.hh
>
25
26
// Utility headers
27
#include <utility/vector0.hh>
28
29
// Objexx Headers
30
#include <ObjexxFCL/FArray1D.hh>
31
#include <ObjexxFCL/FArray2D.hh>
32
33
#include <utility/vector1.hh>
34
35
36
namespace
core {
37
namespace
pack {
38
namespace
annealer {
39
40
class
FASTERAnnealer
:
public
RotamerAssigningAnnealer
41
{
42
public
:
43
typedef
RotamerAssigningAnnealer
parent
;
44
typedef
rotamer_set::FixbbRotamerSetsCOP
FixbbRotamerSetsCOP
;
45
46
public
:
47
FASTERAnnealer
(
48
ObjexxFCL::FArray1D_int &
bestrotamer_at_seqpos
,
49
core::PackerEnergy
&
bestenergy
,
50
bool
start_with_current
,
// start simulation with current rotamers
51
interaction_graph::FASTERInteractionGraphOP
ig,
52
FixbbRotamerSetsCOP
rotamer_sets
,
53
ObjexxFCL::FArray1_int &
current_rot_index
,
54
bool
calc_rot_freq
,
55
ObjexxFCL::FArray1D< core::PackerEnergy > &
rot_freq
56
);
57
58
virtual
~FASTERAnnealer
();
59
60
void
run
();
61
62
private
:
63
void
iBR
();
64
void
trySeveral_ciBRs
();
65
void
ciBR
();
66
void
sBR
();
67
void
dBR
();
68
void
finalize_output
();
69
70
void
run_quench_cycles
();
71
72
void
reset_recent_network_state_history
();
73
void
note_current_network_state
( ObjexxFCL::FArray1_int
const
& netstate );
74
bool
stuck_in_network_state_loop
();
75
int
pick_rotamer_for_node
(
int
node );
76
int
pick_a_rotamer_for_sBR
();
77
void
shuffle_sBR_rotamers
();
78
79
int
hash_recent_history
(
int
history_index );
80
81
public
:
82
void
set_ciBR_only
(
bool
setting );
83
void
set_num_sa_trajectories
(
int
setting );
84
void
set_sa_length_scale
(
Real
setting );
85
//void set_sBR_limit( int setting ); // -1 for "run until completion"
86
private
:
87
88
interaction_graph::FASTERInteractionGraphOP
ig_
;
89
FixbbRotamerSetsCOP
rotamer_sets_
;
90
int
const
num_nodes_
;
91
92
ObjexxFCL::FArray2D_int
recent_network_state_history_
;
93
ObjexxFCL::FArray1D_int
recent_history_hash_values_
;
94
ObjexxFCL::FArray1D_int
recent_history_hash_count_
;
95
int
recent_history_head_
;
96
int
curr_in_recent_history_
;
97
bool
netstate_duplicated_
;
98
99
static
int
const
recent_history_size_
= 100;
100
static
int
const
hash_size_
= 2017;
//prime
101
102
int
progress_through_sBR_
;
103
utility::vector0< int >
sBR_rotamers_
;
104
105
bool
ciBR_only_
;
106
int
num_sa_trajectories_
;
// default of 5
107
Real
sa_inner_iterations_length_scale_
;
// default of 0.05
108
int
sBR_limit_
;
109
110
//ObjexxFCL::FArray1D_int moltenres_2_resid_;
111
//ObjexxFCL::FArray1D_int moltenres_rotoffsets_;
112
//ObjexxFCL::FArray2D_int rot_2_moltenres_;
113
114
};
115
116
}
117
}
118
}
119
120
#endif
Generated on Sat Jun 1 2013 11:33:11 for Rosetta 3.5 by
1.8.4