Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
core::pack::interaction_graph::HPatchBackgroundNode< V, E, G > Class Template Reference

Defines a Background Node which will contribute to changes in SASA/hpatchE due to state changes on neighboring nodes, and not because of state changes to it. No default constructor makes this class uncopyable. More...

#include <HPatchInteractionGraph.hh>

Inheritance diagram for core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >:
Inheritance graph
[legend]

Public Types

typedef BackgroundNode< V, E, Gparent
 
- Public Types inherited from core::pack::interaction_graph::BackgroundNode< V, E, G >
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * >::iterator 
BackgroundEdgeListIter
 
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * > 
BackgroundEdgeList
 
typedef std::vector
< BackgroundToFirstClassEdge
< V, E, G > * > 
BackgroundEdgeVector
 
typedef std::vector
< BackgroundToFirstClassEdge
< V, E, G > * >::iterator 
BackgroundEdgeVectorIter
 
typedef std::vector
< FirstClassNode< V, E, G > * > 
FirstClassNodeVector
 

Public Member Functions

 HPatchBackgroundNode (AdditionalBackgroundNodesInteractionGraph< V, E, G > *owner, int node_index)
 main constructor. No default constructor, copy constructor or assignment operator More...
 
 ~HPatchBackgroundNode () override
 
void set_rotamer (conformation::ResidueOP const &rotamer)
 inits the RotamerOP held by a background node. called in the HPatchIG::initialize method. More...
 
conformation::ResidueCOP get_rotamer () const
 returns a const reference to the ResidueOP object held by this background Node. needed by the initialize_bg_bg_overlap call in this class so that one BGNode can get at the residue/rotamer information on another BGNode instance. More...
 
void set_rotamer_dots (RotamerDots const &bg_rd)
 inits the RotamerDots object held by a background node. called in the HPatchIG::initialize method. More...
 
bool detect_overlap (HPatchNode< V, E, G > *node) const
 returns true if this background residue overlaps with any atom on any rotamer of a HPatchNode. More...
 
void prepare_for_simulated_annealing () override
 detects self overlap and asks its incident HPatchBackgroundEdges to compute and cache the overlaps of this residue with all states on the neighboring HPatchNode. More...
 
void initialize_bg_bg_overlap (HPatchBackgroundNode< V, E, G > &other)
 stores the sphere overlap for a pair of background nodes More...
 
Real update_state_for_substitution (HPatchNode< V, E, G > *fc_node_changing, RotamerDotsCache const &nodes_curr_overlap_with_bg_res, RotamerDotsCache const &nodes_alt_overlap_with_bg_res)
 returns the change in sasa induced by a HPatchNode undergoing a state substitution. The overlap between the HPatchNode and this HPatchBackgroundNode has been precomputed and stored in the HPatchBackgroundEdge that connects them. There is little work to do in this subroutine. More...
 
void reset_alt_state_dots ()
 Sets the alt state dots to the current state dots. See comments in HIG and commit_considered_substitution for more information about why this method exists. More...
 
void acknowledge_substitution ()
 bookkeeping to reflect a HPatchNode's state substitution. uses the RotamerDots class method operator=. More...
 
Real get_current_sasa () const
 returns the total SASA under the current state assignment More...
 
Real get_current_sasa (Size atom_index) const
 Returns the current state SASA for the passed in atom index. More...
 
Real get_alternate_sasa () const
 returns the total SASA under the alternate state assignment More...
 
Real get_alternate_sasa (Size atom_index) const
 Returns the alternate state SASA for the passed in atom index. More...
 
utility::vector1
< utility::vector1< bool >
> const & 
get_atom_atom_self_overlaps () const
 Returns a const reference to the atom x atom pair vector of vectors of bools that specifies which atoms are overlapping. More...
 
utility::vector1< Size > const & get_hphobes () const
 
Size n_hphobes () const
 
unsigned int count_static_memory () const override
 
unsigned int count_dynamic_memory () const override
 Returns an int representing the amount of memory in bytes used by this node. More...
 
void print () const override
 used only for debugging More...
 
RotamerDots const & get_current_state_rotamer_dots ()
 Returns current state. Only used by the unit tests. More...
 
RotamerDots const & get_alt_state_rotamer_dots ()
 Returns current state. Only used by the unit tests. More...
 
InvRotamerDots const & curr_state_inv_dots () const
 
InvRotamerDots const & alt_state_inv_dots () const
 
utility::vector1< Size > const & curr_state_exp_hphobes () const
 
utility::vector1< Size > const & alt_state_exp_hphobes () const
 
Size n_curr_state_exp_hphobes () const
 
Size n_alt_state_exp_hphobes () const
 
- Public Member Functions inherited from core::pack::interaction_graph::BackgroundNode< V, E, G >
virtual ~BackgroundNode ()
 BackgroundNode destructor. More...
 
 BackgroundNode (AdditionalBackgroundNodesInteractionGraph< V, E, G > *owner, int node_index)
 BackgroundNode constructor - no default or copy constructors; no operator =. More...
 
BackgroundEdgeListIter add_edge (BackgroundToFirstClassEdge< V, E, G > *edge_ptr)
 Adds a BackgroundToFirstClassEdge to the edge list for this node. Returns an iterator to the new list element. More...
 
void drop_edge (BackgroundEdgeListIter edge)
 removes an edge from the nodes edge list in constant time More...
 
BackgroundToFirstClassEdge< V,
E, G > * 
find_edge (int fc_node_index)
 Linear time edge lookup function. More...
 

Protected Member Functions

HPatchBackgroundEdge< V, E, G > * get_hpatch_bg_edge (int index)
 
HPatchInteractionGraph< V, E, G > * get_hpatch_owner () const
 
- Protected Member Functions inherited from core::pack::interaction_graph::BackgroundNode< V, E, G >
void update_edge_vector ()
 Syncs the edge vector with the edge list. More...
 
int get_node_index () const
 
int get_num_incident_edges () const
 
BackgroundToFirstClassEdge< V,
E, G > * 
get_incident_edge (int index) const
 
int get_index_of_adjacent_first_class_node (int index) const
 
FirstClassNode< V, E, G > * get_adjacent_first_class_node (int index) const
 
bool get_edge_vector_up_to_date () const
 
AdditionalBackgroundNodesInteractionGraph
< V, E, G > * 
get_owner () const
 

Private Member Functions

void update_alt_state_exphphobes ()
 Updates the vector alt_state_exp_hphobes_ with the atom id (??) of the exposed hydrophobic atoms in this residue. More...
 
void initialize_self_overlap ()
 initializes the self overlap for its RotamerDots object More...
 
void initialize_atom_atom_overlaps ()
 initializes the atom-atom overlap vector stored by this background node. called once during prep_for_simA. More...
 
 HPatchBackgroundNode ()
 
 HPatchBackgroundNode (HPatchBackgroundNode< V, E, G > const &)
 
HPatchBackgroundNode< V, E, G > & operator= (HPatchBackgroundNode< V, E, G > const &)
 

Private Attributes

conformation::ResidueOP rotamer_
 
utility::vector1< Sizehphobe_ats_
 
Size n_hphobes_
 
bool prepared_for_simA_
 
RotamerDots current_state_rotamer_dots_
 
RotamerDots alt_state_rotamer_dots_
 
InvRotamerDots curr_state_inv_dots_
 
InvRotamerDots alt_state_inv_dots_
 
utility::vector1< Sizecurr_state_exp_hphobes_
 
utility::vector1< Sizealt_state_exp_hphobes_
 
bool alt_state_dots_matches_current_state_dots_
 
utility::vector1
< utility::vector1< bool > > 
self_atom_atom_overlaps_
 

Detailed Description

template<typename V, typename E, typename G>
class core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >

Defines a Background Node which will contribute to changes in SASA/hpatchE due to state changes on neighboring nodes, and not because of state changes to it. No default constructor makes this class uncopyable.

Member Typedef Documentation

template<typename V, typename E, typename G>
typedef BackgroundNode< V, E, G > core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::parent

Constructor & Destructor Documentation

template<typename V , typename E , typename G >
core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::HPatchBackgroundNode ( AdditionalBackgroundNodesInteractionGraph< V, E, G > *  owner,
int  node_index 
)

main constructor. No default constructor, copy constructor or assignment operator

template<typename V , typename E , typename G >
core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::~HPatchBackgroundNode ( )
override
template<typename V, typename E, typename G>
core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::HPatchBackgroundNode ( )
private
template<typename V, typename E, typename G>
core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::HPatchBackgroundNode ( HPatchBackgroundNode< V, E, G > const &  )
private

Member Function Documentation

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::acknowledge_substitution ( )

bookkeeping to reflect a HPatchNode's state substitution. uses the RotamerDots class method operator=.

template<typename V, typename E, typename G>
utility::vector1< Size > const& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_exp_hphobes ( ) const
inline
template<typename V, typename E, typename G>
InvRotamerDots const& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_inv_dots ( ) const
inline
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::count_dynamic_memory ( ) const
overridevirtual

Returns an int representing the amount of memory in bytes used by this node.

Remarks
ronj lists consume more memory because they maintain pointers to the previous and next nodes ronj current calculation uses 4 * # elements in list * sizeof(pointer), but I think this is wrong ronj isn't it only 3 * # elements in list * sizeof(pointer)?
Parameters
total_memory- [out] - the amount of memory used by this node

Reimplemented from core::pack::interaction_graph::BackgroundNode< V, E, G >.

template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::count_static_memory ( ) const
overridevirtual
template<typename V, typename E, typename G>
utility::vector1< Size > const& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::curr_state_exp_hphobes ( ) const
inline
template<typename V, typename E, typename G>
InvRotamerDots const& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::curr_state_inv_dots ( ) const
inline
template<typename V , typename E , typename G >
bool core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::detect_overlap ( HPatchNode< V, E, G > *  node) const

returns true if this background residue overlaps with any atom on any rotamer of a HPatchNode.

Uses the HPatchNode function detect_any_overlap_with_rotamer. It calls the function on the passed in HPatchNode with the RotamerDots object this BGNode keeps in current_state_rotamer_dots_.

References core::pack::interaction_graph::HPatchNode< V, E, G >::detect_any_overlap_with_rotamer().

template<typename V , typename E , typename G >
RotamerDots const & core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_alt_state_rotamer_dots ( )

Returns current state. Only used by the unit tests.

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_alternate_sasa ( ) const

returns the total SASA under the alternate state assignment

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_alternate_sasa ( Size  atom_index) const

Returns the alternate state SASA for the passed in atom index.

template<typename V , typename E , typename G >
utility::vector1< utility::vector1< bool > > const & core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_atom_atom_self_overlaps ( ) const

Returns a const reference to the atom x atom pair vector of vectors of bools that specifies which atoms are overlapping.

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_current_sasa ( ) const

returns the total SASA under the current state assignment

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_current_sasa ( Size  atom_index) const

Returns the current state SASA for the passed in atom index.

template<typename V , typename E , typename G >
RotamerDots const & core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_current_state_rotamer_dots ( )

Returns current state. Only used by the unit tests.

template<typename V, typename E, typename G>
HPatchBackgroundEdge< V, E, G >* core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_hpatch_bg_edge ( int  index)
inlineprotected
template<typename V, typename E, typename G>
HPatchInteractionGraph< V, E, G >* core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_hpatch_owner ( ) const
inlineprotected
template<typename V, typename E, typename G>
utility::vector1< Size > const& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_hphobes ( ) const
inline
template<typename V , typename E , typename G >
conformation::ResidueCOP core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::get_rotamer ( ) const

