Rosetta 3.5
 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]
Collaboration diagram for core::pack::interaction_graph::BackgroundNode< V, E, G >:
Collaboration 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< intadjacent_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.

BackgroundNode

Detailed:
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
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 =.

BackgroundNode::BackgroundNode

Detailed:
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.

BackgroundNode::add_edge

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.

BackgroundNode::count_dynamic_memory

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 >, 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

BackgroundNode::drop_edge

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.

BackgroundNode::find_edge

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.

BackgroundNode::update_edge_vector

Detailed:
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: