Rosetta
Classes | Typedefs | Functions
core::pack::hbonds Namespace Reference

Classes

class  BareMinimumPDEdge
 
class  HBondGraphInitializerIG
 

Typedefs

using HBondGraphInitializerIGOP = utility::pointer::shared_ptr< HBondGraphInitializerIG >
 
using HBondGraphInitializerIGCOP = utility::pointer::shared_ptr< HBondGraphInitializerIG const >
 

Functions

scoring::hbonds::graph::HBondGraphOP create_init_and_create_edges_for_hbond_graph (rotamer_set::RotamerSetsOP rotamer_sets, scoring::ScoreFunction const &sfxn, pose::Pose const &pose, Real hydrogen_bond_threshold, Real clash_threshold, Real hbond_energy_threshold_for_satisfaction=-0.25f, bool include_backbone_at_atom_level=false)
 Construct atom level hbond graph, initialize the node information, score rotamers to create hbonds. This will not work perfectly if you are using symmetry because it does not score one-body interactions, but can still provide a good template. More...
 
void init_node_info (scoring::hbonds::graph::HBondGraph &graph, rotamer_set::RotamerSets const &rotamer_sets)
 This should be called immediately after creating the graph (and setting the number of nodes if need-be). This adds rotamer_sets info to the nodes for easier lookup later. Technically optional but recommended. More...
 
void find_hbonds_in_residue_pair (conformation::Residue const &resA, conformation::Residue const &resB, scoring::hbonds::HBondDatabase const &database, utility::graph::Graph const &tenA_neighbor_graph, scoring::hbonds::HBondSet &set)
 Utility function used by other functions in this file. Given that an edge exists between two nodes, find all of the hbonds between those two residues. It does not matter which order resA and resB are. Output hbonds are put in the HBondSet provided. This should not be called before the graph is populated with edges (see HBondGraphInitializerIG) - nothing will crash if this is called with no edges but it just does not make sense. More...
 
void determine_atom_level_edge_info_for_all_edges (scoring::hbonds::graph::HBondGraph &hb_graph, rotamer_set::RotamerSets const &rotamer_sets, scoring::hbonds::HBondDatabase const &database, utility::graph::Graph const &tenA_neighbor_graph, pose::Pose const &pose, bool skip_edges_with_degree_zero=false, Real hbond_energy_threshold_for_satisfaction=-0.25, conformation::symmetry::SymmetryInfoCOP symm_info=nullptr)
 Iterate through edges and calls determine_atom_level_edge_info(). skip_edges_with_degree_zero does not evaluate edges that have no incident edges and can not be part of a hydrogen bond network. symm_info needs to be != 0 if and only if you want to evaluate symmetry. More...
 
Size get_symm_ind_res (pose::Pose const &pose, Size const resid, conformation::symmetry::SymmetryInfoCOP symm_info, std::map< char, std::pair< Size, Size > > chain_bounds)
 
void determine_atom_level_edge_info (scoring::hbonds::graph::HBondEdge &hb_edge, rotamer_set::RotamerSets const &rotamer_sets, scoring::hbonds::HBondDatabase const &database, utility::graph::Graph const &tenA_neighbor_graph, pose::Pose const &pose, Real hbond_energy_threshold_for_satisfaction=-0.25, conformation::symmetry::SymmetryInfoCOP symm_info=nullptr)
 Add information regarding the atoms participating in hbonds (see find_hbonds_in_residue_pair() ). symm_info needs to be != 0 if and only if you want to evaluate symmetry. More...
 
void determine_atom_level_node_info_for_all_nodes (scoring::hbonds::graph::HBondGraph &hb_graph, rotamer_set::RotamerSets const &rotamer_sets, utility::vector1< bool > const &include_these_resids, bool skip_nodes_with_no_edges=false, bool include_backbone=false)
 Calls determine_atom_level_node_info() for all nodes. skip_nodes_with_no_edges is recommended to be set to true but depends on your protocol. The default is false for safety purposes. More...
 
void determine_atom_level_node_info (scoring::hbonds::graph::HBondNode &node, rotamer_set::RotamerSets const &rotamer_sets, utility::vector1< bool > const &include_these_resids, bool include_backbone=false)
 Store atom information for every node with a corresponding resid set to true in include_these_resids. include_these_resids was originally meant to protray "resid_is_buried" so that we only store atom info for buried residues. I don't care what you use this for so I gave it a more generalized name. More...
 
void find_satisfying_interactions_with_background (scoring::hbonds::graph::HBondNode &node, rotamer_set::RotamerSets const &rotamer_sets, utility::graph::Graph const &packer_neighbor_graph, pose::Pose const &poly_ala_pose, Real hbond_energy_threshold_for_satisfaction=-0.25)
 CALL determine_atom_level_node_info() OR determine_atom_level_node_info_for_all_nodes() BEFORE CALLING THIS! After adding atom info to nodes, calling this function will result in removing atom info for atoms that hydrogen bond with the backbone or fixed sidechains. More...
 
void delete_edges_with_degree_zero (scoring::hbonds::graph::HBondGraph &hb_graph)
 If you only care about hbond networks, then you might not care about edges that have no incident edges. This function deletes those edges. More...
 
scoring::hbonds::graph::HBondGraphOP hbond_graph_from_partial_rotsets (pose::Pose const &pose_in, pack::rotamer_set::RotamerSets const &original_rotsets, scoring::ScoreFunctionOP const &scorefxn_sc, scoring::ScoreFunctionOP const &scorefxn_bb, pack::rotamer_set::RotamerSetsOP &complete_rotsets_out, utility::vector1< bool > &position_had_rotset, float minimum_hb_cut)
 Construct an HBondGraph from a partial rotsets (like you might see during packing) @detail BB-BB hbonds are only included for the first residue. This means that prolines are not handled correctly. If proline is the first resdiue at a position and other residues are being packed at that position, any hbonds to the other Ns will not be reported. If one wishes to have BB-BB hbonds for all pairs, enable all 4 hbond terms for scorefxn_sc and leave scorefxn_bb as a nullptr (or a blank scorefxn) If your pose is symmetric, this internally desymmetrizes it and returns all hbonds. More...
 
scoring::hbonds::graph::HBondGraphOP create_and_init_hbond_graph (rotamer_set::RotamerSets const &rotamer_sets)
 This combines the HBondGraph constructor and init_node_info(). The HBondGraph constructor can not take core.4 objects because it is in core.3 (as of the time this was written). More...
 
static basic::Tracer TR ("core.pack.hbonds.HBondGraphInitializerIG")
 

Typedef Documentation

◆ HBondGraphInitializerIGCOP

using core::pack::hbonds::HBondGraphInitializerIGCOP = typedef utility::pointer::shared_ptr< HBondGraphInitializerIG const >

◆ HBondGraphInitializerIGOP

using core::pack::hbonds::HBondGraphInitializerIGOP = typedef utility::pointer::shared_ptr< HBondGraphInitializerIG >

Function Documentation

◆ create_and_init_hbond_graph()

scoring::hbonds::graph::HBondGraphOP core::pack::hbonds::create_and_init_hbond_graph ( rotamer_set::RotamerSets const &  rotamer_sets)
inline

This combines the HBondGraph constructor and init_node_info(). The HBondGraph constructor can not take core.4 objects because it is in core.3 (as of the time this was written).

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

Referenced by create_init_and_create_edges_for_hbond_graph().

◆ create_init_and_create_edges_for_hbond_graph()

scoring::hbonds::graph::HBondGraphOP core::pack::hbonds::create_init_and_create_edges_for_hbond_graph ( rotamer_set::RotamerSetsOP  rotamer_sets,
scoring::ScoreFunction const &  sfxn,
pose::Pose const &  pose,
Real  hydrogen_bond_threshold,
Real  clash_threshold,
Real  hbond_energy_threshold_for_satisfaction,
bool  include_backbone_at_atom_level 
)

Construct atom level hbond graph, initialize the node information, score rotamers to create hbonds. This will not work perfectly if you are using symmetry because it does not score one-body interactions, but can still provide a good template.

References create_and_init_hbond_graph(), core::pack::create_packer_graph(), determine_atom_level_edge_info_for_all_edges(), determine_atom_level_node_info_for_all_nodes(), core::pose::Pose::energies(), core::scoring::hbonds::HBondDatabase::get_database(), core::pose::Pose::size(), and core::scoring::Energies::tenA_neighbor_graph().

