Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Attributes | List of all members
core::pack::interaction_graph::SymmOnTheFlyNode Class Referenceabstract

#include <SymmOnTheFlyInteractionGraph.hh>

Inheritance diagram for core::pack::interaction_graph::SymmOnTheFlyNode:
Inheritance graph
[legend]

Public Types

typedef std::pair< Vector, RealBoundingSphere
 
typedef
numeric::HomogeneousTransform
< Real
HTReal
 

Public Member Functions

 SymmOnTheFlyNode (InteractionGraphBase *owner, int node_id, int num_states)
 main constructor, no default or copy constructors More...
 
 ~SymmOnTheFlyNode () override
 
void set_rotamers (rotamer_set::RotamerSetCOP rotamers)
 
void zero_one_body_energies () override
 
void add_to_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &energy1b) override
 
void update_one_body_energy (int state, core::PackerEnergy energy) override
 
virtual void set_one_body_energy (int state, core::PackerEnergy energy)
 
void add_to_one_body_energy (int state, core::PackerEnergy energy) override
 
virtual void zero_one_body_energy (int state)
 
int get_num_res_types () const
 the number of distinct ResidueType objects pointed to by all of the rotamrs for this node. More...
 
int get_num_restype_groups () const
 the number of ResidueType groups, as defined by the RotamerSet's logic for grouping different ResidueType objects which have the same "name3" and the same neighbor radius. More...
 
utility::vector1< int > & get_num_states_for_restype_group ()
 
utility::vector1< int > const & get_num_states_for_restype_group () const
 
int get_num_states_for_restype_group (int restype_group)
 
int get_state_offset_for_restype_group (int restype_group) const
 
core::PackerEnergy get_one_body_energy (int state) const
 
bool distinguish_backbone_and_sidechain () const
 
void distinguish_backbone_and_sidechain (bool setting)
 
unsigned int count_static_memory () const override=0
 
unsigned int count_dynamic_memory () const override
 
core::PackerEnergy compute_rotamer_pair_energy (int edge_making_energy_request, int state_this, int state_other) const
 
conformation::Residue const & get_rotamer (int state, int subunit) const
 Returns a reference to the rotamer object in the requested subunit. This reference is valid only until the next call to get_rotamer, and which point, the coordinates inside the requested rotamer may change. More...
 
conformation::Residue const & get_asu_rotamer (int state) const
 Returns a reference to the rotamer object in the asymmetric unit. More...
 
BoundingSphere sc_bounding_sphere (int state, int subunit) const
 Returns a bounding sphere for the sidechain of a given state on a particular subunit. More...
 
BoundingSphere bb_bounding_sphere (int subunit) const
 Returns a bounding sphere for the backbone on a particular subunit. More...
 
SymmOnTheFlyEdgeget_incident_otf_edge (int edge)
 
SymmOnTheFlyEdge const * get_incident_otf_edge (int edge) const
 
SymmOnTheFlyNodeget_adjacent_otf_node (int index)
 
SymmOnTheFlyNode const * get_adjacent_otf_node (int index) const
 
SymmOnTheFlyInteractionGraphget_on_the_fly_owner ()
 
SymmOnTheFlyInteractionGraph
const * 
get_on_the_fly_owner () const
 
- Public Member Functions inherited from core::pack::interaction_graph::FixedBBNode
 ~FixedBBNode () override
 
 FixedBBNode (InteractionGraphBase *owner, int node_id, int num_states)
 
- Public Member Functions inherited from core::pack::interaction_graph::NodeBase
virtual ~NodeBase ()
 virtual destructor More...
 
 NodeBase (InteractionGraphBase *, int node_id, int num_states)
 Main constructor, no default constructor nor copy constructor. More...
 
int get_num_states () const
 returns the number of states for this node More...
 
std::list< EdgeBase * >::iterator add_edge (EdgeBase *edge_ptr)
 adds edge pointer to edge list; returns an iterator to the new list element More...
 
void drop_edge (std::list< EdgeBase * >::iterator edge_iterator)
 removes an edge iterator from the node's edge list More...
 
void drop_all_edges ()
 deletes all edges incident upon this node More...
 
EdgeBasefind_edge (int other_node_index) const
 a slow (linear) search for an edge. The edge is identified by the index of the node to which the edge connects this node. Returns NULL when there is no such connecting edge. More...
 
virtual void assign_zero_state ()=0
 
virtual void prepare_for_simulated_annealing ()=0
 
virtual void print () const =0
 
virtual bool state_unassigned () const =0
 