returns a const reference to the ResidueOP object held by this background Node. needed by the initialize_bg_bg_overlap call in this class so that one BGNode can get at the residue/rotamer information on another BGNode instance.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::initialize_atom_atom_overlaps ( )
private

initializes the atom-atom overlap vector stored by this background node. called once during prep_for_simA.

References core::kinematics::tree::distance_squared(), and core::scoring::sasa::get_legrand_atomic_overlap().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::initialize_bg_bg_overlap ( HPatchBackgroundNode< V, E, G > &  other)

stores the sphere overlap for a pair of background nodes

References core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::current_state_rotamer_dots_.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::initialize_self_overlap ( )
private

initializes the self overlap for its RotamerDots object

template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::n_alt_state_exp_hphobes ( ) const
inline
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::n_curr_state_exp_hphobes ( ) const
inline
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::n_hphobes ( ) const
inline
template<typename V, typename E, typename G>
HPatchBackgroundNode< V, E, G >& core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::operator= ( HPatchBackgroundNode< V, E, G > const &  )
private
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::prepare_for_simulated_annealing ( )
overridevirtual

detects self overlap and asks its incident HPatchBackgroundEdges to compute and cache the overlaps of this residue with all states on the neighboring HPatchNode.

if we've already gone through this method once, then don't update the parent classes edge vectors. but we do need to reinitialize the self overlap on the BGNode as well as the overlap caused by all other bg nodes.

Implements core::pack::interaction_graph::BackgroundNode< V, E, G >.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::print ( ) const
overridevirtual

used only for debugging

used only for debugging

Implements core::pack::interaction_graph::BackgroundNode< V, E, G >.

References core::pack::interaction_graph::TR_BGNODE().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::reset_alt_state_dots ( )

Sets the alt state dots to the current state dots. See comments in HIG and commit_considered_substitution for more information about why this method exists.

References core::pack::interaction_graph::TR_BGNODE().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::set_rotamer ( conformation::ResidueOP const &  rotamer)

inits the RotamerOP held by a background node. called in the HPatchIG::initialize method.

References core::chemical::ResidueType::atom_type(), core::chemical::AtomType::element(), and core::chemical::ResidueType::nheavyatoms().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::set_rotamer_dots ( RotamerDots const &  bg_rd)

inits the RotamerDots object held by a background node. called in the HPatchIG::initialize method.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::update_alt_state_exphphobes ( )
private

Updates the vector alt_state_exp_hphobes_ with the atom id (??) of the exposed hydrophobic atoms in this residue.

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::update_state_for_substitution ( HPatchNode< V, E, G > *  fc_node_changing,
RotamerDotsCache const &  nodes_curr_overlap_with_bg_res,
RotamerDotsCache const &  nodes_alt_overlap_with_bg_res 
)

returns the change in sasa induced by a HPatchNode undergoing a state substitution. The overlap between the HPatchNode and this HPatchBackgroundNode has been precomputed and stored in the HPatchBackgroundEdge that connects them. There is little work to do in this subroutine.

References core::pack::interaction_graph::TR_BGNODE(), and core::pack::interaction_graph::HPatchNode< V, E, G >::wt_seqpos_for_node().

Member Data Documentation

template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_dots_matches_current_state_dots_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_exp_hphobes_
private
template<typename V, typename E, typename G>
InvRotamerDots core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_inv_dots_
private
template<typename V, typename E, typename G>
RotamerDots core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::alt_state_rotamer_dots_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::curr_state_exp_hphobes_
private
template<typename V, typename E, typename G>
InvRotamerDots core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::curr_state_inv_dots_
private
template<typename V, typename E, typename G>
RotamerDots core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::current_state_rotamer_dots_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::hphobe_ats_
private
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::n_hphobes_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::prepared_for_simA_
private
template<typename V, typename E, typename G>
conformation::ResidueOP core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::rotamer_
private
template<typename V, typename E, typename G>
utility::vector1< utility::vector1< bool > > core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >::self_atom_atom_overlaps_
private

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