The double lazy interaction graph is primarily useful for multistate design where one is interested in knowing at particular edge, all of the rotamer pair energies for a particular amino acid assignment. The double lazy interaction graph is lazy in two ways: first, in delaying the computation of rotamer pair energies until they are needed, and second, in delaying the allocation of memory for rotamer pair energies until that memory is needed. The DLIG will do one of two things once it allocates space for a block of rotamer pairs: 1) In its standard operating behavior, it will leave that space allocated until the graph is destroyed, which means that the energies it stores in that block will never be computed more than once; or 2) In its alternate operating behavior, the LMIG will deallocate some of those blocks to make sure that it never uses more than some maximum amount of memory on RPEs.
More...
|
| DoubleLazyInteractionGraph (int numNodes) |
|
| ~DoubleLazyInteractionGraph () override |
|
void | initialize (pack_basic::RotamerSetsBase const &rot_sets) override |
|
void | prepare_graph_for_simulated_annealing () override |
| Utility signal. More...
|
|
void | blanket_assign_state_0 () override |
| State initialization. More...
|
|
core::PackerEnergy | set_state_for_node (int node_ind, int new_state) override |
|
core::PackerEnergy | set_network_state (ObjexxFCL::FArray1_int &node_states) override |
|
void | consider_substitution (int node_ind, int new_state, core::PackerEnergy &delta_energy, core::PackerEnergy &prev_energy_for_node) override |
|
core::PackerEnergy | commit_considered_substitution () override |
|
core::PackerEnergy | get_energy_current_state_assignment () override |
|
int | get_edge_memory_usage () const override |
|
void | print_current_state_assignment () const override |
|
void | set_errorfull_deltaE_threshold (core::PackerEnergy deltaE) override |
|
core::PackerEnergy | get_energy_sum_for_vertex_group (int group_id) override |
|
bool | aa_submatrix_energies_retrievable () const override |
| Override the FixedBBInteractionGraph 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 |
|
unsigned int | count_static_memory () const override |
|
unsigned int | count_dynamic_memory () const override |
|
void | set_memory_max_for_rpes (int setting) |
|
void | note_submatrix_added (int edge_index, int submatrix_index, int submatrix_size) const |
| For use only from the DoubleLazyEdge; the DLE will report to the DLIG after it adds a submatrix of rotamer pair energies (that is, all the RPEs for a particular pair of amino acids) that it has done so; the DLIG monitors the access and the memory usage of the various submatrices in the graph, and may, during this function call, request that various edges (possibly the one invoking this function!) drop some of their submatrices. More...
|
|
void | note_submatrix_accessed (int edge_index, int submatrix_index) const |
| For use only from the DoubleLazyEdge; the DLE will report to the DLIG after it a rotamer pair energy submatrix has been read from. The DLIG keeps track of how recently each submatrix has been accessed to ensure that, when it does ask an edge to drop a submatrix, the submatrix being dropped is the one that was accessed most distantly in the past. More...
|
|
| OnTheFlyInteractionGraph (int num_nodes) |
|
| ~OnTheFlyInteractionGraph () override |
|
void | initialize (pack_basic::RotamerSetsBase const &rot_sets) override |
|
int | get_num_aatypes () const override |
|
bool | distinguish_backbone_and_sidechain_for_node (int node) const |
|
void | distinguish_backbone_and_sidechain_for_node (int node, bool setting) |
|
void | set_score_function (ScoreFunction const &) |
|
void | set_pose (Pose const &) |
|
Pose const & | pose () const |
|
Pose & | non_const_pose () |
| debugging only – modify the pose during simulated annealing, if you're so inclined More...
|
|
ScoreFunction const & | score_function () const |
|
void | zero_one_body_energy_for_node_state (int node_ind, int state) |
|
void | add_to_one_body_energy_for_node_state (int node_ind, int state, core::PackerEnergy one_body_energy) |
|
void | set_one_body_energy_for_node_state (int node_ind, int state, core::PackerEnergy one_body_energy) |
|
core::PackerEnergy | get_one_body_energy_for_node_state (int node, int state) override |
|
void | set_sparse_aa_info_for_edge (int node1, int node2, ObjexxFCL::FArray2_bool const &sparse_conn_info) |
|
void | reset_rpe_calculations_count () |
|
Size | get_num_rpe_calculations_count () const |
|
void | note_rpe_calculated () const |
| to be called by owned OTF node only More...
|
|
void | set_ProCorrection_values_for_edge (int node1, int node2, int node_not_neccessarily_proline, int state, core::PackerEnergy bb_regbb_E, core::PackerEnergy bb_probb_E, core::PackerEnergy sc_regbb_E, core::PackerEnergy sc_probb_E) |
|
void | set_GlyCorrection_values_for_edge (int node1, int node2, int node_not_neccessarily_glycine, int state, core::PackerEnergy bb_regbb_E, core::PackerEnergy bb_glybb_E, core::PackerEnergy sc_regbb_E, core::PackerEnergy sc_glybb_E) |
|
void | note_short_range_interactions_exist_for_edge (int node1, int node2) |
|
void | note_long_range_interactions_exist_for_edge (int node1, int node2) |
|
unsigned int | count_dynamic_memory () const override |
|
| ~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...
|
|
| ~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...
|
|
EdgeBase * | find_edge (int node1, int node2, bool const use_threadsafe_lookup=false) |
| Find an edge and return a nonconst pointer to it. More...
|
|
NodeBase * | get_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 |
|
| 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...
|
|
The double lazy interaction graph is primarily useful for multistate design where one is interested in knowing at particular edge, all of the rotamer pair energies for a particular amino acid assignment. The double lazy interaction graph is lazy in two ways: first, in delaying the computation of rotamer pair energies until they are needed, and second, in delaying the allocation of memory for rotamer pair energies until that memory is needed. The DLIG will do one of two things once it allocates space for a block of rotamer pairs: 1) In its standard operating behavior, it will leave that space allocated until the graph is destroyed, which means that the energies it stores in that block will never be computed more than once; or 2) In its alternate operating behavior, the LMIG will deallocate some of those blocks to make sure that it never uses more than some maximum amount of memory on RPEs.