Rosetta  2021.16
 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::BackgroundNode< V, E, G > Class Template Referenceabstract

A node which is not changing type or rotamer throughout a simulation. More...

#include <AdditionalBackgroundNodesInteractionGraph.hh>

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

Public Types

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

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...
 
virtual void prepare_for_simulated_annealing ()=0
 
virtual void print () const =0
 
virtual unsigned int count_static_memory () const =0
 
virtual unsigned int count_dynamic_memory () const
 Returns an int representing the amount of memory in bytes used by this node. More...
 

Protected Member Functions

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

 BackgroundNode ()
 
 BackgroundNode (BackgroundNode< V, E, G > const &)
 
BackgroundNode< V, E, G > & operator= (BackgroundNode< V, E, G > const &)
 

Private Attributes

int node_index_
 
int num_incident_edges_
 
BackgroundEdgeList edge_list_
 
BackgroundEdgeVector edge_vector_
 
std::vector< int > adjacent_first_class_node_indices_
 
FirstClassNodeVector adjacent_nodes_
 
bool edge_vector_up_to_date_
 
AdditionalBackgroundNodesInteractionGraph
< V, E, G > * 
owner_
 

Detailed Description

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

A node which is not changing type or rotamer throughout a simulation.

In the case of solvent-accessible surface area (SASA) scoring, a background node would be one whose SASA score can change due to neighboring residues being changed. It itself will not change residue type or rotamer during a simulation, but the scores on this residue can change.

Remarks
Non-instantiable due to pure virtual methods, prepare_for_simulated_annealing(), print(), and count_static_memory().

Member Typedef Documentation

template<typename V, typename E, typename G>
typedef std::list< BackgroundToFirstClassEdge< V, E, G >* > core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundEdgeList
template<typename V, typename E, typename G>
typedef std::list< BackgroundToFirstClassEdge< V, E, G >* >::iterator core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundEdgeListIter
template<typename V, typename E, typename G>
typedef std::vector< BackgroundToFirstClassEdge< V, E, G >* > core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundEdgeVector
template<typename V, typename E, typename G>
typedef std::vector< BackgroundToFirstClassEdge< V, E, G >* >::iterator core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundEdgeVectorIter
template<typename V, typename E, typename G>
typedef std::vector< FirstClassNode< V, E, G >* > core::pack::interaction_graph::BackgroundNode< V, E, G >::FirstClassNodeVector

Constructor & Destructor Documentation

template<typename V , typename E , typename G >
core::pack::interaction_graph::BackgroundNode< V, E, G >::~BackgroundNode ( )
virtual

BackgroundNode destructor.

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

BackgroundNode constructor - no default or copy constructors; no operator =.

I use "background node" synonymously with "second class node". This kind of node contributes to the energy of the system. It does not have any assignable states – the energy it contributes is a function of the states of the first class vertices that surround it. A simulated annealer is unaware of the presence of this kind of node; the owning interaction graph obscures it from view of the annealer.

Parameters
owner- [in] - the owning graph node_index - [in] - the index of the background node
template<typename V, typename E, typename G>
core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundNode ( )
private
template<typename V, typename E, typename G>
core::pack::interaction_graph::BackgroundNode< V, E, G >::BackgroundNode ( BackgroundNode< V, E, G > const &  )
private

Member Function Documentation

template<typename V , typename E , typename G >
std::list< BackgroundToFirstClassEdge< V, E, G > * >::iterator core::pack::interaction_graph::BackgroundNode< V, E, G >::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.

Remarks
Invalidates edge_vector_up_to_date_ flag
Parameters
edge_ptr- [in] - pointer to the edge being added
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::BackgroundNode< V, E, G >::count_dynamic_memory ( ) const
virtual

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 in core::pack::interaction_graph::HPatchBackgroundNode< V, E, G >, core::pack::interaction_graph::NPDHBondBackgroundNode< V, E, G >, and core::pack::interaction_graph::SurfaceBackgroundNode< V, E, G >.