void depth_first_connected_component_counting ()
 performs a depth first traversal of the graph. Each node informs the graph that the traversal resulted in arriving at the node. More...
 
std::list< EdgeBase * >
::const_iterator 
edge_list_begin ()
 
std::list< EdgeBase * >
::const_iterator 
edge_list_end ()
 
int get_node_index () const
 
int get_num_incident_edges () const
 
int get_num_edges_to_smaller_indexed_nodes () const
 
int get_num_edges_to_larger_indexed_nodes () const
 
EdgeBase const * get_incident_edge (int index) const
 These functions are public for the sake of writing good unit tests. More...
 
EdgeBaseget_incident_edge (int index)
 
int get_index_of_adjacent_node (int index) const
 
NodeBase const * get_adjacent_node (int index) const
 
NodeBaseget_adjacent_node (int index)
 

Private Attributes

rotamer_set::RotamerSetCOP rotamer_set_
 
utility::vector1
< conformation::ResidueCOP
rotamers_
 Pointers to the rotamers held in the rotamer set. More...
 
utility::vector1
< utility::vector1
< conformation::ResidueOP > > 
rotamer_representatives_
 
utility::vector1< HTRealsymmetric_transforms_
 
utility::vector1< BoundingSpheresc_bounding_spheres_
 Bounding spheres for each of the rotamers in the asymmetric unit. More...
 
BoundingSphere bb_bounding_sphere_
 
int num_res_types_
 
int num_restype_groups_
 
utility::vector1< int > num_states_for_restype_group_
 
utility::vector1< int > state_offset_for_restype_group_
 
utility::vector1
< core::PackerEnergy
one_body_energies_
 
bool distinguish_backbone_and_sidechain_
 

Additional Inherited Members

- Protected Member Functions inherited from core::pack::interaction_graph::NodeBase
void update_edge_vector ()
 converts edge-list to edge-vector representation More...
 
bool get_edge_vector_up_to_date () const
 
InteractionGraphBase const * get_owner () const
 
InteractionGraphBaseget_owner ()
 

Member Typedef Documentation

typedef numeric::HomogeneousTransform< Real > core::pack::interaction_graph::SymmOnTheFlyNode::HTReal

Constructor & Destructor Documentation

core::pack::interaction_graph::SymmOnTheFlyNode::SymmOnTheFlyNode ( InteractionGraphBase owner,
int  node_id,
int  num_states 
)

main constructor, no default or copy constructors

core::pack::interaction_graph::SymmOnTheFlyNode::~SymmOnTheFlyNode ( )
overridedefault

Member Function Documentation

void core::pack::interaction_graph::SymmOnTheFlyNode::add_to_one_body_energies ( ObjexxFCL::FArray1< core::PackerEnergy > &  energy1b)
overridevirtual
void core::pack::interaction_graph::SymmOnTheFlyNode::add_to_one_body_energy ( int  state,
core::PackerEnergy  energy 
)
overridevirtual
SymmOnTheFlyNode::BoundingSphere core::pack::interaction_graph::SymmOnTheFlyNode::bb_bounding_sphere ( int  subunit) const

Returns a bounding sphere for the backbone on a particular subunit.

References bb_bounding_sphere_, and symmetric_transforms_.

Referenced by compute_rotamer_pair_energy().

core::PackerEnergy core::pack::interaction_graph::SymmOnTheFlyNode::compute_rotamer_pair_energy ( int  edge_making_energy_request,
int  state_this,
int  state_other 
) const

