Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric Class Reference

A metric to measure hydrogen bonds between a set of residues that are water-mediated. More...

#include <WaterMediatedHbondMetric.hh>

Inheritance diagram for core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric:
Inheritance graph
[legend]

Public Member Functions

 WaterMediatedHbondMetric ()
 Constructors ///. More...
 
 WaterMediatedHbondMetric (WaterMediatedHbondMetric const &src)
 Copy constructor (not needed unless you need deep copies) More...
 
 ~WaterMediatedHbondMetric () override
 Destructor (important for properly forward-declaring smart-pointer members) More...
 
std::map< core::Size, core::Realcalculate (core::pose::Pose const &pose) const override
 Metric Methods ///. More...
 
void set_include_virt_waters (bool include_virt_waters)
 After packing, some waters become HOH_v if they don't match certain ref energy. The option -include_vrt false will have them all be HOH during packing. Set this option to true to incude them in our calculation if they are still virts. More...
 
void set_residue_selector2 (core::select::residue_selector::ResidueSelectorCOP selector)
 Optionally set a second residue selector to get bridged hbonds between both selections. More...
 
void set_depth (core::Size const depth)
 Set the depth we will go to find hbonds. Default is 1. IE resi - water -resj. More...
 
void set_include_only_set_depth (bool include_only_depth)
 Set to include only the depth that is set instead of Up to the max depth. IE - if depth is set to 2, we only include hbond paths mediated by two waters. Default false. More...
 
void set_include_self (bool include_self)
 Set to include hbonds as so: resi - water - resi Default false. More...
 
std::string name () const override
 Name of the class. More...
 
std::string metric () const override
 Name of the metric. More...
 
void find_hb_paths (core::scoring::hbonds::HBondSet const &local_hb_set, utility::vector1< core::Size > const &local_waters, std::map< std::string, core::Size > &paths, core::Size const current_res, core::Size const max_depth=1, std::string const &current_path="", core::Size const current_depth=0, core::scoring::hbonds::HBondCOP prev_hb=nullptr) const
 Recursive function to find all unique HBond paths involving water and ending with a residue that is not in our water list. More...
 
void parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data) override
 called by parse_my_tag – should not be used directly More...
 
core::simple_metrics::SimpleMetricOP clone () const override
 
- Public Member Functions inherited from core::simple_metrics::PerResidueRealMetric
 PerResidueRealMetric ()
 
 ~PerResidueRealMetric () override
 
 PerResidueRealMetric (PerResidueRealMetric const &other)
 
void apply (pose::Pose &pose, std::string prefix="", std::string suffix="", bool override_existing_data=false) const override
 Calculate the metric and add it to the pose as a score. labeled as prefix+metric+suffix. More...
 
void set_residue_selector (select::residue_selector::ResidueSelectorCOP selector)
 Set a ResidueSelector for which we will calculate values over. More...
 
void set_output_as_pdb_nums (bool output_as_pdb_nums)
 Set to output in PDB numbering instead of Rosetta during the Apply function, which adds the data to pose as extra scores. More...
 
std::map< core::Size, core::Realcached_calculate (pose::Pose const &pose, bool use_cache, std::string prefix="", std::string suffix="", bool fail_on_missing_cache=true, bool use_ref_pose_for_cache=true) const
 Grab the data from the pose if it exists or calculate the metric. More...
 
utility::vector1< std::string > get_metric_names () const override
 Get the submetric names that this Metric will calculate. More...
 
select::residue_selector::ResidueSelectorCOP get_selector () const
 Get the set residue selector of this class. More...
 
virtual void parse_per_residue_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data)
 Parse the base class tag. Keep required interface for parse_my_tag. More...
 
- Public Member Functions inherited from core::simple_metrics::SimpleMetric
 SimpleMetric (std::string const &simple_metric_type)
 
 ~SimpleMetric () override
 
 SimpleMetric (SimpleMetric const &other)
 
void set_custom_type (std::string const &custom_type)
 
std::string get_custom_type () const
 Additional setting to prefix/suffix. More...
 
virtual void parse_base_tag (utility::tag::TagCOP tag)
 Parse the base class tag. Keep required interface for parse_my_tag. More...
 
std::string simple_metric_type () const
 
std::string get_final_sm_type () const
 Get the final name of this metric including its simple_metric_type_ name and any set custom type. More...
 
virtual bool simple_metric_provides_citation_info () const
 Does this simple metric provide information about how to cite it? More...
 
virtual utility::vector1
< basic::citation_manager::CitationCollectionCOP > 
provide_citation_info () const
 Provide the citation. More...
 
virtual bool simple_metric_is_unpublished () const
 Does this simple metric indicate that it is unpublished (and, by extension, that the author should be included in publications resulting from it)? More...
 
virtual utility::vector1
< basic::citation_manager::UnpublishedModuleInfoCOP > 
provide_authorship_info_for_unpublished () const
 Provide a list of authors and their e-mail addresses, as strings. More...
 

Static Public Member Functions

static std::string name_static ()
 Name of the class for creator. More...
 
static void provide_xml_schema (utility::tag::XMLSchemaDefinition &xsd)
 
- Static Public Member Functions inherited from core::simple_metrics::PerResidueRealMetric
static void add_schema (utility::tag::XMLSchemaComplexTypeGeneratorOP complex_schema)
 Add options to the schema from this base class. More...
 
- Static Public Member Functions inherited from core::simple_metrics::SimpleMetric
static
utility::tag::XMLSchemaComplexTypeGeneratorOP 
complex_type_generator_for_simple_metric (utility::tag::XMLSchemaDefinition &)
 

Private Attributes

bool include_virt_waters_ = false
 
bool include_self_ = false
 
bool include_only_set_depth_ = false
 
core::Size depth_ = 1
 
core::select::residue_selector::ResidueSelectorCOP selector_two_ = nullptr
 

Detailed Description

A metric to measure hydrogen bonds between a set of residues that are water-mediated.

DEPTH: We only traverse a depth of 1 by default. Make sure to set the -ignore_waters flag to false in order to have Rosetta include the HOH residues.

SELECTION: If one residue selector is given, will calculate bridged waters between residues of the selection and all [OTHER] residues, otherwise it will calculate bridges between one selection and another.

If NO SELECTION is give, will report ALL bridged hbonds in a pose [by default without self-water-self hbonds].

HBOND: Since these are bridged hbonds, and h-bond networks can be rather complex, the numbers reported here are the unique h-bond paths from sele1 to sele2. If you give only a single residue selector, these are bridged hbonds from sele1 to OTHER residues in sele1. By default we do not include mediated hbonds back on itself, but this is an option.

TIPS: It is generally recommended to repack the waters using the OptH TaskOperation before input into this metric, especially if only Oxygens were present. Using the option -include_vrt false will keep all waters present in the resulting structure. Use the option -corrections::water::wat_rot_sampling 10 to decrease the angle of sampling from a default of 30 to 10. This will result in many more rotamers, but will improve networks.

