Rosetta 3.4
Public Types | Public Member Functions | Protected Member Functions
protocols::flexpack::interaction_graph::FlexbbNode Class Reference

#include <FlexbbInteractionGraph.hh>

Inheritance diagram for protocols::flexpack::interaction_graph::FlexbbNode:
Inheritance graph
[legend]
Collaboration diagram for protocols::flexpack::interaction_graph::FlexbbNode:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
core::pack::interaction_graph::NodeBase 
parent
typedef core::PackerEnergy PackerEnergy
typedef core::Size Size

Public Member Functions

 FlexbbNode (FlexbbInteractionGraph *owner, int node_id, int num_states)
virtual ~FlexbbNode ()
virtual void print () const
void set_num_distinct_backbones (int nbbconfs)
int get_num_distinct_backbones () const
void set_num_states_per_backbone (utility::vector1< int > const &)
int get_bb_for_state (int state) const
int get_num_states_for_bb (int bbconf) const
int get_state_offset_for_bb (int bbconf) const
void get_states_on_curr_bb (utility::vector1< Size > &state_list, int offset) const
void get_all_states (utility::vector1< Size > &rotlist, int offset) const
void set_closest_states_on_other_bbs (ObjexxFCL::FArray2D_int const &)
void set_amino_acid_types (utility::vector1< int > const &)
ObjexxFCL::FArray1A_int getNumStatesPerAAPerBB (int aa)
virtual void add_to_one_body_energies (ObjexxFCL::FArray1< PackerEnergy > &energies)
 adds all the energies in energies to the one-body energies for this node
virtual void add_to_one_body_energy (int state, PackerEnergy energy)
virtual void update_one_body_energy (int state, PackerEnergy energy)
virtual void zero_one_body_energies ()
virtual bool state_unassigned () const
PackerEnergy get_one_body_energy (int state) const
virtual void prepare_for_simulated_annealing ()
int get_current_state () const
int get_backbone_for_current_state () const
void write_current_state_to_state_array (ObjexxFCL::FArray1_int &nodes_states)
bool inform_edges_of_alt_state_before_bbjump ()
 Preliminatry bookkeeping for the node the Graph contacted about a backbone move. This node is the "root" of the DFS traversal.
bool state_has_same_backbone_as_current (int state) const
 Did the alterenate state assigned during a flexbb move actually preserve the currently assigned bb?
int get_num_states_for_aa_type_for_bb (int aa_type, int bb) const
void print_internal_energies ()
void update_internal_energy_sums ()
virtual unsigned int count_dynamic_memory () const
 memory accounting scheme
int num_aa_types () const
 Read access to private data to both derived classes and the world.
int num_bbconfs () const
utility::vector1< int > const & num_states_for_bb ()
utility::vector1< int > const & state_offsets_for_bb ()
ObjexxFCL::FArray2D_int const & num_states_for_aa_for_bb ()
ObjexxFCL::FArray2D_int const & state_offsets_for_aa_for_bb ()
ObjexxFCL::FArray2D_int const & closest_state_on_alt_bb () const
FlexbbSparseMatrixIndex const & state_info (int state) const
utility::vector1< PackerEnergy >
const & 
one_body_energies () const
int current_state () const
FlexbbSparseMatrixIndex const & current_state_info () const
int curr_bb () const
PackerEnergy curr_state_one_body_energy () const
PackerEnergy curr_state_total_energy () const
utility::vector1< PackerEnergy >
const & 
curr_state_two_body_energies ()
int alternate_state () const
FlexbbSparseMatrixIndex const & alternate_state_info () const
int alt_bb () const
PackerEnergy alternate_state_one_body_energy () const
PackerEnergy alternate_state_total_energy () const
utility::vector1< PackerEnergy >
const & 
alternate_state_two_body_energies () const
PackerEnergy alternate_state_two_body_energies (int ind) const
utility::vector1< bool > const & edge_connects_flexsegmate () const
bool count_energy_to_node_in_my_fragtotalE (int edge_index) const
 Convention for acumulating energies between flexsegmates during a backbone move: The smaller-indexed node counts the interaction, the larger-indexed node does not.
