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

Defines the interaction graph that will keep track of changes to the hpatch score. More...

#include <HPatchInteractionGraph.hh>

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

Public Types

typedef
AdditionalBackgroundNodesInteractionGraph
< V, E, G
parent
 
- Public Types inherited from core::pack::interaction_graph::AdditionalBackgroundNodesInteractionGraph< V, E, G >
typedef std::vector
< BackgroundNode< V, E, G > * > 
BackgroundNodeVector
 
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * > 
BackgroundEdgeList
 
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * >::iterator 
BackgroundEdgeListIter
 
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G >
* >::const_iterator 
BackgroundEdgeListConstIter
 

Public Member Functions

 HPatchInteractionGraph (int num_nodes)
 
 ~HPatchInteractionGraph () override
 
pose::Pose const & pose () const
 
void set_pose (pose::Pose const &pose)
 
task::PackerTask const & packer_task () const
 
void set_packer_task (task::PackerTask const &task)
 We need a copy of the packer task to figure out which residues are being packed and/or designed. We have to figure the packing options because it determines whether a residue becomes a FirstClass (HPatchNode) node or a background node. This method gets called in IGSupport.cc. More...
 
rotamer_set::RotamerSets const & rotamer_sets () const
 
void set_rotamer_sets (rotamer_set::RotamerSets const &rotsets)
 
void set_score_weight (Real weight)
 
void initialize (pack_basic::RotamerSetsBase const &rot_sets) override
 
void set_num_residues_in_protein (Size num_res)
 tells the graph how many residues there are total in the protein More...
 
void set_num_background_residues (Size num_background_residues)
 tells the graph how many residues there are as part of the protein that are not part of the combinatorial optimization process – they are part of the background More...
 
void set_residue_as_background_residue (int residue)
 informs the graph that a particular residue is part of the background More...
 
void set_background_residue_rotamer_dots (Size residue, conformation::Residue const &rotamer)
 Creates and inits a RotamerDots object for a background residue. the residue must first have been declared to be a background residue. More...
 
void set_rotamer_dots_for_node_state (Size node_index, Size state, conformation::Residue const &rotamer)
 store the coordinates for a particular rotamer More...
 
void prepare_graph_for_simulated_annealing () override
 Prepares the graph to begin simulated annealing. More...
 
void blanket_assign_state_0 () override
 assigns state 0 – the unassigned state – to all (first class) vertices in the graph More...
 
Real get_hpatch_score ()
 
void set_errorfull_deltaE_threshold (core::PackerEnergy deltaE) override
 Allows the sim-annealer to specify a deltaE threshold above which, it is no longer necessary to be very accurate. More...
 
void consider_substitution (int node_ind, int new_state, core::PackerEnergy &delta_energy, core::PackerEnergy &prev_energy_for_node) override
 Returns the (possibly approximate) change in energy induced by switching a particular node from its currently assigned state to some alternate state. More...
 
core::PackerEnergy calculate_hpatch_deltaE ()
 
void register_fc_node_in_state0 ()
 
void register_fc_node_affected_by_rotsub (int fc_node_ind)
 Called by HPatchNodes to specify which first-class Nodes are affected by a given rotamer substitution. If a given consider gets rejected, then fc_nodes_near_rotsub_ gets cleared when reset_from_previous_deltaHpatch_comp. More...
 
void register_bg_node_affected_by_rotsub (int bg_node_ind)
 
void update_disjoint_sets_using_cache (conformation::Residue const &rsd, InvRotamerDots const &invdots, utility::vector1< Size > const &exp_hphobes, Size residue_djs_offset, utility::vector1< utility::vector1< bool > > const &atom_atom_self_overlap, utility::graph::DisjointSets &ds)
 Helper function for calculating the hpatch score. This function is specific for intra-residue overlaps, the one below is for inter-residue overlaps. The reason they're separate is because the inner loops have different start locations. intra-residue nested loops only have to go over greater-indexed atoms because of commutativity. inter-residue nested loops have to do all ii-res x jj-res atom-atom overlaps. More...
 
void update_disjoint_sets_using_cache (conformation::Residue const &rsd1, InvRotamerDots const &invdots1, utility::vector1< Size > const &exp_hphobes1, Size djs_offset_1, conformation::Residue const &rsd2, InvRotamerDots const &invdots2, utility::vector1< Size > const &exp_hphobes2, Size djs_offset_2, utility::vector1< utility::vector1< bool > > const &atom_atom_overlaps, utility::graph::DisjointSets &ds)
 Helper function for calculating the hpatch score. More...
 
Real calculate_alt_state_hpatch_score ()
 Constructs an atom-level graph for the alternate state assignment on the IG and then runs the union-find algorithm on it to obtain the connected components. Each connected component is a surface hydrophobic patch. What the total energy of the IG should be hasn't yet been decided. One possibility will be to assign every CC/patch a score and return the sum as the total score. More...
 
core::PackerEnergy commit_considered_substitution () override
 Commits the substitution that the sim annealer had previously asked the graph to consider. Returns the accurate total energy for the graph. More...
 
core::PackerEnergy set_network_state (ObjexxFCL::FArray1_int &node_states) override
 Switch the state assignment of every first class node in the graph. Useful, for instance, if you want to switch to the best network state that you've found so far. More...
 
core::PackerEnergy get_energy_current_state_assignment () override
 returns the energy of the entire graph under the current network state assignment. Also sends a bunch of information to standard error. Only seems to be called by the MultiCoolAnnealer. More...
 
int get_edge_memory_usage () const override
 Should write the state assigned to each first class vertex to the screen. More...
 
unsigned int count_static_memory () const override
 
unsigned int count_dynamic_memory () const override
 
virtual Real get_energy_sum_for_vertex_group (Size group_id)
 returns the sum of the PD energy and the hpatch energy for all members first class members of a user-defined vertex subset. Unimplemented. More...
 
void print_internal_energies_for_current_state_assignment ()
 
void print () const override
 useful for debugging More...
 
int bg_node_2_resid (Size node_index)
 Provides read access to the bg to resid array. Returns -1 if the index is not in bounds. More...
 
std::vector< int > get_network_state () const
 Returns the state on each FCNode, but not necessarily in pose resid order. Only used by the unit tests. More...
 
void set_observed_sufficient_boolean_true ()
 Sets the observed_sufficient_hpatch_E_to_predict_min_ to true. Only used by the unit tests. More...
 
void get_all_sasas (utility::vector1< Real > &node_sasas, utility::vector1< Real > &bgnode_sasas)
 Iterates over all nodes and bgnodes brute-force recounting. More...
 
HPatchNode< V, E, G > * get_hpatch_node (int index) const
 
HPatchBackgroundNode< V, E, G > * get_hpatch_bg_node (int index) const
 
- Public Member Functions inherited from core::pack::interaction_graph::AdditionalBackgroundNodesInteractionGraph< V, E, G >
 AdditionalBackgroundNodesInteractionGraph (int num_nodes)
 AdditionalBackgroundNodesInteractionGraph constructor; no default or copy constructors; no operator =. More...
 
 ~AdditionalBackgroundNodesInteractionGraph () override
 AdditionalBackgroundNodesInteractionGraph destructor. More...
 
unsigned int getTotalMemoryUsage () const override
 Returns an int representing the total amount of memory in bytes used by this graph. More...
 
unsigned int count_dynamic_memory () const override
 Returns an int representing the amount of dynamic memory in bytes used by this graph. More...
 
int get_num_background_nodes () const
 

Static Public Member Functions

static void print_hpatch_avoidance_stats ()
 reports on the level of success for hpatch score calculation procrastination More...
 
static void reset_hpatch_avoidance_stats ()
 resets static member variables of HPatchIG that measure how worthwhile hpatch calculation procrastination is. More...
 

Protected Member Functions

NodeBasecreate_new_node (int node_index, int num_states) override
 factory method pattern for instantiation of HPatchNode objects, used by InteractionGraphBase class. More...
 
EdgeBasecreate_new_edge (int index1, int index2) override
 factory method pattern for instantiation of HPatchEdge objects, used by InteractionGraphBase class. More...
 
BackgroundNode< V, E, G > * create_background_node (int node_index) override
 factory method pattern for instantiation of HPatchBackgroundNode objects, used by AdditionalBackgroundNodesInteractionGraph class. More...
 
BackgroundToFirstClassEdge< V,
E, G > * 
create_background_edge (int fc_node_index, int bg_node_index) override
 factory method pattern for instantiation of HPatchBackgroundEdge objects, used by AdditionalBackgroundNodesInteractionGraph class. More...
 
void track_hpatch_E_min ()
 Keeps track of the minimum hpatch score seen. Every 100 substitutions, updates the variable hpatch_score_min_last_100. More...
 
void update_internal_energy_totals_hpatch ()
 After every 2^10 commits, the graph traverses its nodes and edges and re-tallies the total energy of the current state assignment. This update prevents the accumulation of numerical drift, increasing accuracy. More...
 
- Protected Member Functions inherited from core::pack::interaction_graph::AdditionalBackgroundNodesInteractionGraph< V, E, G >
void clean_up_bgtfc_edges_marked_for_deletion ()
 Remove those BackgroundToFirstClassEdges that have marked themselves for deletion. More...
 
void drop_background_edge (BackgroundEdgeListIter iter)
 Constant time edge removal. More...
 
void set_num_background_nodes (int num_bg_nodes)
 sets the number of background nodes in the graph. Should be called no more than once. Some problem instances do not require background nodes. More...
 
void add_background_edge (int first_class_node_index, int bg_node_index)
 adds a BackgroundToFirstClassEdge to the graph and performs the requisite bookkeepking. More...
 
BackgroundToFirstClassEdge< V,
E, G > * 
find_background_edge (int first_class_node_index, int bg_node_index) const
 returns a pointer to the background edge, identified by the indices of the first and second class nodes it connects. Returns the null pointer if the edge does not exist. Possibly linear time operation (in the number of BackgroundToFirstClassEdges). More...
 
int get_num_bg_edges () const
 
BackgroundNode< V, E, G > * get_background_node (int index) const
 
void prepare_graph_for_simulated_annealing () override
 invokes prepare_for_simulated_annealing on each of the BackgroundToFirstClassEdges and then invokes prepare_for_simulated_annealing on each of the BackgroundNodes. More...
 
BackgroundEdgeListConstIter get_bg_edge_list_begin () const
 
BackgroundEdgeListConstIter get_bg_edge_list_end () const
 

Private Member Functions

void reset_from_previous_deltaHpatch_comp ()
 Iterates through all FCNodes and BGNodes affected by the last deltaHpatch computation, and resets their state. More...
 
bool decide_procrastinate_hpatch_computations (Real const pd_deltaE, Real const threshold) const
 
void detect_background_residue_and_first_class_residue_overlap ()
 iterates across all pairs of first- and second-class nodes to determine which share sphere overlaps. Adds a HPatchBackgroundEdge between any pair that do. More...
 
void initialize_bg_bg_overlaps ()
 computes the background overlaps for all background node pairs More...
 
void initialize_bg_bg_atom_atom_overlaps ()
 initializes the atom-atom overlap vector stored by the IG for all the bg-bg node overlaps. More...
 
utility::vector1
< utility::vector1< bool >
> const & 
get_bg_bg_atom_atom_overlaps (Size node1_index, Size node2_index)
 
void init_SASA_radii_from_database ()
 Puts the SASA radii values in the database into the passed in radii array. Temporary location. Should only be done once. More...
 
 HPatchInteractionGraph ()
 
 HPatchInteractionGraph (HPatchInteractionGraph< V, E, G > const &)
 
HPatchInteractionGraph< V, E, G > & operator= (HPatchInteractionGraph< V, E, G > const &)
 

Private Attributes

pose::PoseOP pose_
 
task::PackerTaskOP packer_task_
 
rotamer_set::RotamerSetsOP rotamer_sets_
 
core::Real hpatch_score_weight_
 
Size num_total_residues_
 
Size num_residues_assigned_as_background_
 
utility::vector1< Sizeresid_2_bgenumeration_
 
utility::vector1< Sizebgenumeration_2_resid_
 
utility::vector1
< utility::vector1< Size > > 
bg_bg_respairs_w_hphobe_olap_
 
utility::vector1
< utility::vector1
< utility::vector1
< utility::vector1< bool > > > > 
bg_bg_atom_atom_overlaps_
 
utility::vector1
< utility::vector1
< utility::vector1
< utility::vector1< bool > > > > 
curr_bg_bg_exhpobeolap_
 
utility::vector1
< utility::vector1
< utility::vector1
< utility::vector1< bool > > > > 
alt_bg_bg_exhpobeolap_
 
bool some_node_in_state_0_
 
utility::vector1< Sizefc_nodes_near_rotsub_
 
utility::vector1< boolfc_nodes_near_rotsub_bool_
 
utility::vector1< Sizebg_nodes_near_rotsub_
 
utility::vector1< boolbg_nodes_near_rotsub_bool_
 
utility::vector1< Sizefc_exp_hphobe_djs_offsets_
 "djs" for DisJoint Sets. An abuse of the idea of an acronym. More...
 
utility::vector1< Sizefc_n_exp_hphobes_
 
utility::vector1< Sizebg_exp_hphobe_djs_offsets_
 
utility::vector1< Sizebg_n_exp_hphobes_
 
utility::vector1
< exposed_hydrophobic_data
djs_id_2_hphobe_index_
 
utility::vector1< Realep_sasa_for_djs_node_
 
utility::vector1< Sizereps_for_nonzero_rank_ccs_
 extract the disjoint sets connected component information by hand (faster) More...
 
utility::vector1< Sizedjs_rep_node_index_2_cc_index_
 
utility::vector1< Realsasa_for_cc_
 
bool prepared_for_simulated_annealing_
 
bool observed_sufficient_hpatch_E_to_predict_min_
 
Real hpatch_score_min_last_100_
 
Real hpatch_score_min_recent_
 
Size num_substitutions_since_hpatch_min_update_
 
bool calculated_hpatch_deltaE_
 
core::PackerEnergy deltaE_for_substitution_
 
Size node_considering_alt_state_
 
Size alt_state_being_considered_
 
Real total_energy_current_state_assignment_
 
Real total_energy_alternate_state_assignment_
 
Real hpatch_energy_current_state_assignment_
 
Real hpatch_energy_alternate_state_assignment_
 
int num_commits_since_last_update_
 
float deltaE_threshold_for_avoiding_hpatch_calcs_
 

Static Private Attributes

static Size num_state_substitutions_considered_ = 0
 
static Size num_hpatch_comps_procrastinated_ = 0
 
static Size num_hpatch_comps_later_made_ = 0
 
static utility::vector1< Realradii_
 
static bool initialized_SASA_radii = false
 
static const int COMMIT_LIMIT_BETWEEN_UPDATES = 4096
 
static std::string carbon_atom = "C"
 
static std::string sulfur_atom = "S"
 

Detailed Description

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

Defines the interaction graph that will keep track of changes to the hpatch score.

In addition to implementing the virtual base class methods, this class additionally defines methods relating to keeping track of data relating to hpatch.

Member Typedef Documentation

template<typename V, typename E, typename G>
typedef AdditionalBackgroundNodesInteractionGraph< V, E, G > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::parent

Constructor & Destructor Documentation

template<typename V , typename E , typename G >
core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::HPatchInteractionGraph ( int  num_nodes)

Main constructor. Initializes all member variables to 0 and false.

References core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::fc_nodes_near_rotsub_.

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

Member Function Documentation

template<typename V , typename E , typename G >
int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_node_2_resid ( Size  node_index)

Provides read access to the bg to resid array. Returns -1 if the index is not in bounds.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::blanket_assign_state_0 ( )
override

assigns state 0 – the unassigned state – to all (first class) vertices in the graph

This is the 3rd entry point into the HIG. It is called by the Annealer just before simulated annealing and rotamer substitutions begin to init the graph to unassigned values everywhere.

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

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::calculate_alt_state_hpatch_score ( )

Constructs an atom-level graph for the alternate state assignment on the IG and then runs the union-find algorithm on it to obtain the connected components. Each connected component is a surface hydrophobic patch. What the total energy of the IG should be hasn't yet been decided. One possibility will be to assign every CC/patch a score and return the sum as the total score.

Queries all of the Nodes and BGNodes to determine the connectivity assuming the alternate state.

References protocols::cluster::calibur::aa, protocols::mean_field::arg_max(), core::conformation::Residue::atom_name(), core::conformation::Residue::atom_type(), core::chemical::AtomType::element(), core::pack::interaction_graph::SurfacePotential::MAX_HPATCH_AREA, core::pack::interaction_graph::SurfacePotential::MAX_HPATCH_SCORE, protocols::hybridization::score, and core::pack::interaction_graph::TR_HIG().

template<typename V , typename E , typename G >
core::PackerEnergy core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::calculate_hpatch_deltaE ( )

Goes through the entire process of calculating the hpatch deltaE for a substitution.

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

template<typename V , typename E , typename G >
core::PackerEnergy core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::commit_considered_substitution ( )
override

Commits the substitution that the sim annealer had previously asked the graph to consider. Returns the accurate total energy for the graph.

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::consider_substitution ( int  node_ind,
int  new_state,
core::PackerEnergy delta_energy,
core::PackerEnergy prev_energy_for_node 
)
override

Returns the (possibly approximate) change in energy induced by switching a particular node from its currently assigned state to some alternate state.

First, queries the HPatchNode for the pairwise-decomposable (PD) energy. If the PD difference implies a collision, then the HPatchIG pretends as if the state substitution causes the best improvement possible in hpatch score, and returns the PD difference + pretend hpatch difference. It will procrastinate computing the actual hpatch score difference until the guiding SimAnnealer decides to commit the substitution. If the SimAnnealer rejects the substitution, then the work to compute the hpatch score is never done. If it is unclear that the SimAnnealer will reject the substitution based on the PD difference, then the Graph goes ahead and computes the change in hpatch score accurately.

This function is the 4th major entry point from the Annealer into the HIG.

Also returns the sum of the two body energies for the node in its current state; the sim-annealer accepts state substitutions at higher chance if the original state was also at a poor energy.

Parameters
node_ind- [in] - the index of the (first class) node new_state - [in] - the alternate state that the node should consider delta_energy - [out] - the change in energy induced on the entire graph by substituting a node's current state with the alternate. This energy may be inaccurate if it exceeds a threshold set by the sim-annealer. prev_energy_for_node - [out] - the sum of the pair-wise decomposable portion of the energy function for the node's currently assigned state

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

template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::count_dynamic_memory ( ) const
override
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::count_static_memory ( ) const
override
template<typename V , typename E , typename G >
BackgroundToFirstClassEdge< V, E, G > * core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_background_edge ( int  fc_node_index,
int  bg_node_index 
)
overrideprotectedvirtual
template<typename V , typename E , typename G >
BackgroundNode< V, E, G > * core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_background_node ( int  node_index)
overrideprotectedvirtual
template<typename V , typename E , typename G >
EdgeBase * core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_new_edge ( int  index1,
int  index2 
)
overrideprotected

factory method pattern for instantiation of HPatchEdge objects, used by InteractionGraphBase class.

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

template<typename V , typename E , typename G >
NodeBase * core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_new_node ( int  node_index,
int  num_states 
)
overrideprotected

factory method pattern for instantiation of HPatchNode objects, used by InteractionGraphBase class.

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

template<typename V , typename E , typename G >
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::decide_procrastinate_hpatch_computations ( Real const  pd_deltaE,
Real const  threshold 
) const
private

Makes the decision whether or not to procrastinate calculating the hpatch score. Basically, if the PD energy got better (dE < 0) then return false so we don't procrastinate the calculation (because the alternate state probably will be accepted?). If the best guess for the hpatch deltaE also comes back better (dE < 0), then return false. Finally, if the difference between the deltaE for the PD terms and the (guessed) hpatch deltaE is greater than the threshold, return true so we do procrastinate. So basically if the energy (especially the PD energy) gets worse, procrastinate. Otherwise, don't.

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

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