template<typename V, typename E, typename G>
virtual unsigned int core::pack::interaction_graph::BackgroundNode< V, E, G >::count_static_memory ( ) const
pure virtual
template<typename V , typename E , typename G >
void core::pack::interaction_graph::BackgroundNode< V, E, G >::drop_edge ( BackgroundEdgeListIter  edge)

removes an edge from the nodes edge list in constant time

Remarks
Invalidates edge_vector_up_to_date_ flag
Parameters
edge- [in] - the iterator to the edge's position in node's edge list
template<typename V , typename E , typename G >
BackgroundToFirstClassEdge< V, E, G > * core::pack::interaction_graph::BackgroundNode< V, E, G >::find_edge ( int  fc_node_index)

Linear time edge lookup function.

Parameters
fc_node_index- [in] - the index of the first class node that is on the other end of the sought edge
template<typename V, typename E, typename G>
FirstClassNode< V, E, G>* core::pack::interaction_graph::BackgroundNode< V, E, G >::get_adjacent_first_class_node ( int  index) const
inlineprotected
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::BackgroundNode< V, E, G >::get_edge_vector_up_to_date ( ) const
inlineprotected
template<typename V, typename E, typename G>
BackgroundToFirstClassEdge< V, E, G >* core::pack::interaction_graph::BackgroundNode< V, E, G >::get_incident_edge ( int  index) const
inlineprotected
template<typename V, typename E, typename G>
int core::pack::interaction_graph::BackgroundNode< V, E, G >::get_index_of_adjacent_first_class_node ( int  index) const
inlineprotected
template<typename V, typename E, typename G>
int core::pack::interaction_graph::BackgroundNode< V, E, G >::get_node_index ( ) const
inlineprotected
template<typename V, typename E, typename G>
int core::pack::interaction_graph::BackgroundNode< V, E, G >::get_num_incident_edges ( ) const
inlineprotected
template<typename V, typename E, typename G>
AdditionalBackgroundNodesInteractionGraph< V, E, G >* core::pack::interaction_graph::BackgroundNode< V, E, G >::get_owner ( ) const
inlineprotected
template<typename V, typename E, typename G>
BackgroundNode< V, E, G >& core::pack::interaction_graph::BackgroundNode< V, E, G >::operator= ( BackgroundNode< V, E, G > const &  )
private
template<typename V, typename E, typename G>
virtual void core::pack::interaction_graph::BackgroundNode< V, E, G >::prepare_for_simulated_annealing ( )
pure virtual
template<typename V, typename E, typename G>
virtual void core::pack::interaction_graph::BackgroundNode< V, E, G >::print ( ) const
pure virtual
template<typename V , typename E , typename G >
void core::pack::interaction_graph::BackgroundNode< V, E, G >::update_edge_vector ( )
protected

Syncs the edge vector with the edge list.

Updates the vector of pointers to background edges to correspond to the list of background edges. Informs its incident edges of their position in its vector.

Remarks
sets edge_vector_up_to_date_ flag to true

Member Data Documentation

template<typename V, typename E, typename G>
std::vector< int > core::pack::interaction_graph::BackgroundNode< V, E, G >::adjacent_first_class_node_indices_
private
template<typename V, typename E, typename G>
FirstClassNodeVector core::pack::interaction_graph::BackgroundNode< V, E, G >::adjacent_nodes_
private
template<typename V, typename E, typename G>
BackgroundEdgeList core::pack::interaction_graph::BackgroundNode< V, E, G >::edge_list_
private
template<typename V, typename E, typename G>
BackgroundEdgeVector core::pack::interaction_graph::BackgroundNode< V, E, G >::edge_vector_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::BackgroundNode< V, E, G >::edge_vector_up_to_date_
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::BackgroundNode< V, E, G >::node_index_
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::BackgroundNode< V, E, G >::num_incident_edges_
private
template<typename V, typename E, typename G>
AdditionalBackgroundNodesInteractionGraph< V, E, G >* core::pack::interaction_graph::BackgroundNode< V, E, G >::owner_
private

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