bool alternate_state_is_being_considered () const

Protected Member Functions

FlexbbEdge const * get_incident_flexbb_edge (int index) const
FlexbbEdgeget_incident_flexbb_edge (int index)
FlexbbNode const * get_adjacent_flexbb_node (int index) const
FlexbbNodeget_adjacent_flexbb_node (int index)
FlexbbInteractionGraph const * get_flexbbig_owner () const
FlexbbInteractionGraphget_flexbbig_owner ()
void update_internal_vectors ()
void inform_edges_considered_fixedbb_substition_uncommitted ()
void set_considering_alternate_state ()
 Limited write acces to private data.
void set_current_state (int setting)
void set_curr_state_one_body_energy (PackerEnergy setting)
void set_curr_state_total_energy (PackerEnergy setting)
void inc_curr_state_total_energy (PackerEnergy setting)
void set_curr_state_two_body_energies (Size index, PackerEnergy setting)
void set_alternate_state (int setting)
void set_alternate_state_one_body_energy (PackerEnergy setting)
void set_alternate_state_total_energy (PackerEnergy setting)
void inc_alternate_state_total_energy (PackerEnergy setting)
void set_alternate_state_two_body_energies (Size index, PackerEnergy setting)
void reset_all_rotamer_substitution_bookkeeping_data ()
void partial_state_assignment (int new_state)
void inform_incident_edges_about_partial_state_assignment ()
void copy_alternate_to_current ()
 bookkeeping for DFS traversal. Derived classes should consult this at the beginning of node "get_energies" traversals. Calling this function for a node effectively declares that the code which follows will project the delta energy: after the first time this functio is called, it will return true. Must be proceeded by a call to prepare_for_bb_jump(). Depricated. bool energies_already_projected() const;
void have_edges_copy_alternate_to_current ()
 Have all incident edges copy their data from "alternate_*" to "current_*".
void have_edges_copy_alternate_to_current_following_flexbb_accept ()
 Have a subset of the incident edges copy their data from "alternate_*" to "current_*" where this subset includes all edges to non-flexsegmates as well as all all upper edges to flexsegmates. Threadsafe if it can be fruitfully parallelized.

Member Typedef Documentation


Constructor & Destructor Documentation

protocols::flexpack::interaction_graph::FlexbbNode::FlexbbNode ( FlexbbInteractionGraph owner,
int  node_id,
int  num_states 
)
protocols::flexpack::interaction_graph::FlexbbNode::~FlexbbNode ( ) [virtual]

Member Function Documentation

void protocols::flexpack::interaction_graph::FlexbbNode::add_to_one_body_energies ( ObjexxFCL::FArray1< PackerEnergy > &  energies) [virtual]

adds all the energies in energies to the one-body energies for this node

takes one FArray of energies -- one energy for each state for each node

Parameters:
energies- [in] - the array of energies. Must hold num_states_ entries

InteractionGraphBase::add_to_one_body_energies

Detailed:
The input array should have {v} |S_v| entries, where S_v is the state-space for vertex v. If the graph has two vertices, with 15 and 20 states respectively, then entries 1 to 15 correspond to vertex 1, and entries 16 to 36 correspond to vertex 2. This compact enumeration scheme is the same as the enumeration scheme used by rotindex, rotcoord, etc
Parameters:
one_body_energies- [in] - the array of one body energies
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References core::pack::interaction_graph::NodeBase::get_num_states().

void protocols::flexpack::interaction_graph::FlexbbNode::add_to_one_body_energy ( int  state,
PackerEnergy  energy 
) [virtual]
int protocols::flexpack::interaction_graph::FlexbbNode::alt_bb ( ) const [inline]
int protocols::flexpack::interaction_graph::FlexbbNode::alternate_state ( ) const [inline]
FlexbbSparseMatrixIndex const& protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_info ( ) const [inline]
bool protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_is_being_considered ( ) const [inline]
PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_one_body_energy ( ) const [inline]
PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_total_energy ( ) const [inline]
utility::vector1< PackerEnergy > const& protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_two_body_energies ( ) const [inline]
PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::alternate_state_two_body_energies ( int  ind) const [inline]
ObjexxFCL::FArray2D_int const& protocols::flexpack::interaction_graph::FlexbbNode::closest_state_on_alt_bb ( ) const [inline]
void protocols::flexpack::interaction_graph::FlexbbNode::copy_alternate_to_current ( ) [protected]

bookkeeping for DFS traversal. Derived classes should consult this at the beginning of node "get_energies" traversals. Calling this function for a node effectively declares that the code which follows will project the delta energy: after the first time this functio is called, it will return true. Must be proceeded by a call to prepare_for_bb_jump(). Depricated. bool energies_already_projected() const;

Copy over the energy data local to this node from "alternate_*" to "current_*"

Referenced by protocols::flexpack::interaction_graph::MinimalistFlexbbNode::commit_alt_bb_substitution(), protocols::flexpack::interaction_graph::MinimalistFlexbbNode::commit_considered_substitution(), and protocols::flexpack::interaction_graph::MinimalistFlexbbNode::complete_partial_state_assignment().

unsigned int protocols::flexpack::interaction_graph::FlexbbNode::count_dynamic_memory ( ) const [virtual]
bool protocols::flexpack::interaction_graph::FlexbbNode::count_energy_to_node_in_my_fragtotalE ( int  edge_index) const [inline]

Convention for acumulating energies between flexsegmates during a backbone move: The smaller-indexed node counts the interaction, the larger-indexed node does not.

References core::pack::interaction_graph::NodeBase::get_num_edges_to_smaller_indexed_nodes().

