|
Rosetta 3.5
|
#include <DensePDInteractionGraph.hh>


Public Member Functions | |
| DensePDInteractionGraph (int num_nodes) | |
| main constructor: no default nor copy constructors provided. More... | |
| virtual void | initialize (rotamer_set::RotamerSetsBase const &rot_sets) |
| The DensePDIG only needs to know how many states each node has. This function causes the downstream instantiation of the DensePDNodes. More... | |
| virtual core::PackerEnergy | get_one_body_energy_for_node_state (int node, int state) |
| returns the one body energy for a particular state on a node More... | |
| virtual int | get_num_aatypes () const |
| virtual void | blanket_assign_state_0 () |
| assigns the state of all nodes in the interaction graph to their unassigned or zero states. More... | |
| virtual core::PackerEnergy | set_state_for_node (int node_ind, int new_state) |
| sets the state on node node_ind to new_state More... | |
| virtual core::PackerEnergy | set_network_state (ObjexxFCL::FArray1_int &node_states) |
| takes in a vector of states, one state per node, and sets the state for each of the nodes to the specified state. More... | |
| virtual void | consider_substitution (int node_ind, int new_state, core::PackerEnergy &delta_energy, core::PackerEnergy &prev_energy_for_node) |
| considers altering the state of a particular node; returns the change in energy that the state substitution would produce More... | |
| virtual core::PackerEnergy | commit_considered_substitution () |
| Accepts (commits) the state change previously considered in a call to consider_substitution and returns the energy of the entire graph. More... | |
| virtual core::PackerEnergy | get_energy_current_state_assignment () |
| removes all accumulated numerical drift and returns the energy for the current state assignment. More... | |
| virtual int | get_edge_memory_usage () const |
| returns the number of floats used in all edge two-body energy tables More... | |
| virtual void | print_current_state_assignment () const |
| outputs the current state for each node, useful for debugging More... | |
| virtual void | set_errorfull_deltaE_threshold (core::PackerEnergy) |
| virtual core::PackerEnergy | get_energy_sum_for_vertex_group (int group_id) |
| a user may define subsets of the vertex set for which they would like to know the internal energy sum. More... | |
| virtual unsigned int | count_static_memory () const |
| returns the amount of static memory allocated for a single DensePDInteractionGraph. Does not account for any of the edges or nodes that the graph contains: that part of the algorithm is implemented by the InteractionGraphBase class. More... | |
| virtual unsigned int | count_dynamic_memory () const |
| returns the amount of dynamic memory allocated for a single DensePDInteractionGraph and recurses on the parent class. Does not account for any of the edges or nodes that the graph contains: that part of the algorithm is implemented by the InteractionGraphBase class. More... | |
| virtual bool | aa_submatrix_energies_retrievable () const |
| Override the InteractionGraphBase class's implementation of this function to return 'true'. More... | |
| virtual int | aatype_for_node_state (int node_ind, int node_state) const |
| virtual ObjexxFCL::FArray2D < core::PackerEnergy > | get_aa_submatrix_energies_for_edge (int node1, int node2, int node1aa, int node2aa) const |
| void | swap_edge_energies (int node1, int node2, ObjexxFCL::FArray2D< core::PackerEnergy > &new_edge_table) |
| Swap the contents of the edge pair-energy table with the contents in the new_edge_table. More... | |
Public Member Functions inherited from core::pack::interaction_graph::PrecomputedPairEnergiesInteractionGraph | |
| virtual | ~PrecomputedPairEnergiesInteractionGraph () |
| 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) |
| 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... | |
| virtual void | declare_edge_energies_final (int node1, int node2) |
| 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 | |
| virtual | ~FixedBBInteractionGraph () |
| 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 | |
| virtual | ~InteractionGraphBase () |
| destructor More... | |
| InteractionGraphBase (int num_nodes) | |
| main constructor More... | |
| virtual int | get_num_nodes_v () const |
| int | get_num_nodes () const |
| 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 |
| returns the number of states for a particular node More... | |
| int | get_num_total_states () const |
| 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) |
| 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... | |
| virtual void | prepare_for_simulated_annealing () |
| 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 |
| 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... | |
| EdgeBase const * | find_edge (int node1, int node2) const |
| returns the edge connecting node1 and node2 More... | |
| EdgeBase * | find_edge (int node1, int node2) |
| NodeBase * | get_node (int index) const |
| int | get_num_edges () const |
| std::list< EdgeBase * >::iterator | get_edge_list_begin () |
| std::list< EdgeBase * > ::const_iterator | get_edge_list_begin () const |
| std::list< EdgeBase * > ::const_iterator | get_edge_list_end () const |
Protected Member Functions | |
| virtual NodeBase * | create_new_node (int node_index, int num_states) |
| factory method that instantiates a DensePDNode. More... | |
| virtual EdgeBase * | create_new_edge (int index1, int index2) |
| factory method that instantiates a DensePDEdge More... | |
| void | update_internal_energy_totals () |
| removes numerical drift that can accumulate over the course of many state assignment changes within simulated annealing More... | |
| DensePDNode * | get_dpd_node (int index) const |
| DensePDEdge const * | get_dpd_edge (int node1, int node2) const |
| DensePDEdge * | get_dpd_edge (int node1, int node2) |
Private Member Functions | |
| DensePDInteractionGraph () | |
| DensePDInteractionGraph (DensePDInteractionGraph const &) | |
| DensePDInteractionGraph & | operator= (DensePDInteractionGraph const &) |
Static Private Attributes | |
| static const int | COMMIT_LIMIT_BETWEEN_UPDATES = 1024 |
Definition at line 261 of file DensePDInteractionGraph.hh.
| core::pack::interaction_graph::DensePDInteractionGraph::DensePDInteractionGraph | ( | int | num_nodes) |
main constructor: no default nor copy constructors provided.
| num_nodes | - [in] - the number of nodes in this graph |
Definition at line 656 of file DensePDInteractionGraph.cc.
|
private |
Referenced by count_static_memory().
|
private |
|
virtual |
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.
Definition at line 904 of file DensePDInteractionGraph.cc.
|
virtual |
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.
Definition at line 909 of file DensePDInteractionGraph.cc.
|
virtual |
assigns the state of all nodes in the interaction graph to their unassigned or zero states.
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 685 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDNode::assign_zero_state(), get_dpd_node(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), and total_energy_current_state_assignment_.
|
virtual |
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.
Definition at line 759 of file DensePDInteractionGraph.cc.
References COMMIT_LIMIT_BETWEEN_UPDATES, get_dpd_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().
|
virtual |
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
| 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.
Definition at line 737 of file DensePDInteractionGraph.cc.
|
virtual |
returns the amount of dynamic memory allocated for a single DensePDInteractionGraph and recurses on the parent class. Does not account for any of the edges or nodes that the graph contains: that part of the algorithm is implemented by the InteractionGraphBase class.
Reimplemented from core::pack::interaction_graph::InteractionGraphBase.
Definition at line 838 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::InteractionGraphBase::count_dynamic_memory().
|
virtual |
returns the amount of static memory allocated for a single DensePDInteractionGraph. Does not account for any of the edges or nodes that the graph contains: that part of the algorithm is implemented by the InteractionGraphBase class.
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 828 of file DensePDInteractionGraph.cc.
References DensePDInteractionGraph().
|
protectedvirtual |
factory method that instantiates a DensePDEdge
| 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.
Definition at line 945 of file DensePDInteractionGraph.cc.
|
protectedvirtual |
factory method that instantiates a DensePDNode.
| 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.
Definition at line 934 of file DensePDInteractionGraph.cc.
|
virtual |
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.
Definition at line 918 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDEdge::get_aa_submatrix_energies(), and get_dpd_edge().
|
inlineprotected |
Definition at line 347 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::InteractionGraphBase::find_edge().
Referenced by get_aa_submatrix_energies_for_edge(), and swap_edge_energies().
|
inlineprotected |
Definition at line 353 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::InteractionGraphBase::find_edge().
|
inlineprotected |
Definition at line 341 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::InteractionGraphBase::get_node().
Referenced by blanket_assign_state_0(), commit_considered_substitution(), get_energy_sum_for_vertex_group(), get_one_body_energy_for_node_state(), print_current_state_assignment(), set_network_state(), set_state_for_node(), and update_internal_energy_totals().
|
virtual |
returns the number of floats used in all edge two-body energy tables
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 814 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin(), and core::pack::interaction_graph::InteractionGraphBase::get_edge_list_end().
|
virtual |
removes all accumulated numerical drift and returns the energy for the current state assignment.
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 774 of file DensePDInteractionGraph.cc.
References total_energy_current_state_assignment_, and update_internal_energy_totals().
|
virtual |
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.
| group_id | - [in] - the groups for which you're interested in retrieving energies of the induced subgraph |
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 880 of file DensePDInteractionGraph.cc.
References get_dpd_node(), 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::DensePDNode::get_one_body_energy_current_state(), and core::pack::interaction_graph::InteractionGraphBase::get_vertex_member_of_energy_sum_group().
|
inlinevirtual |
Implements core::pack::interaction_graph::FixedBBInteractionGraph.
Definition at line 270 of file DensePDInteractionGraph.hh.
|
virtual |
returns the one body energy for a particular state on a node
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 678 of file DensePDInteractionGraph.cc.
References get_dpd_node(), and core::pack::interaction_graph::DensePDNode::get_one_body_energy().
|
virtual |
The DensePDIG only needs to know how many states each node has. This function causes the downstream instantiation of the DensePDNodes.
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 667 of file DensePDInteractionGraph.cc.
References core::pack::rotamer_set::RotamerSets::nmoltenres(), core::pack::rotamer_set::RotamerSets::rotamer_set_for_moltenresidue(), and core::pack::interaction_graph::InteractionGraphBase::set_num_states_for_node().
|
private |
|
virtual |
outputs the current state for each node, useful for debugging
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 854 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDNode::get_current_state(), get_dpd_node(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), and core::pack::interaction_graph::DensePDNode::print_internal_energies().
|
inlinevirtual |
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 295 of file DensePDInteractionGraph.hh.
|
virtual |
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.
| node_states | - [in] - array of states, one for each node. |
Implements core::pack::interaction_graph::InteractionGraphBase.
Definition at line 713 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDNode::assign_state(), get_dpd_node(), core::pack::interaction_graph::InteractionGraphBase::get_num_nodes(), total_energy_current_state_assignment_, and update_internal_energy_totals().
|
virtual |
sets the state on node node_ind to new_state
| 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.
Definition at line 699 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDNode::assign_state(), get_dpd_node(), total_energy_current_state_assignment_, and update_internal_energy_totals().
| void core::pack::interaction_graph::DensePDInteractionGraph::swap_edge_energies | ( | int | node1, |
| int | node2, | ||
| ObjexxFCL::FArray2D< core::PackerEnergy > & | new_edge_table | ||
| ) |
Swap the contents of the edge pair-energy table with the contents in the new_edge_table.
Definition at line 844 of file DensePDInteractionGraph.cc.
References get_dpd_edge(), and core::pack::interaction_graph::DensePDEdge::swap_edge_energies().
|
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_.
Definition at line 785 of file DensePDInteractionGraph.cc.
References get_dpd_node(), 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(), 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().
|
staticprivate |
Definition at line 364 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution().
|
private |
Definition at line 362 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution().
|
private |
Definition at line 359 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), and update_internal_energy_totals().
|
private |
Definition at line 361 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution().
|
private |
Definition at line 360 of file DensePDInteractionGraph.hh.
Referenced by blanket_assign_state_0(), commit_considered_substitution(), get_energy_current_state_assignment(), set_network_state(), set_state_for_node(), and update_internal_energy_totals().
1.8.4