Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
protocols::cyclic_peptide::crosslinker::Metal_HelperBase Class Referenceabstract

A base class for setting up metals. This is a pure virtual class that must be subclassed for specific metal geometries.. More...

#include <Metal_HelperBase.hh>

Inheritance diagram for protocols::cyclic_peptide::crosslinker::Metal_HelperBase:
Inheritance graph
[legend]

Public Member Functions

 Metal_HelperBase (std::string const &metal_name_in="Zn")
 Default constructor. More...
 
 Metal_HelperBase (Metal_HelperBase const &src)
 Copy constructor. More...
 
 ~Metal_HelperBase () override
 Destructor (important for properly forward-declaring smart-pointer members) More...
 
void add_linker_asymmetric (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection) const override
 Given a pose and a selection of exactly three residues, add the linker, align it crudely to the selected residues, and set up covalent bonds. More...
 
void add_linker_bonds_asymmetric (core::pose::Pose &pose, utility::vector1< core::Size > const &res_indices, core::Size const linker_index) const override
 Given a pose and a linker, add bonds between the linker and the residues that coordinate the linker. More...
 
void add_linker_symmetric (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection) const override
 Given a pose and a selection of exactly three residues, add the linker, align it crudely to the selected residues, and set up covalent bonds. More...
 
void add_linker_bonds_symmetric (core::pose::Pose &pose, core::Size const res1, core::Size const linker_index1, core::Size const linker_index2) const override
 Given a pose and a linker, add bonds between the linker and the residues that coordinate the linker. More...
 
void add_linker_constraints_asymmetric (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection) const override
 Given a selection of exactly three residues that have already been connected to a crosslinker, add constraints for the crosslinker. More...
 
void add_linker_constraints_symmetric (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection, bool const linker_was_added) const override
 Given a selection of exactly three residues that have already been connected to a crosslinker, add constraints for the crosslinker. More...
 
core::Size get_linker_index_asymmetric (core::pose::Pose const &pose, utility::vector1< core::Size > const &res_indices) const override
 Given indices of four residues that are already linked to a linker, get the index of the linker. More...
 
void get_linker_indices_symmetric (core::pose::Pose const &pose, utility::vector1< core::Size > const &res_indices, utility::vector1< core::Size > &linker_indices) const override
 Given indices of three cysteine residues that are already linked to pieces of a linker, get of the indices of the symmetric pieces of the linker. More...
 
bool filter_by_sidechain_distance_asymmetric (core::pose::Pose const &pose, core::select::residue_selector::ResidueSubset const &selection, core::Real const &filter_multiplier) const override
 Given a pose with residues selected to be linked by a linker, determine whether the residues are too far apart. More...
 
bool filter_by_sidechain_distance_symmetric (core::pose::Pose const &pose, core::select::residue_selector::ResidueSubset const &selection, core::Real const &filter_multiplier) const override
 Given a pose with residues selected to be linked by a linker, determine whether the residues are too far apart. More...
 
bool filter_by_constraints_energy_asymmetric (core::pose::Pose const &pose, core::select::residue_selector::ResidueSubset const &selection, core::Real const &filter_multiplier) const override
 Determine whether the sidechain-crosslinker system has too high a constraints score. More...
 
bool filter_by_constraints_energy_symmetric (core::pose::Pose const &pose, core::select::residue_selector::ResidueSubset const &selection, bool const linker_was_added, core::Real const &filter_multiplier) const override
 Determine whether the sidechain-crosslinker system has too high a constraints score. This version is for symmetric poses. More...
 
bool helper_adds_linker_residue () const override
 Does this CrosslinkerMoverHelper add a residue for the linker? More...
 
void set_metal_type_from_name (std::string const &name_in)
 Given a metal name, set the type. More...
 
std::string metal_type_string () const
 Get the current metal type, as a string. More...
 
bool adds_crosslinker_residue () const override
 Does this helper add a residue to the pose? More...
 
- Public Member Functions inherited from protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper
 CrosslinkerMoverHelper ()
 Default constructor. More...
 
 CrosslinkerMoverHelper (CrosslinkerMoverHelper const &src)
 Copy constructor. More...
 
 ~CrosslinkerMoverHelper () override
 Destructor (important for properly forward-declaring smart-pointer members) More...
 
void set_symmetry (char const symm_type_in, core::Size const symm_count_in)
 Set the symmetry for this crosslinker helper. More...
 
virtual void get_sidechain_indices (core::select::residue_selector::ResidueSubset const &selection, utility::vector1< core::Size > &res_indices) const
 Given a ResidueSubset with N residues selected, pull out the indices into a vector. More...
 
virtual bool selection_is_symmetric (core::select::residue_selector::ResidueSubset const &selection, core::pose::Pose const &pose, core::Size const expected_subunit_count) const
 Determine whether a selection is symmetric. More...
 
virtual void pre_relax_round_update_steps (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection, bool const whole_structure, bool const symmetric, bool const linker_was_added) const
 Optional steps that the helper can apply before every relaxation round. More...
 
virtual void post_relax_round_update_steps (core::pose::Pose &pose, core::select::residue_selector::ResidueSubset const &selection, bool const whole_structure, bool const symmetric, bool const linker_was_added) const
 Optional steps that the helper can apply after every relaxation round. More...
 
core::Size symm_subunits_expected () const
 Get the number of expected symmetry subunits, given the symmetry type. More...
 

Protected Member Functions

virtual void check_residue_indices_valid (utility::vector1< core::Size > const &indices, core::pose::Pose const &pose) const =0
 Check that the correct number of residues have been selected, that they are within the pose, and that they are allowed residue types. More...
 
virtual bool is_allowed_type (core::chemical::ResidueType const &type) const =0
 Given a residue type, check whether it's an allowed residue type for tetrahedrally coordinating metals. More...
 
virtual void add_angle_constraints (core::pose::Pose &pose, utility::vector1< core::Size > const &res_indices, core::Size const i, core::Size const j) const =0
 Given a pose, a list of residues, and indices i and j in that list, add angle constraints between the two residues specified. More...
 
virtual void add_dihedral_constraints (core::pose::Pose &pose, utility::vector1< core::Size > const &res_indices) const
 Given a pose and a list of residues, add dihedral constraints (e.g. improper dihedrals to enforce planarity). More...
 
virtual core::Real const & ideal_bond_length (Metal_HelperBase_Metal const metal_type, Metal_HelperBase_MetalLigand const ligand_type) const =0
 Given a metal type and a metal-liganding atom type, return the ideal bond length. More...
 
void set_metal_bond_length (core::pose::Pose &pose, core::Size const res_index) const
 Given a pose and a residue with the VIRTUAL_METAL_CONJUGATION variant type already added, set the metal-metal liganding atom bond length appropriately for the metal in question. More...
 
Metal_HelperBase_MetalLigand liganding_atom_from_restype (core::chemical::ResidueType const &restype) const
 Given a ResidueType with the VIRTUAL_METAL_CONJUGATION variant type already added, get the metal-liganding atom enum. More...
 
std::string metal_type_string_from_enum (Metal_HelperBase_Metal const metal_type) const
 Given a metal type enum, return the corresponding string. More...
 
Metal_HelperBase_Metal metal_type_enum_from_string (std::string const &metal_type_string) const
 Given a metal type string, return the corresponding enum. More...
 
virtual void check_compatible_symmetry_type () const =0
 Check that the symmetry type is one of a few compatible types. More...
 
- Protected Member Functions inherited from protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper
virtual bool filter_by_constraints_energy (core::pose::Pose const &pose, core::select::residue_selector::ResidueSubset const &selection, bool const symmetric, bool const linker_was_added, core::Real const &filter_multiplier) const
 Determine whether the sidechain-crosslinker system has too high a constraints score. Both the symmetric and asymmetric versions call this code. More...
 
char symm_type () const
 Get the symmetry type. More...
 
core::Size symm_count () const
 Get the symmetry copy count. For example, symm_type_='C' and symm_count_=3 would specify C3 symmetry. A value of 1 means asymmetry. 1 by default. More...
 

Private Attributes

Metal_HelperBase_Metal metal_type_
 The type of metal to add (Zn, Cu, etc.). More...
 

Detailed Description

A base class for setting up metals. This is a pure virtual class that must be subclassed for specific metal geometries..

Constructor & Destructor Documentation

protocols::cyclic_peptide::crosslinker::Metal_HelperBase::Metal_HelperBase ( std::string const &  metal_name_in = "Zn")

Default constructor.

Constructors ///.

Default constructor

References set_metal_type_from_name().

protocols::cyclic_peptide::crosslinker::Metal_HelperBase::Metal_HelperBase ( Metal_HelperBase const &  src)

Copy constructor.

protocols::cyclic_peptide::crosslinker::Metal_HelperBase::~Metal_HelperBase ( )
override

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

Member Function Documentation

virtual void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_angle_constraints ( core::pose::Pose pose,
utility::vector1< core::Size > const &  res_indices,
core::Size const  i,
core::Size const  j 
) const
protectedpure virtual
void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_dihedral_constraints ( core::pose::Pose pose,
utility::vector1< core::Size > const &  res_indices 
) const
protectedvirtual

Given a pose and a list of residues, add dihedral constraints (e.g. improper dihedrals to enforce planarity).

Private Methods ///.

Defaults to a function that does nothing. Can be overridden by derived classes.

Given a pose and a list of residues, add dihedral constraints (e.g. improper dihedrals to enforce planarity).