int protocols::flexpack::interaction_graph::FlexbbNode::curr_bb ( ) const [inline]
PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::curr_state_one_body_energy ( ) const [inline]
PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::curr_state_total_energy ( ) const [inline]
utility::vector1< PackerEnergy > const& protocols::flexpack::interaction_graph::FlexbbNode::curr_state_two_body_energies ( ) [inline]
int protocols::flexpack::interaction_graph::FlexbbNode::current_state ( ) const [inline]
FlexbbSparseMatrixIndex const& protocols::flexpack::interaction_graph::FlexbbNode::current_state_info ( ) const [inline]
utility::vector1< bool > const& protocols::flexpack::interaction_graph::FlexbbNode::edge_connects_flexsegmate ( ) const [inline]
FlexbbNode * protocols::flexpack::interaction_graph::FlexbbNode::get_adjacent_flexbb_node ( int  index) [inline, protected]
FlexbbNode const * protocols::flexpack::interaction_graph::FlexbbNode::get_adjacent_flexbb_node ( int  index) const [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::get_all_states ( utility::vector1< Size > &  rotlist,
int  offset 
) const
int protocols::flexpack::interaction_graph::FlexbbNode::get_backbone_for_current_state ( ) const
int protocols::flexpack::interaction_graph::FlexbbNode::get_bb_for_state ( int  state) const [inline]
int protocols::flexpack::interaction_graph::FlexbbNode::get_current_state ( ) const
FlexbbInteractionGraph const * protocols::flexpack::interaction_graph::FlexbbNode::get_flexbbig_owner ( ) const [inline, protected]
FlexbbInteractionGraph * protocols::flexpack::interaction_graph::FlexbbNode::get_flexbbig_owner ( ) [inline, protected]
FlexbbEdge const * protocols::flexpack::interaction_graph::FlexbbNode::get_incident_flexbb_edge ( int  index) const [inline, protected]
FlexbbEdge * protocols::flexpack::interaction_graph::FlexbbNode::get_incident_flexbb_edge ( int  index) [inline, protected]
int protocols::flexpack::interaction_graph::FlexbbNode::get_num_distinct_backbones ( ) const [inline]
int protocols::flexpack::interaction_graph::FlexbbNode::get_num_states_for_aa_type_for_bb ( int  aa_type,
int  bb 
) const

In a bbmove, did the backbone actually move? Should be called only by the node who was initially contacted

int protocols::flexpack::interaction_graph::FlexbbNode::get_num_states_for_bb ( int  bbconf) const
FlexbbNode::PackerEnergy protocols::flexpack::interaction_graph::FlexbbNode::get_one_body_energy ( int  state) const
int protocols::flexpack::interaction_graph::FlexbbNode::get_state_offset_for_bb ( int  bbconf) const
void protocols::flexpack::interaction_graph::FlexbbNode::get_states_on_curr_bb ( utility::vector1< Size > &  state_list,
int  offset 
) const
FArray1A_int protocols::flexpack::interaction_graph::FlexbbNode::getNumStatesPerAAPerBB ( int  aa)
void protocols::flexpack::interaction_graph::FlexbbNode::have_edges_copy_alternate_to_current ( ) [protected]
void protocols::flexpack::interaction_graph::FlexbbNode::have_edges_copy_alternate_to_current_following_flexbb_accept ( ) [protected]

Have a subset of the incident edges copy their data from "alternate_*" to "current_*" where this subset includes all edges to non-flexsegmates as well as all all upper edges to flexsegmates. Threadsafe if it can be fruitfully parallelized.

References edge_connects_flexsegmate(), get_incident_flexbb_edge(), core::pack::interaction_graph::NodeBase::get_index_of_adjacent_node(), core::pack::interaction_graph::NodeBase::get_node_index(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), and protocols::flexpack::interaction_graph::FlexbbEdge::note_state_substitution_accepted().

Referenced by protocols::flexpack::interaction_graph::MinimalistFlexbbNode::commit_alt_bb_substitution().

void protocols::flexpack::interaction_graph::FlexbbNode::inc_alternate_state_total_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::inc_curr_state_total_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::inform_edges_considered_fixedbb_substition_uncommitted ( ) [protected]
bool protocols::flexpack::interaction_graph::FlexbbNode::inform_edges_of_alt_state_before_bbjump ( )

Preliminatry bookkeeping for the node the Graph contacted about a backbone move. This node is the "root" of the DFS traversal.

Preliminary bookkeeping for DFS-backbone-motion inducing state substitution initiated by a separate node. Returns false if the current state is unassigned.

Edges must be informed of the alternate state for both of their nodes; this should happen before any edge is asked for an alternate-state energy.

References get_flexbbig_owner(), get_incident_flexbb_edge(), core::pack::interaction_graph::NodeBase::get_node_index(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::increment_count_nodes_in_flexseg(), and protocols::flexpack::interaction_graph::FlexbbEdge::set_alt_state().

Referenced by protocols::flexpack::interaction_graph::MinimalistFlexbbNode::prepare_for_altbb_move_to_state().

void protocols::flexpack::interaction_graph::FlexbbNode::inform_incident_edges_about_partial_state_assignment ( ) [protected]
int protocols::flexpack::interaction_graph::FlexbbNode::num_aa_types ( ) const [inline]

Read access to private data to both derived classes and the world.

Referenced by protocols::flexpack::interaction_graph::OTFFlexbbNode::declare_all_rotamers_initialized().

int protocols::flexpack::interaction_graph::FlexbbNode::num_bbconfs ( ) const [inline]
ObjexxFCL::FArray2D_int const& protocols::flexpack::interaction_graph::FlexbbNode::num_states_for_aa_for_bb ( ) [inline]
utility::vector1< int > const& protocols::flexpack::interaction_graph::FlexbbNode::num_states_for_bb ( ) [inline]
utility::vector1< PackerEnergy > const& protocols::flexpack::interaction_graph::FlexbbNode::one_body_energies ( ) const [inline]
void protocols::flexpack::interaction_graph::FlexbbNode::partial_state_assignment ( int  new_state) [protected]
void protocols::flexpack::interaction_graph::FlexbbNode::prepare_for_simulated_annealing ( ) [virtual]
void protocols::flexpack::interaction_graph::FlexbbNode::print ( ) const [virtual]
void protocols::flexpack::interaction_graph::FlexbbNode::print_internal_energies ( )
void protocols::flexpack::interaction_graph::FlexbbNode::reset_all_rotamer_substitution_bookkeeping_data ( ) [protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_alternate_state ( int  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_alternate_state_one_body_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_alternate_state_total_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_alternate_state_two_body_energies ( Size  index,
PackerEnergy  setting 
) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_amino_acid_types ( utility::vector1< int > const &  aatypes)

Precondition: num bb have already been set.

References core::pack::interaction_graph::NodeBase::get_num_states().

void protocols::flexpack::interaction_graph::FlexbbNode::set_closest_states_on_other_bbs ( ObjexxFCL::FArray2D_int const &  closest_state_on_alt_bb)
void protocols::flexpack::interaction_graph::FlexbbNode::set_considering_alternate_state ( ) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_curr_state_one_body_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_curr_state_total_energy ( PackerEnergy  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_curr_state_two_body_energies ( Size  index,
PackerEnergy  setting 
) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_current_state ( int  setting) [inline, protected]
void protocols::flexpack::interaction_graph::FlexbbNode::set_num_distinct_backbones ( int  nbbconfs)

Requires that num_aa_types_ is set first; num_aa_types_ is currently set in the node's ctor.

Referenced by protocols::flexpack::interaction_graph::FlexbbInteractionGraph::initialize().

void protocols::flexpack::interaction_graph::FlexbbNode::set_num_states_per_backbone ( utility::vector1< int > const &  num_states_for_bb)

precondition: num_bb_ must have been previously set and must be equal to the number of backbones implicitly identified in num_states_for_bb by its size.

References core::pack::interaction_graph::NodeBase::get_num_states(), and num_states_for_bb().

Referenced by protocols::flexpack::interaction_graph::FlexbbInteractionGraph::initialize().

bool protocols::flexpack::interaction_graph::FlexbbNode::state_has_same_backbone_as_current ( int  state) const [inline]

Did the alterenate state assigned during a flexbb move actually preserve the currently assigned bb?

References protocols::flexpack::interaction_graph::FlexbbSparseMatrixIndex::get_bb().

FlexbbSparseMatrixIndex const& protocols::flexpack::interaction_graph::FlexbbNode::state_info ( int  state) const [inline]
ObjexxFCL::FArray2D_int const& protocols::flexpack::interaction_graph::FlexbbNode::state_offsets_for_aa_for_bb ( ) [inline]
utility::vector1< int > const& protocols::flexpack::interaction_graph::FlexbbNode::state_offsets_for_bb ( ) [inline]
bool protocols::flexpack::interaction_graph::FlexbbNode::state_unassigned ( ) const [virtual]
void protocols::flexpack::interaction_graph::FlexbbNode::update_internal_energy_sums ( )

Numerical noise creeps in to the total_energy as energies are added and subtracted due to neighbors accepting rotamer substitutions.

References core::pack::interaction_graph::NodeBase::get_num_incident_edges().

Referenced by protocols::flexpack::interaction_graph::FlexbbInteractionGraph::update_internal_energy_totals().

void protocols::flexpack::interaction_graph::FlexbbNode::update_internal_vectors ( ) [protected]
void protocols::flexpack::interaction_graph::FlexbbNode::update_one_body_energy ( int  state,
PackerEnergy  energy 
) [virtual]

Setter. This function is not called anywhere and should be removed...

Implements core::pack::interaction_graph::NodeBase.

void protocols::flexpack::interaction_graph::FlexbbNode::write_current_state_to_state_array ( ObjexxFCL::FArray1_int &  nodes_states)
void protocols::flexpack::interaction_graph::FlexbbNode::zero_one_body_energies ( ) [virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines