Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Functions
HBondGraph_util.cc File Reference

A collections of methods that are useful for dealing with HBondGraphs. More...

#include <core/chemical/AtomType.hh>
#include <core/conformation/Conformation.hh>
#include <core/conformation/Residue.hh>
#include <core/conformation/symmetry/SymmetricConformation.hh>
#include <core/conformation/symmetry/SymmetryInfo.hh>
#include <core/pack/hbonds/HBondGraph_util.hh>
#include <core/pack/hbonds/HBondGraphInitializerIG.hh>
#include <core/pack/interaction_graph/AminoAcidNeighborSparseMatrix.hh>
#include <core/pack/packer_neighbors.hh>
#include <core/pack/rotamer_set/RotamerSets.hh>
#include <core/pack/rotamer_set/symmetry/SymmetricRotamerSet_.hh>
#include <core/pack/task/TaskFactory.hh>
#include <core/pose/Pose.hh>
#include <core/pose/symmetry/util.hh>
#include <core/scoring/Energies.hh>
#include <core/scoring/TenANeighborGraph.hh>
#include <core/scoring/hbonds/HBondDatabase.hh>
#include <core/scoring/hbonds/HBondOptions.hh>
#include <core/scoring/hbonds/HBondSet.hh>
#include <core/scoring/hbonds/graph/HBondGraph.hh>
#include <core/scoring/hbonds/hbonds.hh>
#include <core/scoring/ScoreFunction.hh>
#include <core/scoring/symmetry/SymmetricEnergies.hh>
#include <basic/thread_manager/RosettaThreadAssignmentInfo.hh>
#include <basic/thread_manager/RosettaThreadManager.hh>
#include <list>
#include <utility/graph/Graph.hh>
#include <utility/pointer/owning_ptr.hh>
#include <utility/vector1.hh>

Namespaces

 core
 A class for reading in the atom type properties.
 
 core::pack
 
 core::pack::hbonds
 

Functions

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=-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 core::pack::hbonds::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 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. More...
 
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=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 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)
 
void core::pack::hbonds::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 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=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 core::pack::hbonds::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 core::pack::hbonds::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 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. More...
 
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) 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...
 

Detailed Description

A collections of methods that are useful for dealing with HBondGraphs.

Author
Jack Maguire, jackm.nosp@m.agui.nosp@m.re144.nosp@m.4@gm.nosp@m.ail.c.nosp@m.om