Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Enumerations | Functions | Variables
core::pack::interaction_graph Namespace Reference

Classes

class  AdditionalBackgroundNodesInteractionGraph
 Function declarations for the AdditionalBackgroundNodesInteractionGraph. More...
 
class  AminoAcidNeighborSparseMatrix
 
class  AnnealableGraphBase
 
class  BackgroundNode
 A node which is not changing type or rotamer throughout a simulation. More...
 
class  BackgroundToFirstClassEdge
 An edge between a background node and a first class node. More...
 
class  DensePDEdge
 
class  DensePDInteractionGraph
 
class  DensePDNode
 
class  DotSphere
 Represents the sphere of dots on the vdW surface of an atom, for use in the LeGrand and Merz method of calculating SASA. More...
 
class  DoubleDensePDEdge
 
class  DoubleDensePDInteractionGraph
 
class  DoubleDensePDNode
 
class  DoubleLazyEdge
 
class  DoubleLazyInteractionGraph
 The double lazy interaction graph is primarily useful for multistate design where one is interested in knowing at particular edge, all of the rotamer pair energies for a particular amino acid assignment. The double lazy interaction graph is lazy in two ways: first, in delaying the computation of rotamer pair energies until they are needed, and second, in delaying the allocation of memory for rotamer pair energies until that memory is needed. The DLIG will do one of two things once it allocates space for a block of rotamer pairs: 1) In its standard operating behavior, it will leave that space allocated until the graph is destroyed, which means that the energies it stores in that block will never be computed more than once; or 2) In its alternate operating behavior, the LMIG will deallocate some of those blocks to make sure that it never uses more than some maximum amount of memory on RPEs. More...
 
class  DoubleLazyNode
 
class  EdgeBase
 
struct  exposed_hydrophobic_data
 
class  FASTEREdge
 
class  FASTERInteractionGraph
 
class  FASTERNode
 
class  FirstClassEdge
 
class  FirstClassNode
 
class  FixedBBEdge
 
class  FixedBBInteractionGraph
 
class  FixedBBNode
 
struct  history_queue_struct
 for storing three peices of associated data describing the recent history structure on a LinearMemNode. More...
 
class  HPatchBackgroundEdge
 Defines an edge between a FirstClass (HPatchNode) and a background node (HPatchBackgroundNode) More...
 
class  HPatchBackgroundNode
 Defines a Background Node which will contribute to changes in SASA/hpatchE due to state changes on neighboring nodes, and not because of state changes to it. No default constructor makes this class uncopyable. More...
 
class  HPatchEdge
 Defines a HPatch Edge which connects two first-class HPatch Nodes. Edges have to keep some state so that updates to SASA and the hpatch score can be done fast. More...
 
class  HPatchEnergy
 Defines a (pseudo) context-dependent one-body surface energy. Really, this class is only being used as a hack for the optE protocol so that the non-PD surface energy can be optimized together with the other PD-terms. The difference from this energy method from the plain SurfaceEnergy method is that it calculates the patch area using methods in sasa.cc instead of using average values. This new method also uses a new approach for finding which residues to include in a patch, not just all residues within 10A. More...
 
class  HPatchEnergyCreator
 
class  HPatchInteractionGraph
 Defines the interaction graph that will keep track of changes to the hpatch score. More...
 
class  HPatchNode
 Defines a FirstClass node which will keep track of changes in the SASA and hpatch score. FirstClassNode is defined and implemented in AdditionalBackgroundNodesInteractionGraph. More...
 
class  InteractionGraphBase
 
class  InteractionGraphFactory
 
class  InvRotamerDots
 Used to determine whether the overlap between two atoms is buried or exposed. More...
 
class  LazyEdge
 
class  LazyInteractionGraph
 
class  LazyNode
 
class  LinearMemEdge
 
class  LinearMemNode
 
class  LinearMemoryInteractionGraph
 
class  MultiplexedAnnealableGraph
 
class  NodeBase
 
struct  NPDHBond
 
class  NPDHBondBackgroundEdge
 Defines an edge between a FirstClass (NPDHBondNode) and a background node (NPDHBondBackgroundNode) More...
 
class  NPDHBondBackgroundNode
 Defines a Background Node which will contribute to changes in SASA/hpatchE due to state changes on neighboring nodes, and not because of state changes to it. No default constructor makes this class uncopyable. More...
 
class  NPDHBondEdge
 Defines a NPDHBond Edge which connects two first-class NPDHBond Nodes. Edges have to keep some state so that updates to SASA and the hpatch score can be done fast. More...
 
class  NPDHBondInteractionGraph
 Defines the interaction graph that will keep track of changes to the hpatch score. More...
 
class  NPDHBondNode
 Defines a FirstClass node which will keep track of the hydrogen bonds coming in to the residue and the hydrogen bond score. FirstClassNode is defined and implemented in AdditionalBackgroundNodesInteractionGraph. More...
 
class  NPDHBSimpleEdge
 
class  NPDHBSimpleInteractionGraph
 A simple graph class for calculating pairwise decomposable energies as sidechains are moving on a fixed backbone. This class is responsible for calculating energy changes, but is passive about how the sidechains are changing. There are two main ways to drive the graph: one where the graph ACTIVELY takes charge of updating pointers to the sidechains, where, each external change of one pointer triggers an update to the energies; and a second, where the graph is PASSIVE wrt the pointers, and they must be maintained by an external driver. More...
 
class  NPDHBSimpleNode
 
class  OnTheFlyEdge
 
class  OnTheFlyInteractionGraph
 
class  OnTheFlyNode
 
class  PDEdge
 
class  PDInteractionGraph
 
class  PDNode
 
class  PrecomputedPairEnergiesEdge
 
class  PrecomputedPairEnergiesInteractionGraph
 
class  PrecomputedPairEnergiesNode
 
class  ResidueArrayAnnealingEvaluator
 
class  RotamerDots
 Handles sphere-sphere overlap calculations for the HPatchInteractionGraph. More...
 
class  RotamerDotsCache
 A lightweight version of the RotamerDots class. Used to cache overlap between interaction graph Nodes and BGNodes. More...
 
class  RotamerDotsRadiusData
 A singleton class which reads in database SASA radii files and provides accessors for those values to the RotamerDots class. More...
 
class  SimpleEdge
 
class  SimpleInteractionGraph
 A simple graph class for calculating pairwise decomposable energies as sidechains are moving on a fixed backbone. This class is responsible for calculating energy changes, but is passive about how the sidechains are changing. There are two main ways to drive the graph: one where the graph ACTIVELY takes charge of updating pointers to the sidechains, where, each external change of one pointer triggers an update to the energies; and a second, where the graph is PASSIVE wrt the pointers, and they must be maintained by an external driver. More...
 
class  SimpleNode
 
class  SparseMatrixIndex
 
class  SurfaceBackgroundEdge
 Defines an edge between a FirstClass (SurfaceNode) and a background node (SurfaceBackgroundNode) More...
 
class  SurfaceBackgroundNode
 Defines a BackgroundResidue node which will contribute to changes in surface energy due to state changes on neighboring nodes, and not because of state changes to it. More...
 
class  SurfaceEdge
 Defines a Surface edge which will be used in determining surface energy. More...
 
class  SurfaceEnergy
 Defines a (pseudo) context-dependent one-body surface energy. Really, this class is only being used as a hack for the optE protocol so that the non-PD surface energy can be optimized together with the other PD-terms. More...
 
class  SurfaceEnergyCreator
 
class  SurfaceInteractionGraph
 Defines the interaction graph that will keep track of changes to the surface score. More...
 
class  SurfaceNode
 Defines a FirstClass node which will keep track of changes in the surface energy. FirstClassNode is defined and implemented in AdditionalBackgroundNodesInteractionGraph. More...
 
class  SurfacePotential
 With the traditional scoring hierarchy, classes like this one are created and accessed via the ScoringManager, which is itself a Singleton class. These "potential" classes are only created and initialized when the use of the EnergyMethod these classes correspond is encountered. No point in reading database files for a term if that term is not being used in some score function. However, the surface energy is used when users specify they want to use it on the command line - NOT via a score function. The score/energy is done within an interaction graph. One might ask why I just don't put the logic for reading in the database file to the interaction graph init methods. However, there will be cases where I will want to just score a protein (and not do any design) where I will want the database file to be read in. Scoring doesn't use interaction graphs, so if the code for that was located there, these values would not be read in. Instead, I've decided to implement this as its own separate class. It uses the Singleton design pattern so the database will only get read in once during a run. More...
 
class  SymmLinearMemEdge
 
class  SymmLinearMemNode
 
class  SymmLinearMemoryInteractionGraph
 
class  SymmMinimalistEdge
 
class  SymmMinimalistInteractionGraph
 
class  SymmMinimalistNode
 
class  SymmOnTheFlyEdge
 
class  SymmOnTheFlyInteractionGraph
 
class  SymmOnTheFlyNode
 

Typedefs

typedef
utility::pointer::shared_ptr
< AnnealableGraphBase
AnnealableGraphBaseOP
 
typedef
utility::pointer::shared_ptr
< AnnealableGraphBase const > 
AnnealableGraphBaseCOP
 
typedef
utility::pointer::shared_ptr
< DensePDInteractionGraph
DensePDInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< DensePDInteractionGraph
const > 
DensePDInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< DoubleDensePDInteractionGraph
DoubleDensePDInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< DoubleDensePDInteractionGraph
const > 
DoubleDensePDInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< DoubleLazyInteractionGraph
DoubleLazyInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< DoubleLazyInteractionGraph
const > 
DoubleLazyInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< FASTERInteractionGraph
FASTERInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< FASTERInteractionGraph const > 
FASTERInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< FixedBBInteractionGraph
FixedBBInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< FixedBBInteractionGraph
const > 
FixedBBInteractionGraphCOP
 
typedef HPatchInteractionGraph
< PDNode, PDEdge,
PDInteractionGraph
PDHPatchInteractionGraph
 
typedef HPatchInteractionGraph
< LinearMemNode, LinearMemEdge,
LinearMemoryInteractionGraph
LinearMemoryHPatchInteractionGraph
 
typedef
utility::pointer::shared_ptr
< PDHPatchInteractionGraph
PDHPatchInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< LinearMemoryHPatchInteractionGraph
LinearMemoryHPatchInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< InteractionGraphBase
InteractionGraphBaseOP
 
typedef
utility::pointer::shared_ptr
< InteractionGraphBase const > 
InteractionGraphBaseCOP
 
typedef
utility::pointer::shared_ptr
< LazyInteractionGraph
LazyInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< LazyInteractionGraph const > 
LazyInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< LinearMemoryInteractionGraph
LinearMemoryInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< LinearMemoryInteractionGraph
const > 
LinearMemoryInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< MultiplexedAnnealableGraph
MultiplexedAnnealableGraphOP
 
typedef
utility::pointer::shared_ptr
< MultiplexedAnnealableGraph
const > 
MultiplexedAnnealableGraphCOP
 
typedef
utility::pointer::shared_ptr
< NPDHBond
NPDHBondOP
 
typedef
NPDHBondInteractionGraph
< PDNode, PDEdge,
PDInteractionGraph
StandardNPDHBondInteractionGraph
 
typedef
NPDHBondInteractionGraph
< DensePDNode, DensePDEdge,
DensePDInteractionGraph
DenseNPDHBondInteractionGraph
 
typedef
NPDHBondInteractionGraph
< LinearMemNode, LinearMemEdge,
LinearMemoryInteractionGraph
LinearMemoryNPDHBondInteractionGraph
 
typedef
utility::pointer::shared_ptr
< StandardNPDHBondInteractionGraph
StandardNPDHBondInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< DenseNPDHBondInteractionGraph
DenseNPDHBondInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< LinearMemoryNPDHBondInteractionGraph
LinearMemoryNPDHBondInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< NPDHBSimpleInteractionGraph
NPDHBSimpleInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< NPDHBSimpleInteractionGraph
const > 
NPDHBSimpleInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< OnTheFlyInteractionGraph
OnTheFlyInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< OnTheFlyInteractionGraph
const > 
OnTheFlyInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< PDInteractionGraph
PDInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< PrecomputedPairEnergiesInteractionGraph
PrecomputedPairEnergiesInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< PrecomputedPairEnergiesInteractionGraph
const > 
PrecomputedPairEnergiesInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< ResidueArrayAnnealingEvaluator
ResidueArrayAnnealingEvaluatorOP
 
typedef
utility::pointer::shared_ptr
< RotamerDots
RotamerDotsOP
 
typedef
utility::pointer::shared_ptr
< RotamerDots const > 
RotamerDotsCOP
 
typedef
utility::pointer::shared_ptr
< InvRotamerDots
InvRotamerDotsOP
 
typedef
utility::pointer::shared_ptr
< InvRotamerDots const > 
InvRotamerDotsCOP
 
typedef
utility::pointer::shared_ptr
< SimpleInteractionGraph
SimpleInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< SimpleInteractionGraph const > 
SimpleInteractionGraphCOP
 
typedef
SurfaceInteractionGraph
< PDNode, PDEdge,
PDInteractionGraph
PDSurfaceInteractionGraph
 
typedef
SurfaceInteractionGraph
< LinearMemNode, LinearMemEdge,
LinearMemoryInteractionGraph
LinearMemorySurfaceInteractionGraph
 
typedef
utility::pointer::shared_ptr
< PDSurfaceInteractionGraph
PDSurfaceInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< LinearMemorySurfaceInteractionGraph
LinearMemorySurfaceInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< SymmLinearMemoryInteractionGraph
SymmLinearMemoryInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< SymmLinearMemoryInteractionGraph
const > 
SymmLinearMemoryInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< SymmMinimalistInteractionGraph
SymmMinimalistInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< SymmMinimalistInteractionGraph
const > 
SymmMinimalistInteractionGraphCOP
 
typedef
utility::pointer::shared_ptr
< SymmOnTheFlyInteractionGraph
SymmOnTheFlyInteractionGraphOP
 
typedef
utility::pointer::shared_ptr
< SymmOnTheFlyInteractionGraph
const > 
SymmOnTheFlyInteractionGraphCOP
 

Enumerations

enum  ResiduePairEvalType { whole_whole = 0, whole_sc, sc_whole, sc_sc }
 

Functions

static basic::Tracer TR_NODE ("core.pack.hpatchig.node")
 Tracer instance for this file. More...
 
static basic::Tracer TR_EDGE ("core.pack.hpatchig.edge")
 
static basic::Tracer TR_BGNODE ("core.pack.hpatchig.bgnode")
 
static basic::Tracer TR_BGEDGE ("core.pack.hpatchig.bgedge")
 
static basic::Tracer TR_HIG ("core.pack.hpatchig.ig")
 
static basic::Tracer TR_STATS ("core.pack.hpatchig.stats")
 
static basic::Tracer T ("core.pack.interaction_graph.interaction_graph_factory", basic::t_info)
 
Size estimate_n_2body_calcs_for_precomputation (task::PackerTask const &the_task, rotamer_set::RotamerSets const &rotsets, utility::graph::Graph const &packer_neighbor_graph)
 estimate the amount of work require for precomputation More...
 
Size estimate_n_2body_calcs_for_linmem_ig (rotamer_set::RotamerSets const &rotsets, utility::graph::Graph const &packer_neighbor_graph)
 estimate the amount of work require for on-the-fly calculations More...
 
bool auto_use_linmem_ig (task::PackerTask const &the_task, rotamer_set::RotamerSets const &rotsets, utility::graph::Graph const &packer_neighbor_graph, core::Size const nloop)
 This function is called when the user does not specify an IG Type. More...
 
InteractionGraphBaseOP make_linmem_ig (task::PackerTask const &the_task, rotamer_set::RotamerSets const &rotsets, pose::Pose const &pose, scoring::ScoreFunction const &sfxn, utility::graph::Graph const &packer_neighbor_graph, core::Real const surface_weight, core::Real const hpatch_weight, core::Real const npd_hbond_weight)
 
static basic::Tracer T ("core.pack.interaction_graph.linmem_ig", basic::t_error)
 
constexpr bool debug ()
 For testing the LinMemIG, you'll want to set this to true. More...
 
void compute_alt_weights_for_npd_hbonds (conformation::Residue const &res, utility::vector1< utility::vector1< NPDHBondOP > > const &atom_hbonds,utility::vector1< Real > &tmp_energies,utility::vector1< Real > &temp_weights)
 Compute the don_wt_alt_s and the acc_wt_alt_s from the perspective of the input residue given the (complete) arrays of NPDHBondOPs for each atom. More...
 
static basic::Tracer TR ("core.pack.npd_hbond_ig")
 
template<typename V , typename E , typename G >
void create_hbonds_one_way (scoring::hbonds::HBondDatabase const &database, scoring::hbonds::HBondOptions const &hbondoptions, scoring::hbonds::HBondSet const &hbset, NPDHBondInteractionGraph< V, E, G > &ig, utility::vector1< char > &hbonding_to_res, conformation::Residue const &acc_res, utility::vector1< NPDHBondOP > &acc_hbonds, utility::vector1< utility::vector1< NPDHBondOP > > &acc_atom_hbonds, conformation::Residue const &don_res, utility::vector1< NPDHBondOP > &don_hbonds, utility::vector1< utility::vector1< NPDHBondOP > > &don_atom_hbonds)
 
void create_hbonds_one_way (scoring::hbonds::HBondDatabase const &database, scoring::hbonds::HBondOptions const &hbondoptions, scoring::hbonds::HBondSet const &hbset, NPDHBSimpleInteractionGraph &ig, utility::vector1< char > &hbonding_to_res, conformation::Residue const &acc_res, utility::vector1< NPDHBondOP > &acc_hbonds, utility::vector1< utility::vector1< NPDHBondOP > > &acc_atom_hbonds, conformation::Residue const &don_res, utility::vector1< NPDHBondOP > &don_hbonds, utility::vector1< utility::vector1< NPDHBondOP > > &don_atom_hbonds)
 
static basic::Tracer T ("core.pack.interaction_graph.otf_ig", basic::t_error)
 
static basic::Tracer TR ("core.pack.interaction_graph.PDInteractionGraph")
 
bool unpack_ubyte (ObjexxFCL::ubyte const &value, core::Size which_bit)
 
void write_sphere_list_header (std::ostream &ostr, std::string const &color, bool off=false)
 
void write_dot (std::ostream &ostr, core::Vector const &center, core::Real radius, Size const dot_index, std::string const &dot_name)
 
void write_sphere_list_uv1 (std::ostream &ostr, std::string const &label, std::string const &color, core::Vector const &center, core::Real radius, utility::vector1< ObjexxFCL::ubyte > const &dot_masks)
 
void write_sphere_list_farray (std::ostream &ostr, std::string const &label, std::string const &color, core::Vector const &center, core::Real radius, ObjexxFCL::FArray1< ObjexxFCL::ubyte > const &dot_masks)
 
std::ostream & operator<< (std::ostream &os, DotSphere const &ds)
 invokes print on the input DotSphere object More...
 
std::ostream & operator<< (std::ostream &os, RotamerDots const &rd)
 invokes print on the input RotamerDots object More...
 
static basic::Tracer TR ("core.pack.interaction_graph.SimpleInteractionGraph")
 
static basic::Tracer TR ("core.pack.interaction_graph.SurfacePotential")
 
static basic::Tracer T ("core.pack.interaction_graph.symmlinmem_ig", basic::t_error)
 
static basic::Tracer T ("core.pack.interaction_graph.symm_symmin_ig", basic::t_error)
 
static basic::Tracer T ("core.pack.interaction_graph.otf_ig", basic::t_error)
 
void get_annealable_graph_summary (std::stringstream &igstream, core::pose::Pose const &pose, core::pack::rotamer_set::RotamerSets const &rot_sets, AnnealableGraphBaseCOP const &anngraph, bool const short_version)
 Given an interaction graph, get a summary describing it fully. More...
 
void set_externally_generated_packer_solution (core::pose::Pose &pose, std::string const &packer_problem_description, std::string const &packer_solution_description)
 Given a description of a packer problem, a description of the solution, and a pose to put a result in, generate a pose representing the solution. More...
 
void generate_pose_from_packer_description (core::pose::Pose &pose, std::string const &packer_problem_description)
 Given the description of a packer problem as generated by get_annealable_graph_summary(), pull out and re-generate the pose. More...
 
void generate_rotamers_from_packer_solution_description (utility::vector1< std::pair< core::Size, core::conformation::ResidueCOP > > &rotamers, std::string const &packer_problem_description, std::string const &packer_solution_description)
 Given a packer problem and its solution, generate rotamers from it. More...
 
void add_rotamers_to_pose (core::pose::Pose &pose, utility::vector1< std::pair< core::Size, core::conformation::ResidueCOP > > &rotamers)
 Given a vector of solution rotamers and a pose, put the rotamers on the pose. More...
 

Variables

bool const debug = { false }
 For testing the symmlinmemIG, you'll want to set this to true. More...
 

Typedef Documentation

typedef utility::pointer::shared_ptr< AnnealableGraphBase const > core::pack::interaction_graph::AnnealableGraphBaseCOP
typedef utility::pointer::shared_ptr< InvRotamerDots const > core::pack::interaction_graph::InvRotamerDotsCOP
typedef utility::pointer::shared_ptr< InvRotamerDots > core::pack::interaction_graph::InvRotamerDotsOP
typedef utility::pointer::shared_ptr< NPDHBond > core::pack::interaction_graph::NPDHBondOP
typedef utility::pointer::shared_ptr< RotamerDots const > core::pack::interaction_graph::RotamerDotsCOP
typedef utility::pointer::shared_ptr< RotamerDots > core::pack::interaction_graph::RotamerDotsOP

Enumeration Type Documentation

Enumerator
whole_whole 
whole_sc 
sc_whole 
sc_sc 

Function Documentation

void core::pack::interaction_graph::add_rotamers_to_pose ( core::pose::Pose pose,
utility::vector1< std::pair< core::Size, core::conformation::ResidueCOP > > &  rotamers 
)

Given a vector of solution rotamers and a pose, put the rotamers on the pose.

The vector is a vector of pairs of the form <seqpos, rotamerCOP>.

References core::pose::Pose::replace_residue(), core::id::to_string(), and core::pose::Pose::total_residue().

Referenced by set_externally_generated_packer_solution().

bool core::pack::interaction_graph::auto_use_linmem_ig ( task::PackerTask const &  the_task,
rotamer_set::RotamerSets const &  rotsets,
utility::graph::Graph const &  packer_neighbor_graph,
core::Size const  nloop 
)

This function is called when the user does not specify an IG Type.

The goal is to use the most economical IG type based on the use case. This can get very complicated to predict, but the gist is that the O(N^2) precomputed IG should be used with a small number of rotamers and the O(N) linmem_ig should be used for a large number of rotamers.

Author
Jack Maguire

References estimate_n_2body_calcs_for_linmem_ig(), estimate_n_2body_calcs_for_precomputation(), core::pack::task::PackerTask::ig_threads_to_request(), and protocols::mean_field::min().

Referenced by core::pack::interaction_graph::InteractionGraphFactory::create_interaction_graph().

void core::pack::interaction_graph::compute_alt_weights_for_npd_hbonds ( conformation::Residue const &  res,
utility::vector1< utility::vector1< NPDHBondOP > > const &  atom_hbonds,
utility::vector1< Real > &  tmp_energies,
utility::vector1< Real > &  temp_weights 
)
void core::pack::interaction_graph::create_hbonds_one_way ( scoring::hbonds::HBondDatabase const &  database,
scoring::hbonds::HBondOptions const &  hbondoptions,
scoring::hbonds::HBondSet const &  hbset,
NPDHBSimpleInteractionGraph &  ig,
utility::vector1< char > &  hbonding_to_res,
conformation::Residue const &  acc_res,
utility::vector1< NPDHBondOP > &  acc_hbonds,
utility::vector1< utility::vector1< NPDHBondOP > > &  acc_atom_hbonds,
conformation::Residue const &  don_res,
utility::vector1< NPDHBondOP > &  don_hbonds,
utility::vector1< utility::vector1< NPDHBondOP > > &  don_atom_hbonds 
)
template<typename V , typename E , typename G >
void core::pack::interaction_graph::create_hbonds_one_way ( scoring::hbonds::HBondDatabase const &  database,
scoring::hbonds::HBondOptions const &  hbondoptions,
scoring::hbonds::HBondSet const &  hbset,
NPDHBondInteractionGraph< V, E, G > &  ig,
utility::vector1< char > &  hbonding_to_res,
conformation::Residue const &  acc_res,
utility::vector1< NPDHBondOP > &  acc_hbonds,
utility::vector1< utility::vector1< NPDHBondOP > > &  acc_atom_hbonds,
conformation::Residue const &  don_res,
utility::vector1< NPDHBondOP > &  don_hbonds,
utility::vector1< utility::vector1< NPDHBondOP > > &  don_atom_hbonds 
)
constexpr bool core::pack::interaction_graph::debug ( )

For testing the LinMemIG, you'll want to set this to true.

Size core::pack::interaction_graph::estimate_n_2body_calcs_for_linmem_ig ( rotamer_set::RotamerSets const &  rotsets,
utility::graph::Graph const &  packer_neighbor_graph 
)

estimate the amount of work require for on-the-fly calculations

This may be off by a constant factor, which will be measured using benchmarks

References core::pack::rotamer_set::RotamerSets::nrotamers(), core::pack::rotamer_set::RotamerSets::res_for_rotamer(), and rot().

Referenced by auto_use_linmem_ig().

Size core::pack::interaction_graph::estimate_n_2body_calcs_for_precomputation ( task::PackerTask const &  the_task,
rotamer_set::RotamerSets const &  rotsets,
utility::graph::Graph const &  packer_neighbor_graph 
)

estimate the amount of work require for precomputation

This may be off by a constant factor, which will be measured using benchmarks

References core::pack::task::PackerTask::being_packed(), core::sequence::end, core::pack::rotamer_set::RotamerSets::nrotamers_for_moltenres(), and core::pack::rotamer_set::RotamerSets::resid_2_moltenres().

Referenced by auto_use_linmem_ig().

void core::pack::interaction_graph::generate_pose_from_packer_description ( core::pose::Pose pose,
std::string const &  packer_problem_description 
)

Given the description of a packer problem as generated by get_annealable_graph_summary(), pull out and re-generate the pose.

The contents of the pose are destroyed and replaced by the pose from the description in this operation.

References core::pose::Pose::clear(), core::io::silent::BinarySilentStruct::fill_pose(), core::io::silent::BinarySilentStruct::init_from_lines(), and core::chemical::orbitals::strip_whitespace().

Referenced by set_externally_generated_packer_solution().

void core::pack::interaction_graph::generate_rotamers_from_packer_solution_description ( utility::vector1< std::pair< core::Size, core::conformation::ResidueCOP > > &  rotamers,
std::string const &  packer_problem_description,
std::string const &  packer_solution_description 
)

Given a packer problem and its solution, generate rotamers from it.

The rotamer vector (a vector of pairs of <seqpos, residueCOP>) is cleared and populated by this operation.

References core::pose::Pose::conformation(), core::io::silent::BinarySilentStruct::fill_pose(), core::io::silent::BinarySilentStruct::init_from_lines(), core::conformation::Conformation::residue_cop(), core::chemical::orbitals::strip_whitespace(), core::id::to_string(), and core::pose::Pose::total_residue().

Referenced by set_externally_generated_packer_solution().

void core::pack::interaction_graph::get_annealable_graph_summary ( std::stringstream &  igstream,
core::pose::Pose const &  pose,
core::pack::rotamer_set::RotamerSets const &  rot_sets,
AnnealableGraphBaseCOP const &  anngraph,
bool const  short_version 
)

Given an interaction graph, get a summary describing it fully.

This is intended to be a machine-readable summary that facilitates a Rosetta interface to external annealers or optimizers.

Parameters
[out]igstreamThe output stream for the summary.
[in]poseThe pose, for reference.
[in]rot_setsThe RotamerSets object containing the set of sets of rotamers for each position.
[in]anngraphThe pre-computed interaction graph.
[in]short_versionIf true, only the interaction graph summary is returned. If false, information needed to reconstruct the pose is also included. False by default.
Author
Vikram K. Mulligan (vmull.nosp@m.igan.nosp@m.@flat.nosp@m.iron.nosp@m.insti.nosp@m.tute.nosp@m..org)

References core::pose::Pose::append_residue_by_jump(), core::pack::interaction_graph::NodeBase::get_num_states(), core::pack::interaction_graph::PrecomputedPairEnergiesNode::get_one_body_energy(), core::pack::interaction_graph::PrecomputedPairEnergiesEdge::get_two_body_energy(), core::pack::rotamer_set::RotamerSets::moltenres_2_resid(), core::pack::rotamer_set::RotamerSets::nmoltenres(), core::io::silent::BinarySilentStruct::print_conformation(), core::pack::rotamer_set::RotamerSets::rotamer_set_for_moltenresidue(), core::id::to_string(), core::pack::rotamer_set::RotamerSets::total_residue(), and core::pose::Pose::total_residue().

Referenced by protocols::quantum_annealing::InteractionGraphSummaryMetric::calculate().

InteractionGraphBaseOP core::pack::interaction_graph::make_linmem_ig ( task::PackerTask const &  the_task,
rotamer_set::RotamerSets const &  rotsets,
pose::Pose const &  pose,
scoring::ScoreFunction const &  sfxn,
utility::graph::Graph const &  packer_neighbor_graph,
core::Real const  surface_weight,
core::Real const  hpatch_weight,
core::Real const  npd_hbond_weight 
)
std::ostream & core::pack::interaction_graph::operator<< ( std::ostream &  os,
DotSphere const &  ds 
)

invokes print on the input DotSphere object

References core::pack::interaction_graph::DotSphere::print().

std::ostream & core::pack::interaction_graph::operator<< ( std::ostream &  os,
RotamerDots const &  rd 
)
void core::pack::interaction_graph::set_externally_generated_packer_solution ( core::pose::Pose pose,
std::string const &  packer_problem_description,
std::string const &  packer_solution_description 
)

Given a description of a packer problem, a description of the solution, and a pose to put a result in, generate a pose representing the solution.

The contents of the pose are destroyed by this operation, and replaced by the pose described in the packer problem and the rotamers described in the solutions!

Parameters
[out]poseThe pose, cleared and rebuilt by this operation.
[in]packer_problem_descriptionA description of the packer problem, including blocks for the original pose, the rotamers, and the energies, as generated by get_annealable_graph_summary().
[out]packer_solution_descriptionA solution to the packer problem, in the format of a series of lines, one for each packable position, consisting of <seqpos #> <rotamer #>.
Author
Vikram K. Mulligan (vmull.nosp@m.igan.nosp@m.@flat.nosp@m.iron.nosp@m.insti.nosp@m.tute.nosp@m..org)