Hydration shells can be calculated by passing selection1 as all waters in the pose, selection2 as the protein or chain, and then reporting only a single depth (with max_depth at 0 and 1 for the first and second shell waters."

It is also recommended to use the Beta scorefunction as this can improve hydrogen bond detection.

Constructor & Destructor Documentation

core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::WaterMediatedHbondMetric ( )

Constructors ///.

Default constructor

core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::WaterMediatedHbondMetric ( WaterMediatedHbondMetric const &  src)
default

Copy constructor (not needed unless you need deep copies)

Copy constructor.

core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::~WaterMediatedHbondMetric ( )
override

Destructor (important for properly forward-declaring smart-pointer members)

Member Function Documentation

std::map< core::Size, core::Real > core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::calculate ( core::pose::Pose const &  pose) const
overridevirtual

Metric Methods ///.

Defined in RealMetric:

Calculate the metric and add it to the pose as a score. labeled as prefix+metric+suffix.

Score is added through setExtraScorePose and is output into the score tables/file at pose output. Defined in PerResidueRealMetric Calculate the metric. This map is Rosetta Resnum->value and includes only those residues selected.

Return by value as this function can not STORE the result, it only calculates. Store the result in the pose by using the apply method, which calls this method and stores the result in the pose as ExtraScoreValues.

Implements core::simple_metrics::PerResidueRealMetric.

References depth_, find_hb_paths(), core::select::get_residues_from_subset(), core::simple_metrics::PerResidueRealMetric::get_selector(), include_only_set_depth_, include_self_, include_virt_waters_, core::chemical::ResidueType::is_water(), core::conformation::Residue::name(), core::pose::Pose::residue(), core::pose::Pose::residue_type(), selector_two_, core::pose::Pose::size(), and TR().

core::simple_metrics::SimpleMetricOP core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::clone ( ) const
overridevirtual
void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::find_hb_paths ( core::scoring::hbonds::HBondSet const &  local_hb_set,
utility::vector1< core::Size > const &  local_waters,
std::map< std::string, core::Size > &  paths,
core::Size const  current_res,
core::Size const  max_depth = 1,
std::string const &  current_path = "",
core::Size const  current_depth = 0,
core::scoring::hbonds::HBondCOP  prev_hb = nullptr 
) const

Recursive function to find all unique HBond paths involving water and ending with a residue that is not in our water list.

Populates paths as the reference. Path is a splittalbe string of the connections. ex: 191-221-333 where residue 221 is a water in our list.

References core::scoring::hbonds::find_hb_paths().

Referenced by calculate().

std::string core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::metric ( ) const
overridevirtual

Name of the metric.

Implements core::simple_metrics::PerResidueRealMetric.

std::string core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::name ( ) const
overridevirtual

Name of the class.

Implements core::simple_metrics::PerResidueRealMetric.

References name_static().

std::string core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::name_static ( )
static
void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap &  data 
)
overridevirtual
void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::provide_xml_schema ( utility::tag::XMLSchemaDefinition &  xsd)
static
void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::set_depth ( core::Size const  depth)

Set the depth we will go to find hbonds. Default is 1. IE resi - water -resj.

References depth_.

Referenced by parse_my_tag().

void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::set_include_only_set_depth ( bool  include_only_depth)

Set to include only the depth that is set instead of Up to the max depth. IE - if depth is set to 2, we only include hbond paths mediated by two waters. Default false.

References include_only_set_depth_.

Referenced by parse_my_tag().

void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::set_include_self ( bool  include_self)

Set to include hbonds as so: resi - water - resi Default false.

Will only find these if selector1 and selector2 contain the same residue.

References include_self_.

Referenced by parse_my_tag().

void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::set_include_virt_waters ( bool  include_virt_waters)

After packing, some waters become HOH_v if they don't match certain ref energy. The option -include_vrt false will have them all be HOH during packing. Set this option to true to incude them in our calculation if they are still virts.

References include_virt_waters_.

Referenced by parse_my_tag().

void core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::set_residue_selector2 ( core::select::residue_selector::ResidueSelectorCOP  selector)

Optionally set a second residue selector to get bridged hbonds between both selections.

References selector_two_.

Referenced by parse_my_tag().

Member Data Documentation

core::Size core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::depth_ = 1
private

Referenced by calculate(), parse_my_tag(), and set_depth().

bool core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::include_only_set_depth_ = false
private
bool core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::include_self_ = false
private
bool core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::include_virt_waters_ = false
private
core::select::residue_selector::ResidueSelectorCOP core::simple_metrics::per_residue_metrics::WaterMediatedHbondMetric::selector_two_ = nullptr
private

Referenced by calculate(), and set_residue_selector2().


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