![]() |
Rosetta
2021.16
|
Defines a HPatch Edge which connects two first-class HPatch Nodes. Edges have to keep some state so that updates to SASA and the hpatch score can be done fast. More...
#include <HPatchInteractionGraph.hh>

Public Types | |
| typedef FirstClassEdge< V, E, G > | parent |
Public Member Functions | |
| HPatchEdge (G *owner, int node1, int node2) | |
| main constructor. No default, or copy constructors, no assignment operator More... | |
| ~HPatchEdge () override | |
| void | prepare_for_simulated_annealing () override |
| drops zero submatrices of the AminoAcidNeighborSparseMatrix and if the two_body_energies_ member then holds nothing, it checks whether or not its incident nodes have any sphere overlaps. If they don't then the edge deletes itself. More... | |
| void | acknowledge_state_zeroed (int node_index) |
| respond to when one of its vertices enters the "unassigned" state. More... | |
| Real | update_state_at_neighbor (int node_considering_substitution, int alt_state, RotamerDots &alt_state_dots) |
| returns the change in sasa for the neighbor of a node that is produced by the state substitution it is considering. More... | |
| void | acknowledge_substitution () |
| bookkeeping following the decision to substitute a nodes current state with the alternate it was asked to consider. More... | |
| utility::vector1 < utility::vector1< bool > > const & | get_current_state_atom_atom_overlaps () const |
| Returns a const reference to the atom-x-atom-pair vector-of-vectors of bools that specifies which atoms are overlapping, assuming the current state assignment. More... | |
| utility::vector1 < utility::vector1< bool > > const & | get_alt_state_atom_atom_overlaps () const |
| Returns a const reference to the atom-x-atom-pair vector-of-vectors of bools that specifies which atoms are overlapping, assuming the alternate state assignment. More... | |
| void | declare_energies_final () override |
| Reduces memory usage in the two body energy table after the energy calculating function declares that the energies will not change thereafter. More... | |
| virtual unsigned int | getMemoryUsageInBytes () const |
| unsigned int | count_static_memory () const override |
| unsigned int | count_dynamic_memory () const override |
| Real | get_current_two_body_energy () const |
Public Member Functions inherited from core::pack::interaction_graph::FirstClassEdge< V, E, G > | |
| ~FirstClassEdge () override | |
| FirstClassEdge destructor. More... | |
| FirstClassEdge (G *owner, int first_node_ind, int second_node_ind) | |
| FirstClassEdge constructor. More... | |
| unsigned int | count_dynamic_memory () const override |
Protected Member Functions | |
| HPatchNode< V, E, G > * | get_hpatch_node (int index) |
Private Member Functions | |
| void | inform_non_changing_node_of_neighbors_change () |
| tells the node that isn't considering a substitution or changing state that its neighbor who is has changed. More... | |
| HPatchEdge () | |
| HPatchEdge (HPatchEdge< V, E, G > const &) | |
| HPatchEdge< V, E, G > & | operator= (HPatchEdge< V, E, G > const &) |
Private Attributes | |
| int | node_changing_ |
| int | node_not_changing_ |
| int | nodes_curr_states_ [2] |
| int | nodes_alt_states_ [2] |
| RotamerDotsCache | nodes_curr_pair_dot_counts_ [2] |
| RotamerDotsCache | nodes_alt_pair_dot_counts_ [2] |
| utility::vector1 < utility::vector1< bool > > | current_state_atom_atom_overlaps_ |
| utility::vector1 < utility::vector1< bool > > | alt_state_atom_atom_overlaps_ |
| utility::vector1< std::pair < Size, Size > > | curr_state_exolap_hphobes_ |
| pairs of hphobes that have exposed overlap More... | |
| utility::vector1< std::pair < Size, Size > > | alt_state_exolap_hphobes_ |
Defines a HPatch Edge which connects two first-class HPatch Nodes. Edges have to keep some state so that updates to SASA and the hpatch score can be done fast.
| typedef FirstClassEdge< V, E, G > core::pack::interaction_graph::HPatchEdge< V, E, G >::parent |
| core::pack::interaction_graph::HPatchEdge< V, E, G >::HPatchEdge | ( | G * | owner, |
| int | node1, | ||
| int | node2 | ||
| ) |
main constructor. No default, or copy constructors, no assignment operator
| owner | - [in] - the owning interaction graph object node1 - [in] - the index of the lower-indexed HPatchNode node2 - [in] - the index of the higher-indexed HPatchNode |
References core::pack::interaction_graph::HPatchEdge< V, E, G >::nodes_alt_states_, and core::pack::interaction_graph::HPatchEdge< V, E, G >::nodes_curr_states_.
|
override |
|
private |
|
private |
| void core::pack::interaction_graph::HPatchEdge< V, E, G >::acknowledge_state_zeroed | ( | int | node_that_changed | ) |
respond to when one of its vertices enters the "unassigned" state.
called during the HIG::blanket_assign_state_0 -> HPatchNode::assign_zero_state() cascade of calls.
| void core::pack::interaction_graph::HPatchEdge< V, E, G >::acknowledge_substitution | ( | ) |
bookkeeping following the decision to substitute a nodes current state with the alternate it was asked to consider.
|
override |
|
override |
|
override |
Reduces memory usage in the two body energy table after the energy calculating function declares that the energies will not change thereafter.
A HPatchEdge should not delete itself if the pair energies are all zero since the Minkowski sum of a water and a van der Waal's sphere extends further out from an atoms center than its (lj_atr, lj_rep, lksolv) interaction sphere. However, if a HPatchEdge holds no pair energies, it's a very good candidate for removal – it just first needs to check that no (vdw + 1.4 A) spheres overlap between any pair of rotamers on the edges it connects.
| utility::vector1< utility::vector1< bool > > const & core::pack::interaction_graph::HPatchEdge< V, E, G >::get_alt_state_atom_atom_overlaps | ( | ) | const |
Returns a const reference to the atom-x-atom-pair vector-of-vectors of bools that specifies which atoms are overlapping, assuming the alternate state assignment.
| utility::vector1< utility::vector1< bool > > const & core::pack::interaction_graph::HPatchEdge< V, E, G >::get_current_state_atom_atom_overlaps | ( | ) | const |
Returns a const reference to the atom-x-atom-pair vector-of-vectors of bools that specifies which atoms are overlapping, assuming the current state assignment.
| Real core::pack::interaction_graph::HPatchEdge< V, E, G >::get_current_two_body_energy | ( | ) | const |
|
inlineprotected |
|
virtual |
|
inlineprivate |
tells the node that isn't considering a substitution or changing state that its neighbor who is has changed.
|
private |
|
override |
drops zero submatrices of the AminoAcidNeighborSparseMatrix and if the two_body_energies_ member then holds nothing, it checks whether or not its incident nodes have any sphere overlaps. If they don't then the edge deletes itself.
References core::pack::interaction_graph::TR_EDGE().
| Real core::pack::interaction_graph::HPatchEdge< V, E, G >::update_state_at_neighbor | ( | int | node_considering_substitution, |
| int | alt_state, | ||
| RotamerDots & | changing_node_alt_state_dots | ||
| ) |
returns the change in sasa for the neighbor of a node that is produced by the state substitution it is considering.
Very complicated. See HPatchNode::project_deltaE_for_neighbors_state_sub This edge collects cached sphere overlaps and hands this cached data to the node that is not considering the state substitution. That node computes more sphere overlaps and returns a delta sasa; this method then passes that delta sasa along.
See more comments inline.
| changing_node_alt_state_dots | - [in] - the RotamerDots object for the alternate state at the changing Node |
References core::pack::interaction_graph::RotamerDots::get_num_atoms().
|
private |
|
private |
|
private |
pairs of hphobes that have exposed overlap
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
1.8.7