Rosetta
|
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") |
using core::pack::hbonds::HBondGraphInitializerIGCOP = typedef utility::pointer::shared_ptr< HBondGraphInitializerIG const > |
using core::pack::hbonds::HBondGraphInitializerIGOP = typedef utility::pointer::shared_ptr< HBondGraphInitializerIG > |
|
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().
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().
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.
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 | ||
) |
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.
References core::conformation::Residue::atom_base(), core::pose::Pose::chain(), core::conformation::Conformation::chain_begin(), core::conformation::Conformation::chain_end(), core::pose::Pose::conformation(), find_hbonds_in_residue_pair(), core::scoring::hbond, core::scoring::hbonds::graph::HBondEdge::register_hbond(), core::pack::rotamer_set::RotamerSets::rotamer(), core::pack::rotamer_set::RotamerSets::rotamer_set_for_residue(), and core::conformation::Residue::seqpos().
Referenced by determine_atom_level_edge_info_for_all_edges(), and protocols::hbnet::HBNet::MC_traverse_IG().
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().
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().
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().
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().
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 | ||
) |
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.
References core::sequence::end, core::pose::Pose::energies(), find_hbonds_in_residue_pair(), core::scoring::hbonds::HBondDatabase::get_database(), core::scoring::hbonds::graph::HBondNode::global_rotamer_id(), core::scoring::hbond, core::scoring::hbonds::graph::HBondNode::moltenres(), core::pack::rotamer_set::RotamerSets::moltenres_2_resid(), core::scoring::hbonds::graph::HBondNode::remove_atom_info(), core::pose::Pose::residue(), core::pack::rotamer_set::RotamerSets::rotamer(), and core::scoring::Energies::tenA_neighbor_graph().
Referenced by protocols::hbnet::HBNet::MC_traverse_IG().
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 | ||
) |
References core::pose::Pose::chain().
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().
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().
|
static |