Referenced by hbond_graph_from_partial_rotsets().

◆ delete_edges_with_degree_zero()

void core::pack::hbonds::delete_edges_with_degree_zero ( scoring::hbonds::graph::HBondGraph hb_graph)

If you only care about hbond networks, then you might not care about edges that have no incident edges. This function deletes those edges.

References core::sequence::end.

◆ determine_atom_level_edge_info()

void core::pack::hbonds::determine_atom_level_edge_info ( HBondEdge hb_edge,
rotamer_set::RotamerSets const &  rotamer_sets,
scoring::hbonds::HBondDatabase const &  database,
utility::graph::Graph const &  tenA_neighbor_graph,
pose::Pose const &  pose,
Real  hbond_energy_threshold_for_satisfaction,
conformation::symmetry::SymmetryInfoCOP  symm_info 
)

◆ determine_atom_level_edge_info_for_all_edges()

void core::pack::hbonds::determine_atom_level_edge_info_for_all_edges ( scoring::hbonds::graph::HBondGraph hb_graph,
rotamer_set::RotamerSets const &  rotamer_sets,
scoring::hbonds::HBondDatabase const &  database,
utility::graph::Graph const &  tenA_neighbor_graph,
pose::Pose const &  pose,
bool  skip_edges_with_degree_zero,
Real  hbond_energy_threshold_for_satisfaction,
conformation::symmetry::SymmetryInfoCOP  symm_info 
)

Iterate through edges and calls determine_atom_level_edge_info(). skip_edges_with_degree_zero does not evaluate edges that have no incident edges and can not be part of a hydrogen bond network. symm_info needs to be != 0 if and only if you want to evaluate symmetry.

References determine_atom_level_edge_info().

Referenced by create_init_and_create_edges_for_hbond_graph().

◆ determine_atom_level_node_info()

void core::pack::hbonds::determine_atom_level_node_info ( HBondNode al_node,
rotamer_set::RotamerSets const &  rotamer_sets,
utility::vector1< bool > const &  include_these_resids,
bool  include_backbone 
)

Store atom information for every node with a corresponding resid set to true in include_these_resids. include_these_resids was originally meant to protray "resid_is_buried" so that we only store atom info for buried residues. I don't care what you use this for so I gave it a more generalized name.

References core::scoring::hbonds::graph::HBondNode::add_polar_atom(), core::scoring::hbonds::graph::HBondNode::global_rotamer_id(), core::pack::rotamer_set::RotamerSets::moltenres_2_resid(), core::pack::rotamer_set::RotamerSets::moltenres_for_rotamer(), rot(), and core::pack::rotamer_set::RotamerSets::rotamer().

Referenced by determine_atom_level_node_info_for_all_nodes(), and protocols::hbnet::HBNet::MC_traverse_IG().

◆ determine_atom_level_node_info_for_all_nodes()

void core::pack::hbonds::determine_atom_level_node_info_for_all_nodes ( scoring::hbonds::graph::HBondGraph hb_graph,
rotamer_set::RotamerSets const &  rotamer_sets,
utility::vector1< bool > const &  include_these_resids,
bool  skip_nodes_with_no_edges,
bool  include_backbone 
)

Calls determine_atom_level_node_info() for all nodes. skip_nodes_with_no_edges is recommended to be set to true but depends on your protocol. The default is false for safety purposes.

References determine_atom_level_node_info().

Referenced by create_init_and_create_edges_for_hbond_graph().

◆ find_hbonds_in_residue_pair()

void core::pack::hbonds::find_hbonds_in_residue_pair ( conformation::Residue const &  resA,
conformation::Residue const &  resB,
scoring::hbonds::HBondDatabase const &  database,
utility::graph::Graph const &  tenA_neighbor_graph,
scoring::hbonds::HBondSet set 
)

Utility function used by other functions in this file. Given that an edge exists between two nodes, find all of the hbonds between those two residues. It does not matter which order resA and resB are. Output hbonds are put in the HBondSet provided. This should not be called before the graph is populated with edges (see HBondGraphInitializerIG) - nothing will crash if this is called with no edges but it just does not make sense.

References core::scoring::hbonds::identify_hbonds_1way(), and core::conformation::Residue::seqpos().

Referenced by determine_atom_level_edge_info(), and find_satisfying_interactions_with_background().

◆ find_satisfying_interactions_with_background()

void core::pack::hbonds::find_satisfying_interactions_with_background ( HBondNode node,
rotamer_set::RotamerSets const &  rotamer_sets,
utility::graph::Graph const &  packer_neighbor_graph,
pose::Pose const &  poly_ala_pose,
Real  hbond_energy_threshold_for_satisfaction 
)

◆ get_symm_ind_res()

Size core::pack::hbonds::get_symm_ind_res ( pose::Pose const &  pose,
Size const  resid,
conformation::symmetry::SymmetryInfoCOP  symm_info,
std::map< char, std::pair< Size, Size > >  chain_bounds 
)

◆ hbond_graph_from_partial_rotsets()

scoring::hbonds::graph::HBondGraphOP core::pack::hbonds::hbond_graph_from_partial_rotsets ( pose::Pose const &  pose_in,
pack::rotamer_set::RotamerSets const &  original_rotsets,
scoring::ScoreFunctionOP const &  scorefxn_sc,
scoring::ScoreFunctionOP const &  scorefxn_bb,
pack::rotamer_set::RotamerSetsOP complete_rotsets_out,
utility::vector1< bool > &  position_had_rotset,
float  minimum_hb_cut 
)

Construct an HBondGraph from a partial rotsets (like you might see during packing) @detail BB-BB hbonds are only included for the first residue. This means that prolines are not handled correctly. If proline is the first resdiue at a position and other residues are being packed at that position, any hbonds to the other Ns will not be reported. If one wishes to have BB-BB hbonds for all pairs, enable all 4 hbond terms for scorefxn_sc and leave scorefxn_bb as a nullptr (or a blank scorefxn) If your pose is symmetric, this internally desymmetrizes it and returns all hbonds.

Construct an HBondGraph from a partial rotsets (like you might see during packing) @detail BB-BB hbonds are only included for the first residue. This means that prolines are not handled correctly. If proline is the first resdiue at a position and other residues are being packed at that position, any hbonds to the other Ns will not be reported. If one wishes to have BB-BB hbonds for all pairs, enable all 4 hbond terms for scorefxn_sc and leave scorefxn_bb as a nullptr (or a blank scorefxn)

References core::pose::Pose::conformation(), create_init_and_create_edges_for_hbond_graph(), core::pack::task::TaskFactory::create_packer_task(), core::conformation::Residue::create_rotamer(), core::pack::rotamer_set::RotamerSets::has_rotamer_set_for_residue(), core::pose::symmetry::is_symmetric(), core::pose::symmetry::make_asymmetric_pose(), core::pose::Pose::residue(), core::pack::rotamer_set::RotamerSets::rotamer_set_for_residue(), core::pose::Pose::size(), and core::conformation::symmetry::SymmetricConformation::Symmetry_Info().

Referenced by protocols::task_operations::PruneBuriedUnsats_RotamerSetsOperation::alter_rotamer_sets(), and core::pack::guidance_scoreterms::approximate_buried_unsat_penalty::three_body_approximate_buried_unsat_calculation().

◆ init_node_info()

void core::pack::hbonds::init_node_info ( HBondGraph graph,
rotamer_set::RotamerSets const &  rotamer_sets 
)

This should be called immediately after creating the graph (and setting the number of nodes if need-be). This adds rotamer_sets info to the nodes for easier lookup later. Technically optional but recommended.

References core::pack::rotamer_set::RotamerSets::moltenres_for_rotamer(), core::pack::rotamer_set::RotamerSets::nrotamers(), rot(), core::pack::rotamer_set::RotamerSets::rotid_on_moltenresidue(), core::scoring::hbonds::graph::HBondNode::set_local_rotamer_id(), and core::scoring::hbonds::graph::HBondNode::set_moltenres().

Referenced by create_and_init_hbond_graph(), and protocols::hbnet::HBNet::initialize_hbond_graph().

◆ TR()

static basic::Tracer core::pack::hbonds::TR ( "core.pack.hbonds.HBondGraphInitializerIG"  )
static