iterates across all pairs of first- and second-class nodes to determine which share sphere overlaps. Adds a HPatchBackgroundEdge between any pair that do.

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_all_sasas ( utility::vector1< Real > &  node_sasas,
utility::vector1< Real > &  bgnode_sasas 
)

Iterates over all nodes and bgnodes brute-force recounting.

References core::scoring::motif::get_sasa().

template<typename V , typename E , typename G >
utility::vector1< utility::vector1< bool > > const & core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_bg_bg_atom_atom_overlaps ( Size  node1_index,
Size  node2_index 
)
private
template<typename V , typename E , typename G >
int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_edge_memory_usage ( ) const
override

Should write the state assigned to each first class vertex to the screen.

Should return a measurement of the memory used by the interaction graph to store the rotamer pair energies. Unimplemented.

template<typename V , typename E , typename G >
core::PackerEnergy core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_energy_current_state_assignment ( )
override

returns the energy of the entire graph under the current network state assignment. Also sends a bunch of information to standard error. Only seems to be called by the MultiCoolAnnealer.

template<typename V , typename E , typename G >
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_energy_sum_for_vertex_group ( Size  group_id)
virtual

returns the sum of the PD energy and the hpatch energy for all members first class members of a user-defined vertex subset. Unimplemented.

template<typename V, typename E, typename G>
HPatchBackgroundNode< V, E, G >* core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_hpatch_bg_node ( int  index) const
inline
template<typename V, typename E, typename G>
HPatchNode< V, E, G >* core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_hpatch_node ( int  index) const
inline
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_hpatch_score ( )
template<typename V , typename E , typename G >
std::vector< int > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::get_network_state ( ) const

Returns the state on each FCNode, but not necessarily in pose resid order. Only used by the unit tests.

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

Puts the SASA radii values in the database into the passed in radii array. Temporary location. Should only be done once.

References core::chemical::AtomTypeSet::extra_parameter_index(), and core::chemical::AtomTypeSet::n_atomtypes().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::initialize ( pack_basic::RotamerSetsBase const &  rot_sets_base)
override

This function is the 1st major entry point (well, after the constructor) into the HIG. It needs to set residues that are not changing as background residues

Oldest comments: In ++, there's a file InteractionGraphSupport.cc which is an analog of the InteractionGraphFactory in mini. In ++, the InteractionGraphSupport file instantiates and initializes, depending on the command line switches, the right interaction graph. For the HPatchInteractionGraph, it first initializes the PDInteractionGraph (which is the base) and then calls the HPatchIG initialize method.

The thing is that this initialize method can't be called when the graph is constructed in the InteractionGraphFactory. The reason is that the PDInteractionGraph base initialize() method is NOT called until later in the pack rotamers process. (Actually it's called from within rotsets->compute_energies().) Only after the rotsets->compute energies returns can I stick in an initialize() method call for the HPatchInteractionGraph (HIG). But then that's too late because the rotsets object has already computed some energies. Perhaps that's ok though. The rotsets object only calculates the PD energy terms - it doesn't do anything with non-PD terms.

If a HIG init method is called during construction of the HIG, then the init method that's called by the rotsets object causes all the node info that was set in the HIG init method to be lost because the rotsets init method recreates all the nodes in the interaction graph when it runs. (That was a fun behaviour to figure out.)

So the solution I'm going for is to call this init method in the prepare for simulated annealing method of this class. That gets called just before SA starts, so it will do the task above then. It doesn't really matter when the task gets done as long as it happens before SA starts. This also means that the HIG will now have to keep a reference to the Pose, the Task, and the RotamerSets objects since it needs all of these things to do tasks 1) and 2). (For the port of this HPatchIG, we might not need the task and rotamer sets objects.)

prepare_graph_for_simulated_annealing gets called by the FixbbSA::run() method. Before this method, the rotamersets object has called compute_energies() (the whole process being started in pack_rotamers) which calls initialize() on the IG. I need to place the HIG init method directly after the IG init method that the RS object calls.

Newest comments: Don't call the parent classes initialize method because that calls create_new_node for all designable positions, making every node in the graph a first class residue (erroneously!). Then after that, some residues are set as background residues so I'm surprised things were even working at all! Unfortunately, the class hierarchy makes setting designable residues that are surface-exposed be the only FirstClassNodes difficult. What has to happen is that non-designable positions will be the BGNodes and molten positions will be FCNodes. Then, each type of node will store a boolean flagging whether it is surface-exposed or not. Then, when a consider sub call is made, the nodes will immediately check the value of the boolean and return 0 immediately if it's not surface-exposed.

07/16/2008- Unfortunately, I can't just replicate all of the functionality of the parent classes initialize method here because it's different for PDIGs and LMIGs. And some of the their corresponding function calls are not defined in both classes so I get compile errors if I try to do it this way. There are a few possible solutions I could use for the problem of schizophrenic node (nodes which are getting assigned as BG and FC nodes). 1) I could just use Andrew's LFs designation that any designable or packable node is a FC node and any node not being packed or designed is a BGNode. This approach is the easiest to implement but since nodes that are only being packed aren't changing in sequence, their surface score shouldn't be changing so it's an inefficiency. 2) I could change the "create_node" call in this class to return either a Node or BGNode depending on what the packer_task has in it. Then the parent templated IG classes would get the right kind of node. But then, I would have to potentially change the AddtlBGNodesIG class method "setNumResiduesAsBackground" because in that call is a for loop which creates background nodes. This would complicate creating new non-PD terms in mini, because it would be specific for this case (surface). 3) Figure out some OO way of handling the distinction between packable and nonpackable residues. The OO-correct way to do this would probably be to subclass AdditionalBackgroundNodesInteractionGraph to something like SASAExposedNodesInteractionGraph and then make the HPatchInteractionGraph inherit that one. Then "FirstClassNodes" would be nodes that are designable and surface-exposed; all other nodes would be "BackgroundNodes".

Since it would require alot of work to write another derived class for probably not that significant (or necessary) performance improvement, I'll just make packable residues be FC nodes also. So continue to call the parent classes initialize() method. Just set residues which are not packable nor designable to BG nodes.

Newest Newest comments": The above text was the case for the SurfaceIG. Turns out that we really do want all packable and designable positions to be FC Nodes. So there's no inefficiency here, as was the case for the SurfaceIG.

References core::pack::rotamer_set::RotamerSets::nmoltenres(), and core::pack::interaction_graph::TR_HIG().

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

initializes the atom-atom overlap vector stored by the IG for all the bg-bg node overlaps.

During simulated annealing, the IG has to determine the connected components after every sub. To do this, it has to check a very large number of atom pairs for overlap. These pairs include intra-Node atom-pairs, intra-BGNode atom-pairs, BGNode-BGNode atom-pairs, BGNode-FCNode atom-pairs, and FCNode-FCNode atom-pairs. Now intra-Node/BGNode atom-pairs can be stored on the Nodes and BGNodes. Similarly, BG-Node-FCNode and FCNode-FCNode atom-pairs can be held on the BGEdges and FCEdges, respectively. Unfortunately, edges between BGNodes do not exist in the IG. So, we have to init a vector that will be held by the IG when we initialize the dot counts and sphere overlaps for all the BGNode pairs. The reason we do this is so that we don't have to go and repeat the calculation of all these sphere overlaps after every sub. These will remain constant during the course of a simulation.

The hard part is figuring out what kind of data structure I can use here that will make it easy for the IG to get what it needs when it's calculating a score.

Making the data structure a 4D vector, i.e. a vector of vectors of vectors of vectors of bools. The outer two vectors are the two bgnode ids we're checking overlap for. The innermost two vectors are the atom-atom overlap information for two given bgnode ids. Only the higher indexed nodes have to contain vectors of vectors of bools. For instance, the outer two vectors will have (1,2), (1,3), (1,4), ... (2,3), (2,4), (2,5), ..., (3,4), (3,5), (3,6), etc The inner two vectors is just an all-atoms-in-ii x all-atoms-in-jj.

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

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

computes the background overlaps for all background node pairs

template<typename V, typename E, typename G>
HPatchInteractionGraph< V, E, G >& core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::operator= ( HPatchInteractionGraph< V, E, G > const &  )
private
template<typename V, typename E, typename G>
task::PackerTask const& core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::packer_task ( ) const
inline
template<typename V, typename E, typename G>
pose::Pose const& core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::pose ( ) const
inline
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::prepare_graph_for_simulated_annealing ( )
override

Prepares the graph to begin simulated annealing.

Invokes both base-class prepare_graph_for_simulated_annealing subroutines: InteractionGraphBase first, to prepare the HPatchNodes and HPatchEdges. Then the AdditionalBackgroundNodesInteractionGraph, to prepare the HPatchBackgroundNodes, the HPatchBackgroundEdges, and to do a little more preparing of the HPatchNodes. Also computes background/background overlap. This is the 2nd major entry point into the HIG.

Remarks
As it is written, it should only be executed once; that will change, however if we make HPatchInteractionGraph work with ligands (ligands that stay fixed during any single sim annealing process, but that move between anealings.

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

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

useful for debugging

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::print_hpatch_avoidance_stats ( )
static
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::print_internal_energies_for_current_state_assignment ( )
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::register_bg_node_affected_by_rotsub ( int  bg_node_ind)
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::register_fc_node_affected_by_rotsub ( int  fc_node_ind)

Called by HPatchNodes to specify which first-class Nodes are affected by a given rotamer substitution. If a given consider gets rejected, then fc_nodes_near_rotsub_ gets cleared when reset_from_previous_deltaHpatch_comp.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::register_fc_node_in_state0 ( )

Initialized to true in the constructor, and also set to true after a call to blanket_assign_state0. After all nodes get assigned a state, then this boolean is set to false. It is used to reduce the number of operations that are performed when annealing is just beginning. Functionality added by Andrew - best commenting I can do. -RJ

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

Iterates through all FCNodes and BGNodes affected by the last deltaHpatch computation, and resets their state.

the Node consider() function is the main entry point from the HIG when the annealer considers a sub. need to make sure that the node's alt_state is the same as the current state before we start incrementing/decrementing things or otherwise you wind up with total SASAs that are wrong. alt state will be the same as current state on the first time through because of prep for simA call, but not necessarily the case on following substitutions coming from annealer. any given sub only sets the alt state SASA on that particular (changing) node. all of the other nodes which were called on to consider a substitution and whose SASAs changed need to reset their alt state dots also (or, otherwise, it appears as if the substitution was committed). More about this problem can be read in the comments for commit_considered_substitution()

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::reset_hpatch_avoidance_stats ( )
static

resets static member variables of HPatchIG that measure how worthwhile hpatch calculation procrastination is.

Referenced by core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_errorfull_deltaE_threshold().

template<typename V, typename E, typename G>
rotamer_set::RotamerSets const& core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::rotamer_sets ( ) const
inline
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_background_residue_rotamer_dots ( Size  residue,
conformation::Residue const &  rotamer 
)

Creates and inits a RotamerDots object for a background residue. the residue must first have been declared to be a background residue.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_errorfull_deltaE_threshold ( core::PackerEnergy  deltaE)
override

Allows the sim-annealer to specify a deltaE threshold above which, it is no longer necessary to be very accurate.

When the annealer asks the graph to consider a state substitution that produces a large collision, the graph may approximate the hpatch deltaE instead of performing expensive sphere overlap computations. The deltaE returned by consider_substitution() will be inaccurate, but if the annealer is unlikely to accept the substitution, then time can be saved. The graph guarantees that if the annealer does commit that substitution that it will go back and perform the hpatch computations and return an accurate total energy for the graph.

References core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::print_hpatch_avoidance_stats(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::reset_hpatch_avoidance_stats(), and core::pack::interaction_graph::TR_HIG().

template<typename V , typename E , typename G >
core::PackerEnergy core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_network_state ( ObjexxFCL::FArray1_int &  node_states)
override

Switch the state assignment of every first class node in the graph. Useful, for instance, if you want to switch to the best network state that you've found so far.

This function is the last major entry point from the Annealer into the HIG.

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_num_background_residues ( Size  num_background_residues)

tells the graph how many residues there are as part of the protein that are not part of the combinatorial optimization process – they are part of the background

The other half of switching between enumeration schemes for the background residues is knowing how many background residues there are.

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_num_residues_in_protein ( Size  num_res)

tells the graph how many residues there are total in the protein

The graph maintains its own enumeration for the background residues; but asks that anyone wanting to refer to them use their original resid. The graph has to switch back and forth between enumeration schemes and must know how many residues there are total to do that efficiently.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_observed_sufficient_boolean_true ( )

Sets the observed_sufficient_hpatch_E_to_predict_min_ to true. Only used by the unit tests.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_packer_task ( task::PackerTask const &  task)

We need a copy of the packer task to figure out which residues are being packed and/or designed. We have to figure the packing options because it determines whether a residue becomes a FirstClass (HPatchNode) node or a background node. This method gets called in IGSupport.cc.

References core::pack::task::PackerTask::clone().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_pose ( pose::Pose const &  pose)

All throughout this class, I refer back to the original pose sequence. To be able to do that, I need to have a handle to the pose in this class. That's what this method provides. In IGFactory.cc, this method gets called with the pose object that's being packed/designed.

References protocols::comparative_modeling::features::G, and core::pack::interaction_graph::TR_HIG().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_residue_as_background_residue ( int  residue)

informs the graph that a particular residue is part of the background

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

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_rotamer_dots_for_node_state ( Size  node_index,
Size  state,
conformation::Residue const &  rotamer 
)
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_rotamer_sets ( rotamer_set::RotamerSets const &  rotsets)

It's nice to be able to print out information about the possible rotamer during initialization of the IG. This method gets called in IGSupport.cc.

template<typename V, typename E, typename G>
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_score_weight ( Real  weight)
inline
template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::track_hpatch_E_min ( )
protected

Keeps track of the minimum hpatch score seen. Every 100 substitutions, updates the variable hpatch_score_min_last_100.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::update_disjoint_sets_using_cache ( conformation::Residue const &  rsd,
InvRotamerDots const &  invdots,
utility::vector1< Size > const &  exp_hphobes,
Size  residue_djs_offset,
utility::vector1< utility::vector1< bool > > const &  atom_atom_self_overlap,
utility::graph::DisjointSets &  ds 
)

Helper function for calculating the hpatch score. This function is specific for intra-residue overlaps, the one below is for inter-residue overlaps. The reason they're separate is because the inner loops have different start locations. intra-residue nested loops only have to go over greater-indexed atoms because of commutativity. inter-residue nested loops have to do all ii-res x jj-res atom-atom overlaps.

References core::pack::interaction_graph::InvRotamerDots::atom_overlap_is_exposed().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::update_disjoint_sets_using_cache ( conformation::Residue const &  rsd1,
InvRotamerDots const &  invdots1,
utility::vector1< Size > const &  exp_hphobes1,
Size  djs_offset_1,
conformation::Residue const &  rsd2,
InvRotamerDots const &  invdots2,
utility::vector1< Size > const &  exp_hphobes2,
Size  djs_offset_2,
utility::vector1< utility::vector1< bool > > const &  atom_atom_overlaps,
utility::graph::DisjointSets &  ds 
)

Helper function for calculating the hpatch score.

References core::pack::interaction_graph::InvRotamerDots::atom_overlap_is_exposed().

template<typename V , typename E , typename G >
void core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::update_internal_energy_totals_hpatch ( )
protected

After every 2^10 commits, the graph traverses its nodes and edges and re-tallies the total energy of the current state assignment. This update prevents the accumulation of numerical drift, increasing accuracy.

this function becomes less necessary in this implementation since the graph itself calculates the score. no longer do we have the situation where the nodes/bgnodes keep the score and the IG just applies deltaE's every commit. now the IG calculates the score for every consider/commit. the only "drift" that may accumulate would result from not calculating de novo the PD current state energy for a long time. that's why I'm leaving this function in.

References core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::print_hpatch_avoidance_stats().

Member Data Documentation

template<typename V, typename E, typename G>
utility::vector1< utility::vector1< utility::vector1< utility::vector1< bool > > > > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::alt_bg_bg_exhpobeolap_
private
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::alt_state_being_considered_
private
template<typename V, typename E, typename G>
utility::vector1< utility::vector1< utility::vector1< utility::vector1< bool > > > > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_bg_atom_atom_overlaps_
private
template<typename V, typename E, typename G>
utility::vector1< utility::vector1< Size > > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_bg_respairs_w_hphobe_olap_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_exp_hphobe_djs_offsets_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_n_exp_hphobes_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_nodes_near_rotsub_
private
template<typename V, typename E, typename G>
utility::vector1< bool > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bg_nodes_near_rotsub_bool_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::bgenumeration_2_resid_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::calculated_hpatch_deltaE_
private
template<typename V, typename E, typename G>
std::string core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::carbon_atom = "C"
staticprivate
template<typename V, typename E, typename G>
const int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::COMMIT_LIMIT_BETWEEN_UPDATES = 4096
staticprivate
template<typename V, typename E, typename G>
utility::vector1< utility::vector1< utility::vector1< utility::vector1< bool > > > > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::curr_bg_bg_exhpobeolap_
private
template<typename V, typename E, typename G>
core::PackerEnergy core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::deltaE_for_substitution_
private
template<typename V, typename E, typename G>
float core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::deltaE_threshold_for_avoiding_hpatch_calcs_
private
template<typename V, typename E, typename G>
utility::vector1< exposed_hydrophobic_data > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::djs_id_2_hphobe_index_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::djs_rep_node_index_2_cc_index_
private
template<typename V, typename E, typename G>
utility::vector1< Real > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::ep_sasa_for_djs_node_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::fc_exp_hphobe_djs_offsets_
private

"djs" for DisJoint Sets. An abuse of the idea of an acronym.

template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::fc_n_exp_hphobes_
private
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::fc_nodes_near_rotsub_
private
template<typename V, typename E, typename G>
utility::vector1< bool > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::fc_nodes_near_rotsub_bool_
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::hpatch_energy_alternate_state_assignment_
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::hpatch_energy_current_state_assignment_
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::hpatch_score_min_last_100_
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::hpatch_score_min_recent_
private
template<typename V, typename E, typename G>
core::Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::hpatch_score_weight_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::initialized_SASA_radii = false
staticprivate
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::node_considering_alt_state_
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_commits_since_last_update_
private
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_hpatch_comps_later_made_ = 0
staticprivate
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_hpatch_comps_procrastinated_ = 0
staticprivate
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_residues_assigned_as_background_
private
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_state_substitutions_considered_ = 0
staticprivate
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_substitutions_since_hpatch_min_update_
private
template<typename V, typename E, typename G>
Size core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::num_total_residues_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::observed_sufficient_hpatch_E_to_predict_min_
private
template<typename V, typename E, typename G>
task::PackerTaskOP core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::packer_task_
private
template<typename V, typename E, typename G>
pose::PoseOP core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::pose_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::prepared_for_simulated_annealing_
private
template<typename V, typename E, typename G>
utility::vector1< Real > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::radii_
staticprivate
template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::reps_for_nonzero_rank_ccs_
private

extract the disjoint sets connected component information by hand (faster)

template<typename V, typename E, typename G>
utility::vector1< Size > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::resid_2_bgenumeration_
private
template<typename V, typename E, typename G>
rotamer_set::RotamerSetsOP core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::rotamer_sets_
private
template<typename V, typename E, typename G>
utility::vector1< Real > core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::sasa_for_cc_
private
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::some_node_in_state_0_
private
template<typename V, typename E, typename G>
std::string core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::sulfur_atom = "S"
staticprivate
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::total_energy_alternate_state_assignment_
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::total_energy_current_state_assignment_
private

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