Rosetta
Public Member Functions | Private Member Functions | List of all members
core::pack::rotamers::SingleResidueRotamerLibrary Class Referenceabstract

SingleResidueRotamerLibrary pure virtual base class. More...

#include <SingleResidueRotamerLibrary.hh>

Inheritance diagram for core::pack::rotamers::SingleResidueRotamerLibrary:
Inheritance graph
[legend]

Public Member Functions

 SingleResidueRotamerLibrary ()
 
 ~SingleResidueRotamerLibrary () override
 
virtual void rotamer_energy_deriv (conformation::Residue const &rsd, pose::Pose const &pose, core::id::TorsionID const &tor_id, TorsionEnergy &tderiv) const =0
 
virtual Real rotamer_energy (conformation::Residue const &rsd, pose::Pose const &pose, TorsionEnergy &energy) const =0
 
virtual std::set< id::PartialAtomIDatoms_w_dof_derivatives (conformation::Residue const &rsd, pose::Pose const &pose) const =0
 Return the set of atoms ids (or, if they come from another residue, PartialAtomIDs) for the set of atoms that are used in defining the DOF derivatives for a particular residue. More...
 
virtual Real best_rotamer_energy (conformation::Residue const &rsd, pose::Pose const &pose, bool curr_rotamer_only) const =0
 Returns the energy of the lowest-energy rotamer accessible to the given residue (based on e.g. its current phi and psi values). If curr_rotamer_only is true, then consider only the idealized version of the residue's current rotamer (local optimum); otherwise, consider all rotamers (global optimum). More...
 
virtual void assign_random_rotamer_with_bias (conformation::Residue const &rsd, pose::Pose const &pose, numeric::random::RandomGenerator &RG, dunbrack::ChiVector &new_chi_angles, bool perturb_from_rotamer_center) const =0
 Pick a rotamer for the input residue according to the rotamer probability distribution and assign chi angles to the input rsd. If perturb_from_rotamer_center is true, then push the rotamer off from the center; for chi angles with a normal distribution, the perturbation is taken from a Gaussian random number with a standard deviation matching the chi angle's standard deviation. For chi angles that are not normally distributed, the behavior is open to the derived classe's interpretation. More...
 
virtual void fill_rotamer_vector (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, pack::task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::vector1< utility::vector1< Real > > const &extra_chi_steps, bool buried, RotamerVector &rotamers) const =0
 
virtual utility::vector1< utility::vector1< core::Real > > compute_proton_chi_samplings (chemical::ResidueType const &concrete_residue, pack::task::ResidueLevelTask const &rlt, bool buried) const
 Return a vector (indexed by proton_chi number) of vectors of dihedral values to use in proton chi sampling. More...
 
virtual utility::vector1< dunbrack::ChiSetOPexpand_proton_chis (utility::vector1< utility::vector1< core::Real > > const &sampling, chemical::ResidueType const &concrete_residue, core::Size max_rotamers=5000) const
 Given a vector of vectors of dihedrals to sample on proton chis, Will create the ChiSet vector combinitorially on those chi values (Note: The ChiSets are only valid/defined over the proton chis.) More...
 
virtual void bump_filter (RotamerVector &rotamers, core::Size resid, scoring::ScoreFunction const &sf, pose::Pose const &pose, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph) const
 Filter a RotamerVector by "bump energy" of a rotamer: All rotamers with bump energies over a certain threshold will be discarded Exception: if all rotamers are over the threshold, one rotamer (with the lowest bump energy) will be reserved. The vector "rotamers" will be modified "in-place". More...
 
virtual core::PackerEnergy bump_check (core::conformation::ResidueCOP rotamer, core::Size resid, scoring::ScoreFunction const &sf, pose::Pose const &pose, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph) const
 Computes the "bump energy" of a rotamer: the bump energy is the sum of rotamer's interactions with 1) the backbone-and-side chains of neighboring residues that are held fixed during this repacking optimization and 2) the backbones of neighboring residues that are changable during this repacking optimization. More...
 
virtual core::Size current_rotamer (RotamerVector &rotamers, core::Size resid, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const
 Adds the current rotamer to rotamer vector, if the Rotlib supports it. More...
 
virtual void emergency_rotamer (RotamerVector &rotamers, core::Size resid, pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const
 Generate an "emergency rotamer" if we don't have any. More...
 
RotamerVector virtual_sidechain (RotamerVector const &rotamers, core::Size resid, pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const
 Add a virtualized sidechain to the rotamer vector if settings call for it. More...
 
virtual void write_to_file (utility::io::ozstream &out) const =0
 
virtual bool operator== (SingleResidueRotamerLibrary const &) const
 Equality test for equivalence. Two SingleResidueRotamerLibraries test equal if and only if they represent the exact same behavior. More...
 

Private Member Functions

SingleResidueRotamerLibraryoperator= (SingleResidueRotamerLibrary const &other)=delete
 
 SingleResidueRotamerLibrary (SingleResidueRotamerLibrary const &)=delete
 

Detailed Description

SingleResidueRotamerLibrary pure virtual base class.

Constructor & Destructor Documentation

◆ SingleResidueRotamerLibrary() [1/2]

core::pack::rotamers::SingleResidueRotamerLibrary::SingleResidueRotamerLibrary ( SingleResidueRotamerLibrary const &  )
privatedelete

◆ SingleResidueRotamerLibrary() [2/2]

core::pack::rotamers::SingleResidueRotamerLibrary::SingleResidueRotamerLibrary ( )
inline

◆ ~SingleResidueRotamerLibrary()

core::pack::rotamers::SingleResidueRotamerLibrary::~SingleResidueRotamerLibrary ( )
overridedefault

Member Function Documentation

◆ assign_random_rotamer_with_bias()

virtual void core::pack::rotamers::SingleResidueRotamerLibrary::assign_random_rotamer_with_bias ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
numeric::random::RandomGenerator &  RG,
dunbrack::ChiVector new_chi_angles,
bool  perturb_from_rotamer_center 
) const
pure virtual

Pick a rotamer for the input residue according to the rotamer probability distribution and assign chi angles to the input rsd. If perturb_from_rotamer_center is true, then push the rotamer off from the center; for chi angles with a normal distribution, the perturbation is taken from a Gaussian random number with a standard deviation matching the chi angle's standard deviation. For chi angles that are not normally distributed, the behavior is open to the derived classe's interpretation.

Implemented in core::pack::dunbrack::SemiRotamericSingleResidueDunbrackLibrary< T, N >, core::pack::dunbrack::RotamericSingleResidueDunbrackLibrary< T, N >, core::pack::dunbrack::cenrot::SingleResidueCenrotLibrary, core::pack::rotamers::SingleLigandRotamerLibrary, and core::pack::rotamers::SingleBasicRotamerLibrary.

◆ atoms_w_dof_derivatives()

virtual std::set< id::PartialAtomID > core::pack::rotamers::SingleResidueRotamerLibrary::atoms_w_dof_derivatives ( conformation::Residue const &  rsd,
pose::Pose const &  pose 
) const
pure virtual

Return the set of atoms ids (or, if they come from another residue, PartialAtomIDs) for the set of atoms that are used in defining the DOF derivatives for a particular residue.

Implemented in core::pack::rotamers::SingleLigandRotamerLibrary, core::pack::rotamers::SingleBasicRotamerLibrary, core::pack::dunbrack::RotamericSingleResidueDunbrackLibrary< T, N >, and core::pack::dunbrack::cenrot::SingleResidueCenrotLibrary.

◆ best_rotamer_energy()

virtual Real core::pack::rotamers::SingleResidueRotamerLibrary::best_rotamer_energy ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
bool  curr_rotamer_only 
) const
pure virtual

Returns the energy of the lowest-energy rotamer accessible to the given residue (based on e.g. its current phi and psi values). If curr_rotamer_only is true, then consider only the idealized version of the residue's current rotamer (local optimum); otherwise, consider all rotamers (global optimum).

Implemented in core::pack::rotamers::SingleLigandRotamerLibrary, core::pack::rotamers::SingleBasicRotamerLibrary, core::pack::dunbrack::SemiRotamericSingleResidueDunbrackLibrary< T, N >, core::pack::dunbrack::RotamericSingleResidueDunbrackLibrary< T, N >, and core::pack::dunbrack::cenrot::SingleResidueCenrotLibrary.

◆ bump_check()

core::PackerEnergy core::pack::rotamers::SingleResidueRotamerLibrary::bump_check ( core::conformation::ResidueCOP  rotamer,
core::Size  resid,
scoring::ScoreFunction const &  sf,
pose::Pose const &  pose,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph 
) const
virtual

Computes the "bump energy" of a rotamer: the bump energy is the sum of rotamer's interactions with 1) the backbone-and-side chains of neighboring residues that are held fixed during this repacking optimization and 2) the backbones of neighboring residues that are changable during this repacking optimization.

Bump check does not include long range energies, though, maybe this should change.

References core::scoring::ScoreFunction::bump_check_backbone(), core::scoring::ScoreFunction::bump_check_full(), core::scoring::EMapVector::dot(), core::pack::task::PackerTask::pack_residue(), core::pose::Pose::residue(), and core::scoring::ScoreFunction::weights().

Referenced by bump_filter().

◆ bump_filter()

void core::pack::rotamers::SingleResidueRotamerLibrary::bump_filter ( RotamerVector rotamers,
core::Size  resid,
scoring::ScoreFunction const &  sf,
pose::Pose const &  pose,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph 
) const
virtual

Filter a RotamerVector by "bump energy" of a rotamer: All rotamers with bump energies over a certain threshold will be discarded Exception: if all rotamers are over the threshold, one rotamer (with the lowest bump energy) will be reserved. The vector "rotamers" will be modified "in-place".

References core::pack::task::PackerTask::bump_check(), bump_check(), core::pack::rotamer_set::DELETE_PREVIOUS_ROTAMER, core::pack::rotamer_set::DELETE_ROTAMER, core::pack::rotamer_set::BumpSelector::iterate_bump_selector(), core::pack::rotamer_set::KEEP_ROTAMER, core::pack::task::PackerTask::max_rotbump_energy(), rot(), and core::pack::rotamers::TR().

◆ compute_proton_chi_samplings()

utility::vector1< utility::vector1< core::Real > > core::pack::rotamers::SingleResidueRotamerLibrary::compute_proton_chi_samplings ( chemical::ResidueType const &  concrete_residue,
pack::task::ResidueLevelTask const &  rlt,
bool  buried 
) const
virtual

◆ current_rotamer()

core::Size core::pack::rotamers::SingleResidueRotamerLibrary::current_rotamer ( RotamerVector rotamers,
core::Size  resid,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue 
) const
virtual

Adds the current rotamer to rotamer vector, if the Rotlib supports it.

This is in this class mainly because of historical behavior of certain rotamer libraries not supporting current rotamers

References core::conformation::Residue::create_rotamer(), core::pack::task::PackerTask::include_current(), core::conformation::Residue::name(), rot(), core::conformation::Residue::seqpos(), and core::pack::rotamers::TR().

◆ emergency_rotamer()

void core::pack::rotamers::SingleResidueRotamerLibrary::emergency_rotamer ( RotamerVector rotamers,
core::Size  resid,
pose::Pose const &  pose,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue 
) const
virtual

Generate an "emergency rotamer" if we don't have any.

This is in this class mainly because of historical behavior of certain rotamer libraries not supporting current rotamers

References core::pose::Pose::conformation(), core::conformation::ResidueFactory::create_residue(), rot(), and core::pack::rotamers::TR().

◆ expand_proton_chis()

utility::vector1< dunbrack::ChiSetOP > core::pack::rotamers::SingleResidueRotamerLibrary::expand_proton_chis ( utility::vector1< utility::vector1< core::Real > > const &  sampling,
chemical::ResidueType const &  concrete_residue,
core::Size  max_rotamers = 5000 
) const
virtual

Given a vector of vectors of dihedrals to sample on proton chis, Will create the ChiSet vector combinitorially on those chi values (Note: The ChiSets are only valid/defined over the proton chis.)

References core::chemical::ResidueType::n_proton_chi(), core::chemical::ResidueTypeBase::name(), core::chemical::ResidueType::nchi(), core::chemical::ResidueType::proton_chi_2_chi(), and core::pack::rotamers::TR().

Referenced by core::pack::rotamers::SingleLigandRotamerLibrary::fill_rotamer_vector().

◆ fill_rotamer_vector()

virtual void core::pack::rotamers::SingleResidueRotamerLibrary::fill_rotamer_vector ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
pack::task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::vector1< utility::vector1< Real > > const &  extra_chi_steps,
bool  buried,
RotamerVector rotamers 
) const
pure virtual

◆ operator=()

SingleResidueRotamerLibrary& core::pack::rotamers::SingleResidueRotamerLibrary::operator= ( SingleResidueRotamerLibrary const &  other)
privatedelete

◆ operator==()

bool core::pack::rotamers::SingleResidueRotamerLibrary::operator== ( SingleResidueRotamerLibrary const &  ) const
virtual

Equality test for equivalence. Two SingleResidueRotamerLibraries test equal if and only if they represent the exact same behavior.

Reimplemented in core::pack::dunbrack::RotamericSingleResidueDunbrackLibrary< T, N >, core::pack::dunbrack::SingleResidueDunbrackLibrary, and core::pack::dunbrack::SemiRotamericSingleResidueDunbrackLibrary< T, N >.

References core::pack::rotamers::TR().

◆ rotamer_energy()

virtual Real core::pack::rotamers::SingleResidueRotamerLibrary::rotamer_energy ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
TorsionEnergy energy 
) const
pure virtual

◆ rotamer_energy_deriv()

virtual void core::pack::rotamers::SingleResidueRotamerLibrary::rotamer_energy_deriv ( conformation::Residue const &  rsd,
pose::Pose const &  pose,
core::id::TorsionID const &  tor_id,
TorsionEnergy tderiv 
) const
pure virtual

◆ virtual_sidechain()

RotamerVector core::pack::rotamers::SingleResidueRotamerLibrary::virtual_sidechain ( RotamerVector const &  rotamers,
core::Size  resid,
pose::Pose const &  pose,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue 
) const

◆ write_to_file()

virtual void core::pack::rotamers::SingleResidueRotamerLibrary::write_to_file ( utility::io::ozstream &  out) const
pure virtual

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