References add_rotamers_to_pose(), generate_pose_from_packer_description(), and generate_rotamers_from_packer_solution_description().

Referenced by protocols::quantum_annealing::ExternalPackerResultLoader::apply().

static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.linmem_ig"  ,
basic::t_error   
)
static
static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.symmlinmem_ig"  ,
basic::t_error   
)
static
static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.symm_symmin_ig"  ,
basic::t_error   
)
static
static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.otf_ig"  ,
basic::t_error   
)
static
static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.otf_ig"  ,
basic::t_error   
)
static
static basic::Tracer core::pack::interaction_graph::T ( "core.pack.interaction_graph.interaction_graph_factory"  ,
basic::t_info   
)
static
static basic::Tracer core::pack::interaction_graph::TR ( "core.pack.interaction_graph.PDInteractionGraph"  )
static
static basic::Tracer core::pack::interaction_graph::TR ( "core.pack.interaction_graph.SimpleInteractionGraph"  )
static
static basic::Tracer core::pack::interaction_graph::TR ( "core.pack.npd_hbond_ig"  )
static
static basic::Tracer core::pack::interaction_graph::TR ( "core.pack.interaction_graph.SurfacePotential"  )
static
static basic::Tracer core::pack::interaction_graph::TR_BGEDGE ( "core.pack.hpatchig.bgedge"  )
static
static basic::Tracer core::pack::interaction_graph::TR_BGNODE ( "core.pack.hpatchig.bgnode"  )
static
static basic::Tracer core::pack::interaction_graph::TR_EDGE ( "core.pack.hpatchig.edge"  )
static
static basic::Tracer core::pack::interaction_graph::TR_HIG ( "core.pack.hpatchig.ig"  )
static

Referenced by core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::blanket_assign_state_0(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::calculate_alt_state_hpatch_score(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::calculate_hpatch_deltaE(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::commit_considered_substitution(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::consider_substitution(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_background_edge(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_background_node(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_new_edge(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::create_new_node(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::decide_procrastinate_hpatch_computations(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::detect_background_residue_and_first_class_residue_overlap(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::initialize(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::prepare_graph_for_simulated_annealing(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::print_internal_energies_for_current_state_assignment(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::reset_from_previous_deltaHpatch_comp(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_errorfull_deltaE_threshold(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_network_state(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_num_background_residues(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_pose(), and core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_residue_as_background_residue().

static basic::Tracer core::pack::interaction_graph::TR_NODE ( "core.pack.hpatchig.node"  )
static

Tracer instance for this file.

Referenced by core::pack::interaction_graph::SurfaceNode< V, E, G >::assign_state_surface(), core::pack::interaction_graph::HPatchNode< V, E, G >::assign_zero_state(), core::pack::interaction_graph::SurfaceNode< V, E, G >::calculate_amount_total_hydrophobic_ASA(), core::pack::interaction_graph::HPatchNode< V, E, G >::commit_considered_substitution(), core::pack::interaction_graph::SurfaceNode< V, E, G >::commit_considered_substitution_surface(), core::pack::interaction_graph::HPatchNode< V, E, G >::consider_alternate_state(), core::pack::interaction_graph::SurfaceNode< V, E, G >::decide_procrastinate_surface_computations(), core::pack::interaction_graph::SurfaceNode< V, E, G >::get_surface_deltaE_for_neighbors_state_substitution(), core::pack::interaction_graph::SurfaceNode< V, E, G >::initialize_num_neighbors_counting_self(), core::pack::interaction_graph::HPatchNode< V, E, G >::prepare_for_simulated_annealing(), core::pack::interaction_graph::HPatchNode< V, E, G >::print(), core::pack::interaction_graph::SurfaceNode< V, E, G >::project_deltaE_for_substitution_surface(), core::pack::interaction_graph::SurfaceNode< V, E, G >::project_surface_deltaE(), core::pack::interaction_graph::HPatchNode< V, E, G >::reset_alt_state_dots(), core::pack::interaction_graph::SurfaceNode< V, E, G >::reset_alt_state_total_hASA(), core::pack::interaction_graph::HPatchInteractionGraph< V, E, G >::set_rotamer_dots_for_node_state(), core::pack::interaction_graph::SurfaceNode< V, E, G >::set_rotamers(), core::pack::interaction_graph::HPatchNode< V, E, G >::set_rotamers(), core::pack::interaction_graph::SurfaceNode< V, E, G >::SurfaceNode(), core::pack::interaction_graph::HPatchNode< V, E, G >::update_state_for_neighbors_substitution(), and core::pack::interaction_graph::SurfaceNode< V, E, G >::verify_patch_areas_correct().

static basic::Tracer core::pack::interaction_graph::TR_STATS ( "core.pack.hpatchig.stats"  )
static
bool core::pack::interaction_graph::unpack_ubyte ( ObjexxFCL::ubyte const &  value,
core::Size  which_bit 
)
void core::pack::interaction_graph::write_dot ( std::ostream &  ostr,
core::Vector const &  center,
core::Real  radius,
Size const  dot_index,
std::string const &  dot_name 
)
void core::pack::interaction_graph::write_sphere_list_farray ( std::ostream &  ostr,
std::string const &  label,
std::string const &  color,
core::Vector const &  center,
core::Real  radius,
ObjexxFCL::FArray1< ObjexxFCL::ubyte > const &  dot_masks 
)
void core::pack::interaction_graph::write_sphere_list_header ( std::ostream &  ostr,
std::string const &  color,
bool  off = false 
)
void core::pack::interaction_graph::write_sphere_list_uv1 ( std::ostream &  ostr,
std::string const &  label,
std::string const &  color,
core::Vector const &  center,
core::Real  radius,
utility::vector1< ObjexxFCL::ubyte > const &  dot_masks 
)

Variable Documentation

bool const core::pack::interaction_graph::debug = { false }

For testing the symmlinmemIG, you'll want to set this to true.

Referenced by protocols::comparative_modeling::AlignmentClustering::AlignmentClustering(), protocols::loops::loop_mover::IndependentLoopMover::apply(), protocols::loops::loop_mover::refine::LoopMover_Refine_KIC::apply(), protocols::abinitio::KinematicAbinitio::apply(), protocols::comparative_modeling::LoopRelaxMover::apply(), protocols::abinitio::FragmentSampler::apply(), protocols::abinitio::MembraneAbinitio::apply(), protocols::relax::FastRelax::apply(), protocols::abinitio::ClassicAbinitio::apply(), protocols::symmetric_docking::SymDockProtocol::apply(), protocols::ligand_docking::ga_ligand_dock::LigandAligner::apply(), core::pack::interaction_graph::SymmLinearMemNode::assign_state(), core::pack::interaction_graph::LinearMemNode::assign_state(), protocols::relax::FastRelax::batch_apply(), core::scoring::fiber_diffraction::FiberDiffractionEnergyDens::calculate_rho_fast2(), protocols::abinitio::FragmentSampler::checkpointed_cycle_block(), protocols::abinitio::ClassicAbinitio::ClassicAbinitio(), protocols::abinitio::AbrelaxApplication::close_loops(), core::pack::interaction_graph::SymmLinearMemNode::commit_considered_substitution(), core::pack::interaction_graph::LinearMemNode::commit_considered_substitution(), core::scoring::packing::compute_holes_surfs(), core::scoring::MembranePotential::compute_membrane_embedding(), protocols::abinitio::AbrelaxApplication::do_distributed_rerun(), protocols::abinitio::FragmentSampler::do_stage1_cycles(), protocols::star::emit_intermediate(), protocols::nonlocal::emit_intermediate(), protocols::abinitio::abscript::AbscriptMover::StageTracker::end_stage(), core::scoring::dna::DNA_BasePotential::eval_base_pair_derivative(), core::scoring::dna::DNA_BasePotential::eval_base_step_derivative(), core::scoring::electron_density::ElectronDensity::expandToUnitCell(), core::import_pose::pose_stream::LazySilentFilePoseInputStream::fill_pose(), core::import_pose::pose_stream::SilentFilePoseInputStream::fill_pose(), core::scoring::methods::D2H_SA_Energy::finalize_total_energy(), protocols::abinitio::AbrelaxApplication::fold(), core::scoring::func::SoedingFunc::func(), core::pack::interaction_graph::LinearMemEdge::get_energy_for_alt_state(), core::scoring::methods::Fa_MbsolvEnergy::get_residue_pair_energy(), core::scoring::membrane::FaMPSolvEnergy::get_residue_pair_energy(), protocols::loops::loop_mover::refine::LoopRefineInnerCycle::init_options(), protocols::relax::FastRelax::inner_loop_ramp_repack_min_command(), protocols::floppy_tail::FloppyTailMover::low_res(), protocols::electron_density::DockIntoDensityMover::map_from_spectrum(), core::scoring::electron_density::ElectronDensity::matchRes(), protocols::loops::loop_mover::perturb::LoopMover_Perturb_CCD::model_loop(), protocols::loops::loop_mover::perturb::LoopMover_Perturb_QuickCCD::model_loop(), protocols::electron_density::DockIntoDensityMover::poseSphericalSamples(), core::import_pose::pose_stream::PoseInputStream::preprocess_pose(), core::pack::interaction_graph::SymmLinearMemNode::project_deltaE_for_substitution(), core::pack::interaction_graph::LinearMemNode::project_deltaE_for_substitution(), protocols::loops::loop_mover::refine::LoopMover_Refine_CCD::read_options(), protocols::anchored_design::AnchoredPerturbMover::read_options(), protocols::anchored_design::AnchoredRefineMover::read_options(), protocols::checkpoint::CheckPointer::recover_checkpoint(), protocols::abinitio::register_common_options(), protocols::abinitio::FragmentSampler::register_options(), protocols::abinitio::ClassicAbinitio::register_options(), protocols::abinitio::MembraneAbinitio::register_options(), protocols::abinitio::run_boinc_debug(), protocols::pockets::PocketConstraint::score(), protocols::electron_density::DockIntoDensityMover::select_points(), protocols::anchored_design::AnchoredPerturbMover::set_debug(), protocols::anchored_design::AnchoredRefineMover::set_debug(), protocols::loop_grower::LoopGrower::set_debug(), core::scoring::electron_density::ElectronDensity::setup_fastscoring_first_time(), and protocols::abinitio::AbrelaxApplication::setup_fold().