Defaults to a function that does nothing. Can be overridden by derived classes.

Reimplemented in protocols::cyclic_peptide::crosslinker::TrigonalPlanarMetal_Helper, protocols::cyclic_peptide::crosslinker::SquarePlanarMetal_Helper, and protocols::cyclic_peptide::crosslinker::SquarePyramidalMetal_Helper.

Referenced by add_linker_constraints_asymmetric(), and add_linker_constraints_symmetric().

void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_asymmetric ( core::pose::Pose pose,
core::select::residue_selector::ResidueSubset const &  selection 
) const
overridevirtual
void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_bonds_asymmetric ( core::pose::Pose pose,
utility::vector1< core::Size > const &  res_indices,
core::Size const  linker_index 
) const
overridevirtual

Given a pose and a linker, add bonds between the linker and the residues that coordinate the linker.

Can be called by add_linker_asymmetric(). Must be defined by derived classes (pure virtual). Version for asymmetric poses.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_bonds_symmetric ( core::pose::Pose pose,
core::Size const  res1,
core::Size const  linker_index1,
core::Size const  linker_index2 
) const
overridevirtual

Given a pose and a linker, add bonds between the linker and the residues that coordinate the linker.

Can be called by add_linker_symmetric(). Must be defined by derived classes (pure virtual). Version for symmetric poses.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_constraints_asymmetric ( core::pose::Pose pose,
core::select::residue_selector::ResidueSubset const &  selection 
) const
overridevirtual

Given a selection of exactly three residues that have already been connected to a crosslinker, add constraints for the crosslinker.

Given a selection of four residues that have already been connected to a crosslinker, add constraints for the crosslinker.

Must be defined by derived classes. Version for asymmetric poses.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

References add_angle_constraints(), add_dihedral_constraints(), protocols::cyclic_peptide::CreateDistanceConstraint::apply(), check_residue_indices_valid(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::get_sidechain_indices(), protocols::hybridization::r1, protocols::hybridization::r2, and protocols::cyclic_peptide::CreateDistanceConstraint::set().

void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_constraints_symmetric ( core::pose::Pose pose,
core::select::residue_selector::ResidueSubset const &  selection,
bool const  linker_was_added 
) const
overridevirtual
void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::add_linker_symmetric ( core::pose::Pose pose,
core::select::residue_selector::ResidueSubset const &  selection 
) const
overridevirtual
bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::adds_crosslinker_residue ( ) const
inlineoverridevirtual

Does this helper add a residue to the pose?

True for most crosslinkers, but overridden here to return "false" because this helper acts by patching existing residues instead of appending geometry.

Reimplemented from protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

virtual void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::check_compatible_symmetry_type ( ) const
protectedpure virtual
virtual void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::check_residue_indices_valid ( utility::vector1< core::Size > const &  indices,
core::pose::Pose const &  pose 
) const
protectedpure virtual
bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::filter_by_constraints_energy_asymmetric ( core::pose::Pose const &  pose,
core::select::residue_selector::ResidueSubset const &  selection,
core::Real const &  filter_multiplier 
) const
overridevirtual

Determine whether the sidechain-crosslinker system has too high a constraints score.

Returns TRUE for failure (too high a constraints score) and FALSE for success.

Note
Higher values of the filter multiplier make it more permissive.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

References protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::filter_by_constraints_energy().

bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::filter_by_constraints_energy_symmetric ( core::pose::Pose const &  pose,
core::select::residue_selector::ResidueSubset const &  selection,
bool const  linker_was_added,
core::Real const &  filter_multiplier 
) const
overridevirtual

Determine whether the sidechain-crosslinker system has too high a constraints score. This version is for symmetric poses.

Returns TRUE for failure (too high a constraints score) and FALSE for success.

Note
Higher values of the filter multiplier make it more permissive.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

References check_compatible_symmetry_type(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::filter_by_constraints_energy(), core::pose::symmetry::is_symmetric(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::selection_is_symmetric(), and protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::symm_subunits_expected().

bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::filter_by_sidechain_distance_asymmetric ( core::pose::Pose const &  pose,
core::select::residue_selector::ResidueSubset const &  selection,
core::Real const &  filter_multiplier 
) const
overridevirtual

Given a pose with residues selected to be linked by a linker, determine whether the residues are too far apart.

Returns TRUE for failure (residues too far apart) and FALSE for success.

Note
Higher values of the filter multiplier make it more permissive.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

References check_residue_indices_valid(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::get_sidechain_indices(), MAX_CB_CB_DIST_SQ, core::pose::Pose::residue(), and core::conformation::Residue::xyz().

bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::filter_by_sidechain_distance_symmetric ( core::pose::Pose const &  pose,
core::select::residue_selector::ResidueSubset const &  selection,
core::Real const &  filter_multiplier 
) const
overridevirtual

Given a pose with residues selected to be linked by a linker, determine whether the residues are too far apart.

Returns TRUE for failure (residues too far apart) and FALSE for success. This version is for symmetric poses.

Note
Higher values of the filter multiplier make it more permissive.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

References check_compatible_symmetry_type(), check_residue_indices_valid(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::get_sidechain_indices(), core::pose::symmetry::is_symmetric(), MAX_CB_CB_DIST_SQ, core::pose::Pose::residue(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::selection_is_symmetric(), protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper::symm_subunits_expected(), and core::conformation::Residue::xyz().

core::Size protocols::cyclic_peptide::crosslinker::Metal_HelperBase::get_linker_index_asymmetric ( core::pose::Pose const &  pose,
utility::vector1< core::Size > const &  res_indices 
) const
overridevirtual

Given indices of four residues that are already linked to a linker, get the index of the linker.

Not applicable for this particular crosslinker. A "GNDN" function – goes nowhere, does nothing. Only here because the base class has a pure virtual of this name.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::get_linker_indices_symmetric ( core::pose::Pose const &  pose,
utility::vector1< core::Size > const &  res_indices,
utility::vector1< core::Size > &  linker_indices 
) const
overridevirtual

Given indices of three cysteine residues that are already linked to pieces of a linker, get of the indices of the symmetric pieces of the linker.

Given indices of four residues that are already linked to pieces of a linker, get of the indices of the symmetric pieces of the linker.

Throws an error if a residue is not linked to something. Must be defined by derived classes.

Not applicable for this particular crosslinker. A "GNDN" function – goes nowhere, does nothing. Only here because the base class has a pure virtual of this name.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::helper_adds_linker_residue ( ) const
inlineoverridevirtual

Does this CrosslinkerMoverHelper add a residue for the linker?

No, it does not.

Implements protocols::cyclic_peptide::crosslinker::CrosslinkerMoverHelper.

virtual core::Real const& protocols::cyclic_peptide::crosslinker::Metal_HelperBase::ideal_bond_length ( Metal_HelperBase_Metal const  metal_type,
Metal_HelperBase_MetalLigand const  ligand_type 
) const
protectedpure virtual
virtual bool protocols::cyclic_peptide::crosslinker::Metal_HelperBase::is_allowed_type ( core::chemical::ResidueType const &  type) const
protectedpure virtual

Given a residue type, check whether it's an allowed residue type for tetrahedrally coordinating metals.

Returns "true" for pass (allowed type) and "false" for failure (prohibited type). Currently, allowed types are L- and D-histidine, L- or D-aspartate, L- or D-glutamate, L- or D-cysteine, L- or D-homocysteine, and the beta-3-amino acid equivalents.

Implemented in protocols::cyclic_peptide::crosslinker::TetrahedralMetal_Helper, protocols::cyclic_peptide::crosslinker::TrigonalPlanarMetal_Helper, protocols::cyclic_peptide::crosslinker::TrigonalPyramidalMetal_Helper, protocols::cyclic_peptide::crosslinker::OctahedralMetal_Helper, and protocols::cyclic_peptide::crosslinker::SquarePlanarMetal_Helper.

Metal_HelperBase_MetalLigand protocols::cyclic_peptide::crosslinker::Metal_HelperBase::liganding_atom_from_restype ( core::chemical::ResidueType const &  restype) const
protected
Metal_HelperBase_Metal protocols::cyclic_peptide::crosslinker::Metal_HelperBase::metal_type_enum_from_string ( std::string const &  metal_type_string) const
protected

Given a metal type string, return the corresponding enum.

Returns MH_unknown_metal if the string is unrecognized.

References metal_type_string_from_enum(), protocols::cyclic_peptide::crosslinker::MH_end_of_list, and protocols::cyclic_peptide::crosslinker::MH_unknown_metal.

Referenced by set_metal_type_from_name().

std::string protocols::cyclic_peptide::crosslinker::Metal_HelperBase::metal_type_string ( ) const

Get the current metal type, as a string.

References metal_type_, and metal_type_string_from_enum().

std::string protocols::cyclic_peptide::crosslinker::Metal_HelperBase::metal_type_string_from_enum ( Metal_HelperBase_Metal const  metal_type) const
protected
void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::set_metal_bond_length ( core::pose::Pose pose,
core::Size const  res_index 
) const
protected
void protocols::cyclic_peptide::crosslinker::Metal_HelperBase::set_metal_type_from_name ( std::string const &  name_in)

Member Data Documentation

Metal_HelperBase_Metal protocols::cyclic_peptide::crosslinker::Metal_HelperBase::metal_type_
private

The type of metal to add (Zn, Cu, etc.).

Determines ideal bond lengths for metal bonds.

Referenced by metal_type_string(), set_metal_bond_length(), and set_metal_type_from_name().


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