Compute all the energies that are appropriately two body energies for this edge. In the outter loop, pick one of the two nodes on this edge and consider its rotamer as having originated from the asymmetric unit. In the inner loop, iterate across all subunits, considering each subunit as the origination of the rotamer for the other node (that is, if ii == 1, then "this" node is treated as if its rotamer is originating from the asymmetric unit, and the "other" node takes its rotamer from subunit jj – which may very well be the asymmetric unit. If however, ii == 2, then the "other" node is treated as if its rotamer is originating from the asymmetric unit and the "this" node's rotamer is taken from jj). Now, inside this inner loop, with ii and jj known, first, ask the edge whether given ii, jj, and the amino acid types of the two rotamers, the two rotamers implied by ii and jj should have their interaction energies calculated. If not, continue. If so, then ask each edge for a representative rotamer, telling each node which subunit that rotamer should come from. This may likely require rotating and translating the rotamers from the asymmetric unit into the appropriate symmetric clone

References protocols::cluster::calibur::aa, core::conformation::Residue::aa(), core::chemical::aa_gly, core::chemical::aa_pro, core::pack::interaction_graph::SymmOnTheFlyInteractionGraph::active_score_types(), core::pack::interaction_graph::SymmOnTheFlyInteractionGraph::asymmetric_unit(), bb_bounding_sphere(), core::scoring::EMapVector::dot(), core::pack::interaction_graph::EdgeBase::edge_weight(), core::scoring::ScoreFunction::eval_cd_2b(), core::scoring::ScoreFunction::eval_cd_2b_bb_sc(), core::scoring::ScoreFunction::eval_cd_2b_sc_sc(), core::scoring::ScoreFunction::eval_ci_2b(), core::scoring::ScoreFunction::eval_ci_2b_bb_sc(), core::scoring::ScoreFunction::eval_ci_2b_sc_sc(), core::scoring::eval_scsc_sr2b_energies(), core::pack::interaction_graph::SymmOnTheFlyEdge::eval_type(), get_adjacent_otf_node(), get_asu_rotamer(), core::pack::interaction_graph::NodeBase::get_incident_edge(), get_incident_otf_edge(), core::pack::interaction_graph::NodeBase::get_index_of_adjacent_node(), core::pack::interaction_graph::NodeBase::get_node_index(), get_on_the_fly_owner(), get_rotamer(), core::pack::interaction_graph::SymmOnTheFlyEdge::long_range_interactions_exist(), core::pack::interaction_graph::SymmOnTheFlyInteractionGraph::note_rpe_calculated(), core::pack::interaction_graph::SymmOnTheFlyEdge::residues_adjacent_for_subunit_pair(), rotamer_set_, sc_bounding_sphere(), core::pack::interaction_graph::sc_sc, core::pack::interaction_graph::sc_whole, core::pack::interaction_graph::SymmOnTheFlyInteractionGraph::score_function(), core::conformation::Residue::seqpos(), core::pack::interaction_graph::SymmOnTheFlyEdge::short_range_interactions_exist(), core::conformation::symmetry::SymmetryInfo::subunits(), core::pack::interaction_graph::SymmOnTheFlyInteractionGraph::symm_info(), core::scoring::ScoreFunction::weights(), core::pack::interaction_graph::whole_sc, and core::pack::interaction_graph::whole_whole.

Referenced by core::pack::interaction_graph::SymmMinimalistNode::compute_pair_energy_for_alternate_state(), core::pack::interaction_graph::SymmLinearMemNode::compute_pair_energy_for_alternate_state(), core::pack::interaction_graph::SymmMinimalistNode::compute_pair_energy_for_current_state(), and core::pack::interaction_graph::SymmLinearMemNode::compute_pair_energy_for_current_state().

unsigned int core::pack::interaction_graph::SymmOnTheFlyNode::count_dynamic_memory ( ) const
overridevirtual
unsigned int core::pack::interaction_graph::SymmOnTheFlyNode::count_static_memory ( ) const
overridepure virtual
bool core::pack::interaction_graph::SymmOnTheFlyNode::distinguish_backbone_and_sidechain ( ) const
inline
void core::pack::interaction_graph::SymmOnTheFlyNode::distinguish_backbone_and_sidechain ( bool  setting)
SymmOnTheFlyNode * core::pack::interaction_graph::SymmOnTheFlyNode::get_adjacent_otf_node ( int  index)
inline
SymmOnTheFlyNode const * core::pack::interaction_graph::SymmOnTheFlyNode::get_adjacent_otf_node ( int  index) const
inline
conformation::Residue const & core::pack::interaction_graph::SymmOnTheFlyNode::get_asu_rotamer ( int  state) const

Returns a reference to the rotamer object in the asymmetric unit.

Returns a reference to the rotamer object in the requested subunit. This reference is valid only until the next call to get_rotamer, and which point, the coordinates inside the requested rotamer may change.

References rotamers_.

Referenced by compute_rotamer_pair_energy(), and core::pack::interaction_graph::SymmOnTheFlyEdge::set_residues_adjacent_for_subunit_pair().

SymmOnTheFlyEdge * core::pack::interaction_graph::SymmOnTheFlyNode::get_incident_otf_edge ( int  edge)
inline
SymmOnTheFlyEdge const * core::pack::interaction_graph::SymmOnTheFlyNode::get_incident_otf_edge ( int  edge) const
inline
int core::pack::interaction_graph::SymmOnTheFlyNode::get_num_res_types ( ) const
inline

the number of distinct ResidueType objects pointed to by all of the rotamrs for this node.

References num_res_types_.

int core::pack::interaction_graph::SymmOnTheFlyNode::get_num_restype_groups ( ) const
inline

the number of ResidueType groups, as defined by the RotamerSet's logic for grouping different ResidueType objects which have the same "name3" and the same neighbor radius.

References num_restype_groups_.

Referenced by core::pack::interaction_graph::SymmOnTheFlyEdge::set_residues_adjacent_for_subunit_pair().

utility::vector1< int >& core::pack::interaction_graph::SymmOnTheFlyNode::get_num_states_for_restype_group ( )
inline
utility::vector1< int > const& core::pack::interaction_graph::SymmOnTheFlyNode::get_num_states_for_restype_group ( ) const
inline
int core::pack::interaction_graph::SymmOnTheFlyNode::get_num_states_for_restype_group ( int  restype_group)
inline
SymmOnTheFlyInteractionGraph * core::pack::interaction_graph::SymmOnTheFlyNode::get_on_the_fly_owner ( )
inline
SymmOnTheFlyInteractionGraph const * core::pack::interaction_graph::SymmOnTheFlyNode::get_on_the_fly_owner ( ) const
inline
core::PackerEnergy core::pack::interaction_graph::SymmOnTheFlyNode::get_one_body_energy ( int  state) const
inline
conformation::Residue const & core::pack::interaction_graph::SymmOnTheFlyNode::get_rotamer ( int  state,
int  subunit 
) const
int core::pack::interaction_graph::SymmOnTheFlyNode::get_state_offset_for_restype_group ( int  restype_group) const
inline
SymmOnTheFlyNode::BoundingSphere core::pack::interaction_graph::SymmOnTheFlyNode::sc_bounding_sphere ( int  state,
int  subunit 
) const

Returns a bounding sphere for the sidechain of a given state on a particular subunit.

References sc_bounding_spheres_, and symmetric_transforms_.

Referenced by compute_rotamer_pair_energy().

void core::pack::interaction_graph::SymmOnTheFlyNode::set_one_body_energy ( int  state,
core::PackerEnergy  energy 
)
virtual
void core::pack::interaction_graph::SymmOnTheFlyNode::set_rotamers ( rotamer_set::RotamerSetCOP  rotamers)
void core::pack::interaction_graph::SymmOnTheFlyNode::update_one_body_energy ( int  state,
core::PackerEnergy  energy 
)
overridevirtual
void core::pack::interaction_graph::SymmOnTheFlyNode::zero_one_body_energies ( )
overridevirtual
void core::pack::interaction_graph::SymmOnTheFlyNode::zero_one_body_energy ( int  state)
virtual

Member Data Documentation

BoundingSphere core::pack::interaction_graph::SymmOnTheFlyNode::bb_bounding_sphere_
private

Referenced by bb_bounding_sphere(), and set_rotamers().

bool core::pack::interaction_graph::SymmOnTheFlyNode::distinguish_backbone_and_sidechain_
private
int core::pack::interaction_graph::SymmOnTheFlyNode::num_res_types_
private

Referenced by get_num_res_types(), and set_rotamers().

int core::pack::interaction_graph::SymmOnTheFlyNode::num_restype_groups_
private
utility::vector1< int > core::pack::interaction_graph::SymmOnTheFlyNode::num_states_for_restype_group_
private
utility::vector1< core::PackerEnergy > core::pack::interaction_graph::SymmOnTheFlyNode::one_body_energies_
private
utility::vector1< utility::vector1< conformation::ResidueOP > > core::pack::interaction_graph::SymmOnTheFlyNode::rotamer_representatives_
private

An array of arrays of rotamer_set_->get_n_residue_types() rotamer representatives who will be filled, just in time, with the transformed coordinates that map between the rotamers built for the asymmetric unit, and those on all of the symmetric clones.

Referenced by get_rotamer(), and set_rotamers().

rotamer_set::RotamerSetCOP core::pack::interaction_graph::SymmOnTheFlyNode::rotamer_set_
private
utility::vector1< conformation::ResidueCOP > core::pack::interaction_graph::SymmOnTheFlyNode::rotamers_
private

Pointers to the rotamers held in the rotamer set.

Referenced by count_dynamic_memory(), get_asu_rotamer(), get_rotamer(), and set_rotamers().

utility::vector1< BoundingSphere > core::pack::interaction_graph::SymmOnTheFlyNode::sc_bounding_spheres_
private

Bounding spheres for each of the rotamers in the asymmetric unit.

Referenced by sc_bounding_sphere(), and set_rotamers().

utility::vector1< int > core::pack::interaction_graph::SymmOnTheFlyNode::state_offset_for_restype_group_
private
utility::vector1< HTReal > core::pack::interaction_graph::SymmOnTheFlyNode::symmetric_transforms_
private

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