Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
core::pack::interaction_graph::PDInteractionGraph Class Reference

#include <PDInteractionGraph.hh>

Inheritance diagram for core::pack::interaction_graph::PDInteractionGraph:
Inheritance graph
[legend]

Public Member Functions

 PDInteractionGraph (int num_nodes)
 main constructor: no default nor copy constructors provided. More...
 
void initialize (pack_basic::RotamerSetsBase const &rot_sets) override
 
core::PackerEnergy get_one_body_energy_for_node_state (int node, int state) override
 accessor More...
 
int get_num_aatypes () const override
 sets the number of amino acid types present. More...
 
virtual void add_edge (int node1, int node2)
 
void blanket_assign_state_0 () override
 assigns the state of all nodes in the interaction graph to their unassigned or zero states. More...
 
core::PackerEnergy set_state_for_node (int node_ind, int new_state) override
 sets the state on node node_ind to new_state More...
 
core::PackerEnergy set_network_state (ObjexxFCL::FArray1_int &node_states) override
 takes in a vector of states, one state per node, and sets the state for each of the nodes to the specified state. More...
 
void consider_substitution (int node_ind, int new_state, core::PackerEnergy &delta_energy, core::PackerEnergy &prev_energy_for_node) override
 considers altering the state of a particular node; returns the change in energy that the state substitution would produce More...
 
core::PackerEnergy commit_considered_substitution () override
 Accepts (commits) the state change previously considered in a call to consider_substitution and returns the energy of the entire graph. More...
 
core::PackerEnergy get_energy_current_state_assignment () override
 @ brief O(1) total energy report. Protected read access for derived classes. More...
 
int get_edge_memory_usage () const override
 older scheme for memory accounting – replace this asap More...
 
void print_current_state_assignment () const override
 outputs the current state for each node, useful for debugging More...
 
void set_errorfull_deltaE_threshold (core::PackerEnergy) override
 Set an error threshold. More...
 
unsigned int count_static_memory () const override
 
unsigned int count_dynamic_memory () const override
 
core::PackerEnergy get_energy_sum_for_vertex_group (int group_id) override
 a user may define subsets of the vertex set for which they would like to know the internal energy sum. More...
 
core::PackerEnergy get_weighted_energy (ObjexxFCL::FArray2D< core::PackerEnergy > const &weights) const
 
core::PackerEnergy set_network_state (ObjexxFCL::FArray1_int &node_states, ObjexxFCL::FArray2D< core::PackerEnergy > const &weights)
 
virtual void consider_substitution (int node_ind, int new_state, core::PackerEnergy &deltaE_unweighted, core::PackerEnergy &prevE_unweighted, core::PackerEnergy &deltaE_weighted, core::PackerEnergy &prevE_weighted, ObjexxFCL::FArray2D< core::PackerEnergy > const &weights)
 
virtual core::PackerEnergy commit_considered_substitution (ObjexxFCL::FArray2D< core::PackerEnergy > const &weights)
 
bool aa_submatrix_energies_retrievable () const override
 Override the InteractionGraphBase class's implementation of this function to return 'true'. More...
 
int aatype_for_node_state (int node_ind, int node_state) const override
 
ObjexxFCL::FArray2D
< core::PackerEnergy
get_aa_submatrix_energies_for_edge (int node1, int node2, int node1aa, int node2aa) const override
 
- Public Member Functions inherited from core::pack::interaction_graph::PrecomputedPairEnergiesInteractionGraph
 ~PrecomputedPairEnergiesInteractionGraph () override
 
 PrecomputedPairEnergiesInteractionGraph (int num_nodes)
 
void add_to_two_body_energies_for_edge (int node1, int node2, ObjexxFCL::FArray2< core::PackerEnergy > const &res_res_energy_array, bool const use_threadsafe_method=false)
 interface for PrecomputedPairEnergiesEdge::add_to_two_body_energies More...
 
void add_to_two_body_energies_for_edge (int node1, int node2, int state_node1, int state_node2, core::PackerEnergy const two_body_energy)
 interface to PrecomputedPairEnergiesEdge::add_to_two_body_energies More...
 
void set_two_body_energy_for_edge (int node1, int node2, int state_node1, int state_node2, core::PackerEnergy const two_body_energy)
 interface to PDEdge::set_two_body_energy More...
 
void clear_two_body_energy_for_edge (int node1, int node2, int state_node1, int state_node2)
 interface to PDEdge::clear_two_body_energy More...
 
void set_twobody_energies_multithreaded (std::pair< core::Size, core::Size > const &nodes, std::pair< core::pack::rotamer_set::RotamerSetCOP, core::pack::rotamer_set::RotamerSetCOP > rotsets, core::pose::Pose const &pose, core::scoring::ScoreFunction const &sfxn, basic::thread_manager::RosettaThreadAssignmentInfo const &thread_info, bool const finalize_edges, core::conformation::symmetry::SymmetryInfoCOP symminfo, std::pair< core::Size, core::Size > const &resids, bool const do_orient, bool const symmetric_swap)
 Given two nodes, compute the energy of all interacting rotamers and add those energies to the edge between the nodes. This is suitable for use in a multithreaded context. More...
 
void add_longrange_twobody_energies_multithreaded (std::pair< core::Size, core::Size > const &nodes, std::pair< core::pack::rotamer_set::RotamerSetCOP, core::pack::rotamer_set::RotamerSetCOP > rotsets, core::pose::Pose const &pose, core::scoring::methods::LongRangeTwoBodyEnergyCOP lr_energy, core::scoring::ScoreFunction const &sfxn, basic::thread_manager::RosettaThreadAssignmentInfo const &thread_info, bool const finalize_edges, core::conformation::symmetry::SymmetryInfoCOP symminfo, std::pair< core::Size, core::Size > const &resids, bool const do_orient, bool const symmetric_swap)
 Given two nodes and a long-range energy, compute the long-range energy of all interacting rotamers and add those energies to the edge between the nodes. This is suitable for use in a multithreaded context. More...
 
virtual void declare_edge_energies_final (int node1, int node2, bool const use_threadsafe_lookup=false)
 call this if you're done storing energies in an edge - it will reduce the memory usage for that edge if possible More...
 
- Public Member Functions inherited from core::pack::interaction_graph::FixedBBInteractionGraph
 ~FixedBBInteractionGraph () override
 
 FixedBBInteractionGraph (int num_nodes)
 
void set_sparse_aa_info_for_edge (int node1, int node2, ObjexxFCL::FArray2_bool const &sparse_conn_info)
 interface to PDEdge::set_sparse_aa_info More...
 
bool get_sparse_aa_info_for_edge (int node1, int node2, int node1aa, int node2aa)
 returns true if node1aa and node2aa are amino acid neighbors More...
 
void force_aa_neighbors_for_edge (int node1, int node2, int node1aa, int node2aa)
 interface to FixedBBEdge::force_aa_neighbors More...
 
void force_all_aa_neighbors_for_edge (int node1, int node2)
 interface to PDEdge::force_aa_neighbors More...
 
virtual core::PackerEnergy get_two_body_energy_for_edge (int node1, int node2, int state_node1, int state_node2) const
 interface to FixedBBEdge::get_two_body_energy More...
 
- Public Member Functions inherited from core::pack::interaction_graph::InteractionGraphBase
 ~InteractionGraphBase () override
 destructor More...
 
 InteractionGraphBase (int num_nodes)
 main constructor More...
 
int get_num_nodes () const override
 Get the number of nodes in the graph. More...
 
void set_num_states_for_node (int node, int num_states)
 sets the number of states for a node of a particular index NEW REQUIREMENT: Nodes must have their num-states set in ascending order by node index; that is, node 1 must go first, node 2 next, and so on. More...
 
int get_num_states_for_node (int node) const override
 returns the number of states for a particular node More...
 
int get_num_total_states () const override
 Get the total number of states. More...
 
void add_edge (int node1, int node2)
 creates a new edge between nodes index1 and index2. Nodes do not have to be listed in order More...
 
bool get_edge_exists (int node1, int node2) const
 returns true if an edge between node1 and node2 exists More...
 
void drop_all_edges_for_node (int node)
 deletes all edges adjacent to the node specified More...
 
void print_vertices () const
 calls print() on each of the nodes in the graph More...
 
virtual void print () const
 
void output_connectivity (std::ostream &os) const
 writes out a list of all the edges in the graph More...
 
void output_dimacs (std::ostream &os) const
 writes out a connectivity description of the graph in the famous dimacs format. (where the first column "DIMACS:" should be sed'ed out) More...
 
void set_onebody_energies_multithreaded (core::Size const node_index, core::pack::rotamer_set::RotamerSetCOP rotset, core::pose::Pose const &pose, core::scoring::ScoreFunction const &sfxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, basic::thread_manager::RosettaThreadAssignmentInfo const &thread_assignments)
 Compute and store the onebody energy for all rotamers at a position. Safe for a multithreaded context. More...
 
void prepare_graph_for_simulated_annealing () override
 iterate across edges and nodes and allow them to prepare for simulated annealing More...
 
void set_edge_weight (int node1, int node2, Real edge_weight)
 
Real get_edge_weight (int node1, int node2) const
 
bool any_vertex_state_unassigned () const override
 Returns true if any node in the graph is in state 0, the unassigned state. More...
 
void add_to_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &one_body_energies)
 takes one FArray of energies – one energy for each state for each node More...
 
void update_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &old_energy1b, ObjexxFCL::FArray1< core::PackerEnergy > &new_energy1b)
 decrements the one body energies by the values held in old_energy1b, increments the one body energies by the values held in new_energy1b, and copies new_energy1b into old_energy1b. More...
 
void zero_one_body_energies_for_node (int node)
 
void add_to_nodes_one_body_energy (int node_ind, utility::vector1< core::PackerEnergy > const &one_body_energies)
 
void add_to_nodes_one_body_energy (int node_ind, ObjexxFCL::FArray1< core::PackerEnergy > const &one_body_energies)
 
void add_to_nodes_one_body_energy (int node_ind, int state_id, core::PackerEnergy const one_body_energy)
 interface to PrecomputedPairEnergiesNode::add_to_nodes_one_body_energy More...
 
void set_number_of_energy_sum_vertex_groups (int num_groups)
 a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.) More...
 
void set_vertex_member_of_group (int vertex, int group)
 a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.) More...
 
void print_vertex_groups ()
 
int count_connected_components_and_initialize_vertex_groups ()
 makes a depth first traversal of the graph, counting the number of connected components, and initializes the vertex group memberships to reflect the connected components. Returns the number of connected components in the graph. More...
 
void note_vertex_reached (int node_index)
 marks a vertex as belonging to the connected component currently being traversed in the depth first traversal. More...
 
bool vertex_already_reached (int node_index)
 used by class NodeBase during the depth-first traversal to determine the number of connected components in the graph. returns true if the dft has already reached the node. More...
 
bool get_vertex_member_of_energy_sum_group (int node_index, int group_id)
 
virtual unsigned int getTotalMemoryUsage () const
 
void reset_edge_list_iterator_for_node (int node_index) const
 set the Graph's (single) edge list iterator to the beginning of the edge list for a particular node More...
 
void increment_edge_list_iterator () const
 increment the (single) edge list iterator to the next element More...
 
bool edge_list_iterator_at_end () const
 test: have we arrived at the edge list end? More...
 
EdgeBase const & get_edge () const
 return a const reference to an edge pointed at by the list iterator More...
 
virtual void declare_all_edge_energies_final ()
 Iterates over all edges and calls declare_energies_final() on all of them. Takes O(N) time, where N is the number of edges. More...
 
EdgeBase const * find_edge (int node1, int node2, bool const use_threadsafe_lookup=false) const
 Find an edge and return a const pointer to it. More...
 
EdgeBasefind_edge (int node1, int node2, bool const use_threadsafe_lookup=false)
 Find an edge and return a nonconst pointer to it. More...
 
NodeBaseget_node (int index) const
 
int get_num_edges () const
 
std::list< EdgeBase * >::iterator get_edge_list_begin ()
 
std::list< EdgeBase * >::iterator get_edge_list_end ()
 
std::list< EdgeBase * >
::const_iterator 
get_edge_list_begin () const
 
std::list< EdgeBase * >
::const_iterator 
get_edge_list_end () const
 
- Public Member Functions inherited from core::pack::interaction_graph::AnnealableGraphBase
 AnnealableGraphBase ()
 Constructor. More...
 
 AnnealableGraphBase (AnnealableGraphBase const &src)
 Copy constructor. More...
 
 ~AnnealableGraphBase () override
 Destructor. More...
 
virtual void clean_up_after_packing (core::pose::Pose &pose)
 Provide the opportunity for an AnnealableGraph to clean up cached data in the pose or inside itself after packing. More...
 

Protected Member Functions

virtual unsigned int getMemoryUsageInBytes () const
 
NodeBasecreate_new_node (int node_index, int num_states) override
 factory method that instantiates a PDNode. More...
 
EdgeBasecreate_new_edge (int index1, int index2) override
 factory method that instantiates a PDEdge More...
 
core::PackerEnergy get_energy_PD_current_state_assignment ()
 
void update_internal_energy_totals ()
 removes numerical drift that can accumulate over the course of many state assignment changes within simulated annealing More...
 
PDNodeget_pd_node (int index) const
 
PDEdge const * get_pd_edge (int node1, int node2) const
 
PDEdgeget_pd_edge (int node1, int node2)
 
- Protected Member Functions inherited from core::pack::interaction_graph::FixedBBInteractionGraph
FixedBBNode const * get_fixedbb_node (int node_index) const
 Downcasts. More...
 
FixedBBNodeget_fixedbb_node (int node_index)
 
FixedBBEdge const * get_fixedbb_edge (int node1, int node2) const
 
FixedBBEdgeget_fixedbb_edge (int node1, int node2)
 
- Protected Member Functions inherited from core::pack::interaction_graph::InteractionGraphBase
void clean_up_edges_marked_for_deletion ()
 Remove those edges that have marked themselves for deletion. More...
 
void drop_edge (std::list< EdgeBase * >::iterator edge)
 removes edge from edge list at iterator iter More...
 
int get_node_state_offset (int index) const
 
bool mine (EdgeBase const *edge) const
 

Private Member Functions

 PDInteractionGraph ()
 
 PDInteractionGraph (PDInteractionGraph const &)
 
PDInteractionGraphoperator= (PDInteractionGraph const &)
 

Private Attributes

int num_aa_types_
 
int num_commits_since_last_update_
 
core::PackerEnergy total_energy_current_state_assignment_
 
core::PackerEnergy total_energy_alternate_state_assignment_
 
int node_considering_alt_state_
 
int num_nodes_in_file_
 
int num_file_aa_types_
 
ObjexxFCL::FArray1D_int file_node_2_instance_node_
 
ObjexxFCL::FArray1D_int instance_node_2_file_node_
 
ObjexxFCL::FArray1D
< ObjexxFCL::FArray1D_int > 
aa_types_for_states_on_file_nodes_
 
ObjexxFCL::FArray1D
< ObjexxFCL::FArray1D_int > 
num_file_states_for_aa_for_node_
 

Static Private Attributes

static const int COMMIT_LIMIT_BETWEEN_UPDATES = 1024
 

Constructor & Destructor Documentation

core::pack::interaction_graph::PDInteractionGraph::PDInteractionGraph ( int  num_nodes)

main constructor: no default nor copy constructors provided.

Parameters
num_nodes- [in] - the number of nodes in this graph
core::pack::interaction_graph::PDInteractionGraph::PDInteractionGraph ( )
private
core::pack::interaction_graph::PDInteractionGraph::PDInteractionGraph ( PDInteractionGraph const &  )
private

Member Function Documentation

bool core::pack::interaction_graph::PDInteractionGraph::aa_submatrix_energies_retrievable ( ) const
overridevirtual

Override the InteractionGraphBase class's implementation of this function to return 'true'.

PDInteractionGraph will return aa submatrices as requested.

Reimplemented from core::pack::interaction_graph::FixedBBInteractionGraph.

int core::pack::interaction_graph::PDInteractionGraph::aatype_for_node_state ( int  node_ind,
int  node_state 
) const
overridevirtual

Derived classes wishing to respond to the get_aa_submatrix_energies_for_edge must implement this function as well, which allows the mapping between states and their on-node amino-acid index (which may very well represent something other than the index of the enumeration element for the rotamer's "aa()").

Reimplemented from core::pack::interaction_graph::FixedBBInteractionGraph.

References core::pack::interaction_graph::PDNode::aatype_for_state(), and get_pd_node().

void core::pack::interaction_graph::PDInteractionGraph::add_edge ( int  node1,
int  node2 
)
virtual
void core::pack::interaction_graph::PDInteractionGraph::blanket_assign_state_0 ( )
overridevirtual
float core::pack::interaction_graph::PDInteractionGraph::commit_considered_substitution ( )
overridevirtual

Accepts (commits) the state change previously considered in a call to consider_substitution and returns the energy of the entire graph.

to avoid too much numerical drift from accumulating, the bookkeeping arrays are updated once every 2^10 state commits

Implements core::pack::interaction_graph::InteractionGraphBase.

References COMMIT_LIMIT_BETWEEN_UPDATES, get_pd_node(), node_considering_alt_state_, num_commits_since_last_update_, total_energy_alternate_state_assignment_, total_energy_current_state_assignment_, and update_internal_energy_totals().

Referenced by commit_considered_substitution().

float core::pack::interaction_graph::PDInteractionGraph::commit_considered_substitution ( ObjexxFCL::FArray2D< core::PackerEnergy > const &  weights)
virtual
void core::pack::interaction_graph::PDInteractionGraph::consider_substitution ( int  node_ind,
int  new_state,
core::PackerEnergy delta_energy,
core::PackerEnergy prev_energy_for_node 
)
overridevirtual

considers altering the state of a particular node; returns the change in energy that the state substitution would produce

To avoid too much numerical drift from accumulating, the bookkeeping arrays are updated once every 2^10 state commits

Parameters
node_ind- [in] - the index of the node considering a state change
new_state- [in] - the new state that node is considering
alt_total_energy- [out] - the total network energy produced under the new state
delta_energy- [out] - the change in energy produced under the substitution
prev_energy_for_node- [out] - the sum of the one and two body energies for this node under the current state assignment

Implements core::pack::interaction_graph::InteractionGraphBase.

void core::pack::interaction_graph::PDInteractionGraph::consider_substitution ( int  node_ind,
int  new_state,
core::PackerEnergy deltaE_unweighted,
core::PackerEnergy prevE_unweighted,
core::PackerEnergy deltaE_weighted,
core::PackerEnergy prevE_weighted,
ObjexxFCL::FArray2D< core::PackerEnergy > const &  weights 
)
virtual
unsigned int core::pack::interaction_graph::PDInteractionGraph::count_dynamic_memory ( ) const
overridevirtual
unsigned int core::pack::interaction_graph::PDInteractionGraph::count_static_memory ( ) const
overridevirtual
EdgeBase * core::pack::interaction_graph::PDInteractionGraph::create_new_edge ( int  index1,
int  index2 
)
overrideprotectedvirtual

factory method that instantiates a PDEdge

Parameters
index1- [in] - the smaller-indexed node this edge is incident upon
index2- [in] - the larger-indexed node this edge is incident upon

Implements core::pack::interaction_graph::InteractionGraphBase.

NodeBase * core::pack::interaction_graph::PDInteractionGraph::create_new_node ( int  node_index,
int  num_states 
)
overrideprotectedvirtual

factory method that instantiates a PDNode.

Parameters
node_index- [in] - the index of the node being created
num_states- [in] - the total number of states for the new node

Implements core::pack::interaction_graph::InteractionGraphBase.

ObjexxFCL::FArray2D< core::PackerEnergy > core::pack::interaction_graph::PDInteractionGraph::get_aa_submatrix_energies_for_edge ( int  node1,
int  node2,
int  node1aa,
int  node2aa 
) const
overridevirtual

Do not call this function unless it is implemented in the derived class, as should be indicated by the "aa_submatrix_energies_retrivable" method.

Reimplemented from core::pack::interaction_graph::FixedBBInteractionGraph.

References core::pack::interaction_graph::PDEdge::get_aa_submatrix_energies(), and get_pd_edge().

int core::pack::interaction_graph::PDInteractionGraph::get_edge_memory_usage ( ) const
overridevirtual

older scheme for memory accounting – replace this asap

returns the number of floats used in all edge two-body energy tables

Implements core::pack::interaction_graph::InteractionGraphBase.

References core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin(), core::pack::interaction_graph::InteractionGraphBase::get_edge_list_end(), and core::simple_metrics::metrics::sum.

float core::pack::interaction_graph::PDInteractionGraph::get_energy_current_state_assignment ( )
overridevirtual

@ brief O(1) total energy report. Protected read access for derived classes.

removes all accumulated numerical drift and returns the energy for the current state assignment.

Implements core::pack::interaction_graph::InteractionGraphBase.

References total_energy_current_state_assignment_, and update_internal_energy_totals().

float core::pack::interaction_graph::PDInteractionGraph::get_energy_PD_current_state_assignment ( )
protected
float core::pack::interaction_graph::PDInteractionGraph::get_energy_sum_for_vertex_group ( int  group_id)
overridevirtual

a user may define subsets of the vertex set for which they would like to know the internal energy sum.

For instance in a graph with 6 vertices,{a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.). ask the graph for the energies of the induced subgraph defined by a particular group.

Parameters
group_id- [in] - the groups for which you're interested in retrieving energies of the induced subgraph

Implements core::pack::interaction_graph::InteractionGraphBase.

References core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin(), core::pack::interaction_graph::InteractionGraphBase::get_edge_list_end(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), core::pack::interaction_graph::PDNode::get_one_body_energy_current_state(), get_pd_node(), and core::pack::interaction_graph::InteractionGraphBase::get_vertex_member_of_energy_sum_group().

int core::pack::interaction_graph::PDInteractionGraph::get_num_aatypes ( ) const
overridevirtual

sets the number of amino acid types present.

returns the number of different amino acid types

The actual meaning of the integers used to represent amino acid types is not important, rather each state is labeled as being of some amino acid type. The amino acid types mean little more than equivalence classes; two states are either in the same equivalence class or they are in different ones. this function should be called once and only once

Parameters
num_aa_types- [in] - the number of amino acid types

Implements core::pack::interaction_graph::FixedBBInteractionGraph.

References num_aa_types_.

float core::pack::interaction_graph::PDInteractionGraph::get_one_body_energy_for_node_state ( int  node,
int  state 
)
overridevirtual
PDEdge const* core::pack::interaction_graph::PDInteractionGraph::get_pd_edge ( int  node1,
int  node2 
) const
inlineprotected
PDEdge* core::pack::interaction_graph::PDInteractionGraph::get_pd_edge ( int  node1,
int  node2 
)
inlineprotected
PDNode* core::pack::interaction_graph::PDInteractionGraph::get_pd_node ( int  index) const
inlineprotected
float core::pack::interaction_graph::PDInteractionGraph::get_weighted_energy ( ObjexxFCL::FArray2D< core::PackerEnergy > const &  weights) const
unsigned int core::pack::interaction_graph::PDInteractionGraph::getMemoryUsageInBytes ( ) const
protectedvirtual

References PDInteractionGraph().

void core::pack::interaction_graph::PDInteractionGraph::initialize ( pack_basic::RotamerSetsBase const &  rot_sets)
overridevirtual
PDInteractionGraph& core::pack::interaction_graph::PDInteractionGraph::operator= ( PDInteractionGraph const &  )
private
void core::pack::interaction_graph::PDInteractionGraph::print_current_state_assignment ( ) const
overridevirtual
void core::pack::interaction_graph::PDInteractionGraph::set_errorfull_deltaE_threshold ( core::PackerEnergy  deltaE)
inlineoverridevirtual

Set an error threshold.

Must be implemented by derived classes.

Implements core::pack::interaction_graph::InteractionGraphBase.

float core::pack::interaction_graph::PDInteractionGraph::set_network_state ( ObjexxFCL::FArray1_int &  node_states)
overridevirtual

takes in a vector of states, one state per node, and sets the state for each of the nodes to the specified state.

also calls "update internal energy totals" to undo any numerical noise accumulated during the transition.

Parameters
node_states- [in] - array of states, one for each node.

Implements core::pack::interaction_graph::InteractionGraphBase.

References core::pack::interaction_graph::PDNode::assign_state(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), get_pd_node(), total_energy_current_state_assignment_, and update_internal_energy_totals().

Referenced by set_network_state().

float core::pack::interaction_graph::PDInteractionGraph::set_network_state ( ObjexxFCL::FArray1_int &  node_states,
ObjexxFCL::FArray2D< core::PackerEnergy > const &  weights 
)
float core::pack::interaction_graph::PDInteractionGraph::set_state_for_node ( int  node_ind,
int  new_state 
)
overridevirtual

sets the state on node node_ind to new_state

Parameters
node_ind- [in] - the index of the node in question
new_state- [in] - the new state the node is being assigned to

Implements core::pack::interaction_graph::InteractionGraphBase.

References core::pack::interaction_graph::PDNode::assign_state(), get_pd_node(), total_energy_current_state_assignment_, and update_internal_energy_totals().

void core::pack::interaction_graph::PDInteractionGraph::update_internal_energy_totals ( )
protected

removes numerical drift that can accumulate over the course of many state assignment changes within simulated annealing

Iterates across nodes and then edges to look-up the energies for the current state assignmnet removing any numerical drift which accumulated in the member variable total_energy_current_state_assignment_.

References core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin(), core::pack::interaction_graph::InteractionGraphBase::get_edge_list_end(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), get_pd_node(), num_commits_since_last_update_, and total_energy_current_state_assignment_.

Referenced by commit_considered_substitution(), get_energy_current_state_assignment(), set_network_state(), and set_state_for_node().

Member Data Documentation

ObjexxFCL::FArray1D< ObjexxFCL::FArray1D_int > core::pack::interaction_graph::PDInteractionGraph::aa_types_for_states_on_file_nodes_
private
const int core::pack::interaction_graph::PDInteractionGraph::COMMIT_LIMIT_BETWEEN_UPDATES = 1024
staticprivate
ObjexxFCL::FArray1D_int core::pack::interaction_graph::PDInteractionGraph::file_node_2_instance_node_
private
ObjexxFCL::FArray1D_int core::pack::interaction_graph::PDInteractionGraph::instance_node_2_file_node_
private
int core::pack::interaction_graph::PDInteractionGraph::node_considering_alt_state_
private
int core::pack::interaction_graph::PDInteractionGraph::num_aa_types_
private

Referenced by get_num_aatypes(), and initialize().

int core::pack::interaction_graph::PDInteractionGraph::num_commits_since_last_update_
private
int core::pack::interaction_graph::PDInteractionGraph::num_file_aa_types_
private
ObjexxFCL::FArray1D< ObjexxFCL::FArray1D_int > core::pack::interaction_graph::PDInteractionGraph::num_file_states_for_aa_for_node_
private
int core::pack::interaction_graph::PDInteractionGraph::num_nodes_in_file_
private
core::PackerEnergy core::pack::interaction_graph::PDInteractionGraph::total_energy_alternate_state_assignment_
private
core::PackerEnergy core::pack::interaction_graph::PDInteractionGraph::total_energy_current_state_assignment_
private

The documentation for this class was generated from the following files: