Rosetta
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::pack::rotamer_set::RotamerSets Class Reference

#include <RotamerSets.hh>

Inheritance diagram for core::pack::rotamer_set::RotamerSets:
Inheritance graph
[legend]

Public Types

typedef task::PackerTaskCOP PackerTaskCOP
 
- Public Types inherited from core::pack::rotamer_set::FixbbRotamerSets
typedef pack_basic::RotamerSetsBase parent
 
typedef utility::vector1< RotamerSetOPRotamerSetVector
 

Public Member Functions

 RotamerSets ()
 
 ~RotamerSets () override
 
void set_task (task::PackerTaskCOP task)
 
void build_rotamers (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph)
 
void set_explicit_rotamers (core::Size moltenresid, RotamerSetOP rotamers)
 
void dump_pdb (pose::Pose const &pose, std::string const &filename) const
 
uint nrotamers () const override
 
uint nrotamers_for_moltenres (uint) const override
 
uint nmoltenres () const override
 
uint total_residue () const override
 
uint moltenres_2_resid (uint) const override
 
uint resid_2_moltenres (uint) const override
 
uint moltenres_for_rotamer (uint) const override
 
uint res_for_rotamer (uint) const override
 
core::conformation::ResidueCOP rotamer (uint) const override
 
core::conformation::ResidueCOP rotamer_for_moltenres (uint moltenres_id, uint rotamerid) const override
 
uint nrotamer_offset_for_moltenres (uint) const override
 
void drop_rotamers (utility::vector1< bool > const &rotamers_to_delete)
 rotamers_to_delete must be of size nrotmaers – each position in the array that's "true" is removed from the set of rotamers More...
 
bool has_rotamer_set_for_residue (uint const resid) const
 Does this RotamerSets object store a rotamer set for a residue at position resid in the pose? More...
 
RotamerSetCOP rotamer_set_for_residue (uint resid) const override
 
RotamerSetOP rotamer_set_for_residue (uint resid) override
 
RotamerSetCOP rotamer_set_for_moltenresidue (uint moltenresid) const override
 
RotamerSetOP rotamer_set_for_moltenresidue (uint moltenresid) override
 
RotamerSetVector::const_iterator begin () override
 
RotamerSetVector::const_iterator end () override
 
uint rotid_on_moltenresidue (uint rotid) const override
 convert rotid in full rotamer enumeration into rotamer id on its source residue More...
 
uint moltenres_rotid_2_rotid (uint moltenres, uint moltenresrotid) const override
 convert moltenres rotid to id in full rotamer enumeration More...
 
PackerTaskCOP task () const
 access to packer_task_ More...
 
void prepare_sets_for_packing (pose::Pose const &pose, scoring::ScoreFunction const &)
 
void initialize_pose_for_rotsets_creation (pose::Pose &) const override
 Give the pose a chance to stash any data needed by the rotset need nonconst access to pose. More...
 
void update_offset_data ()
 
bool offset_data_up_to_date ()
 Used as a debug assert to ensure that RotamerSetsOperations call update_offset_data() More...
 
virtual utility::vector1< basic::thread_manager::RosettaThreadFunction > construct_one_body_energy_work_vector (core::pose::Pose const &pose, core::scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph, interaction_graph::InteractionGraphBaseOP ig, basic::thread_manager::RosettaThreadAssignmentInfo const &thread_assignment_info) const
 Construct a vector of calculations for the one-body energies in the interaction graph, for subsequent multi-threaded evaluation. More...
 
virtual void append_two_body_energy_computations_to_work_vector (core::pose::Pose const &pose, core::scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph, interaction_graph::PrecomputedPairEnergiesInteractionGraphOP pig, utility::vector1< basic::thread_manager::RosettaThreadFunction > &work_vector, basic::thread_manager::RosettaThreadAssignmentInfo const &thread_assignment_info) const
 Append to a vector of calculations that already contains one-body energy calculations additonal work units for two-body energy calculations, for subsequent multi-threaded evaluation. More...
 
virtual void compute_energies (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph, interaction_graph::InteractionGraphBaseOP ig, core::Size const threads_to_request)
 Precompute all rotamer pair and rotamer one-body energies, populating the given interaction graph. More...
 
utility::vector1< uint > const & resid_2_moltenres_vector () const override
 
utility::vector1< uint > const & moltenres_2_resid_vector () const override
 
void show (std::ostream &out) const override
 
- Public Member Functions inherited from core::pack::rotamer_set::FixbbRotamerSets
 FixbbRotamerSets ()
 
 ~FixbbRotamerSets () override
 
- Public Member Functions inherited from core::pack_basic::RotamerSetsBase
 RotamerSetsBase ()
 
 ~RotamerSetsBase () override
 

Static Public Member Functions

static core::PackerEnergy get_bb_bbE (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, conformation::Residue const &res1, conformation::Residue const &res2)
 
static core::PackerEnergy get_sc_bbE (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, conformation::Residue const &res1, conformation::Residue const &res2)
 

Private Member Functions

void copy_residue_conenctions_and_variants (pose::Pose const &pose, conformation::ResidueOP cloneRes, Size seqpos, Size asym_length)
 
void prepare_otf_graph (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph, interaction_graph::OnTheFlyInteractionGraphOP otfig)
 Marks all protein vertices in the on-the-fly interaction graph as ones that should distinguish between the backbones and sidechains. Then, adds edges to the on-the-fly interaction graph between neighboring RotamerSets, and figures out, for those edges, which pairs of rotamer groups (e.g. ala1/arg2, ser1/phe2) are close enough to interact for their energies to need calculation. More...
 
void compute_proline_correction_energies_for_otf_graph (pose::Pose const &pose, scoring::ScoreFunction const &scfxn, utility::graph::GraphCOP packer_neighbor_graph, interaction_graph::OnTheFlyInteractionGraphOP otfig)
 computes one body energies for the on-the-fly graph, calculating proline-correction terms for protien-residues that allow prolines and storing them on the otf edges More...
 

Private Attributes

uint nmoltenres_ = 0
 
uint total_residue_ = 0
 
uint nrotamers_ = 0
 
RotamerSetVector set_of_rotamer_sets_
 
utility::vector1< uintresid_2_moltenres_
 
utility::vector1< uintmoltenres_2_resid_
 
utility::vector1< uintnrotamer_offsets_
 
utility::vector1< uintmoltenres_for_rotamer_
 
utility::vector1< uintnrotamers_for_moltenres_
 
PackerTaskCOP task_
 

Member Typedef Documentation

◆ PackerTaskCOP

Constructor & Destructor Documentation

◆ RotamerSets()

core::pack::rotamer_set::RotamerSets::RotamerSets ( )
default

◆ ~RotamerSets()

core::pack::rotamer_set::RotamerSets::~RotamerSets ( )
overridedefault

Member Function Documentation

◆ append_two_body_energy_computations_to_work_vector()

void core::pack::rotamer_set::RotamerSets::append_two_body_energy_computations_to_work_vector ( core::pose::Pose const &  pose,
core::scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph,
interaction_graph::PrecomputedPairEnergiesInteractionGraphOP  pig,
utility::vector1< basic::thread_manager::RosettaThreadFunction > &  work_vector,
basic::thread_manager::RosettaThreadAssignmentInfo const &  thread_assignment_info 
) const
virtual

Append to a vector of calculations that already contains one-body energy calculations additonal work units for two-body energy calculations, for subsequent multi-threaded evaluation.

Each individual calculation is for the interaction of all possible rotamer pairs at two positions. Again, not as granular as conceivably possible, but easier to set up.

Note
The work_vector vector is extended by this operation.
Author
Vikram K. Mulligan (vmull.nosp@m.igan.nosp@m.@flat.nosp@m.iron.nosp@m.insti.nosp@m.tue..nosp@m.org).

Reimplemented in core::pack::rotamer_set::symmetry::SymmetricRotamerSets.

References core::pose::Pose::energies(), core::scoring::Energies::long_range_container(), core::scoring::ScoreFunction::long_range_energies_begin(), core::scoring::ScoreFunction::long_range_energies_end(), and TR().

◆ begin()

RotamerSetVector::const_iterator core::pack::rotamer_set::RotamerSets::begin ( )
inlineoverridevirtual

◆ build_rotamers()

void core::pack::rotamer_set::RotamerSets::build_rotamers ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph 
)

◆ compute_energies()

void core::pack::rotamer_set::RotamerSets::compute_energies ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph,
interaction_graph::InteractionGraphBaseOP  ig,
core::Size const  threads_to_request 
)
virtual

Precompute all rotamer pair and rotamer one-body energies, populating the given interaction graph.

Note
In the multithreaded case, this function requests that work be done in threads. It takes as input the number of threads to request.

Reimplemented in core::pack::rotamer_set::symmetry::SymmetricRotamerSets.

References core::id::to_string(), and TR().

Referenced by core::pack::interaction_graph::InteractionGraphFactory::create_and_initialize_two_body_interaction_graph().

◆ compute_proline_correction_energies_for_otf_graph()

void core::pack::rotamer_set::RotamerSets::compute_proline_correction_energies_for_otf_graph ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph,
interaction_graph::OnTheFlyInteractionGraphOP  otfig 
)
private

computes one body energies for the on-the-fly graph, calculating proline-correction terms for protien-residues that allow prolines and storing them on the otf edges

0. Find example proline and glycine residues where possible.

  1. Iterate across all edges in the graph
    1. Calculate proline-correction terms between neighbors

References core::chemical::aa_gly, and core::chemical::aa_pro.

◆ construct_one_body_energy_work_vector()

utility::vector1< basic::thread_manager::RosettaThreadFunction > core::pack::rotamer_set::RotamerSets::construct_one_body_energy_work_vector ( core::pose::Pose const &  pose,
core::scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph,
interaction_graph::InteractionGraphBaseOP  ig,
basic::thread_manager::RosettaThreadAssignmentInfo const &  thread_assignment_info 
) const
virtual

Construct a vector of calculations for the one-body energies in the interaction graph, for subsequent multi-threaded evaluation.

Each individual calculation is for all one-body energies at a packable position. This isn't as granular as possible, but more finely-grained parallelism would be harder to implement (and anyways the one-body energies are much less expensive than the two-body energies).

Author
Vikram K. Mulligan (vmull.nosp@m.igan.nosp@m.@flat.nosp@m.iron.nosp@m.insti.nosp@m.tue..nosp@m.org).

References TR().

◆ copy_residue_conenctions_and_variants()

void core::pack::rotamer_set::RotamerSets::copy_residue_conenctions_and_variants ( pose::Pose const &  pose,
conformation::ResidueOP  cloneRes,
Size  seqpos,
Size  asym_length 
)
private

◆ drop_rotamers()

void core::pack::rotamer_set::RotamerSets::drop_rotamers ( utility::vector1< bool > const &  rotamers_to_delete)

rotamers_to_delete must be of size nrotmaers – each position in the array that's "true" is removed from the set of rotamers

Referenced by core::pack::rotamer_set::PyRotamerEliminator::alter_rotamer_sets().

◆ dump_pdb()

void core::pack::rotamer_set::RotamerSets::dump_pdb ( pose::Pose const &  pose,
std::string const &  filename 
) const

◆ end()

RotamerSetVector::const_iterator core::pack::rotamer_set::RotamerSets::end ( )
inlineoverridevirtual

◆ get_bb_bbE()

core::PackerEnergy core::pack::rotamer_set::RotamerSets::get_bb_bbE ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
conformation::Residue const &  res1,
conformation::Residue const &  res2 
)
static

◆ get_sc_bbE()

core::PackerEnergy core::pack::rotamer_set::RotamerSets::get_sc_bbE ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
conformation::Residue const &  res1,
conformation::Residue const &  res2 
)
static

◆ has_rotamer_set_for_residue()

bool core::pack::rotamer_set::RotamerSets::has_rotamer_set_for_residue ( uint const  resid) const

◆ initialize_pose_for_rotsets_creation()

void core::pack::rotamer_set::RotamerSets::initialize_pose_for_rotsets_creation ( pose::Pose ) const
inlineoverridevirtual

Give the pose a chance to stash any data needed by the rotset need nonconst access to pose.

Implements core::pack_basic::RotamerSetsBase.

Reimplemented in core::pack::rotamer_set::symmetry::SymmetricRotamerSets.

◆ moltenres_2_resid()

uint core::pack::rotamer_set::RotamerSets::moltenres_2_resid ( uint  mresid) const
overridevirtual

◆ moltenres_2_resid_vector()

utility::vector1< uint > const& core::pack::rotamer_set::RotamerSets::moltenres_2_resid_vector ( ) const
inlineoverridevirtual

◆ moltenres_for_rotamer()

uint core::pack::rotamer_set::RotamerSets::moltenres_for_rotamer ( uint  rotid) const
overridevirtual

◆ moltenres_rotid_2_rotid()

uint core::pack::rotamer_set::RotamerSets::moltenres_rotid_2_rotid ( uint  moltenres,
uint  moltenresrotid 
) const
overridevirtual

convert moltenres rotid to id in full rotamer enumeration

Implements core::pack_basic::RotamerSetsBase.

◆ nmoltenres()

uint core::pack::rotamer_set::RotamerSets::nmoltenres ( ) const
overridevirtual

◆ nrotamer_offset_for_moltenres()

uint core::pack::rotamer_set::RotamerSets::nrotamer_offset_for_moltenres ( uint  mresid) const
overridevirtual

◆ nrotamers()

uint core::pack::rotamer_set::RotamerSets::nrotamers ( ) const
overridevirtual

◆ nrotamers_for_moltenres()

uint core::pack::rotamer_set::RotamerSets::nrotamers_for_moltenres ( uint  mresid) const
overridevirtual

◆ offset_data_up_to_date()

bool core::pack::rotamer_set::RotamerSets::offset_data_up_to_date ( )

Used as a debug assert to ensure that RotamerSetsOperations call update_offset_data()

Without this check, rotamer sets operations could potentially introduce very-hard-to-debug glitches if they don't call update_offset_data().

◆ prepare_otf_graph()

void core::pack::rotamer_set::RotamerSets::prepare_otf_graph ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scfxn,
utility::graph::GraphCOP  packer_neighbor_graph,
interaction_graph::OnTheFlyInteractionGraphOP  otfig 
)
private

Marks all protein vertices in the on-the-fly interaction graph as ones that should distinguish between the backbones and sidechains. Then, adds edges to the on-the-fly interaction graph between neighboring RotamerSets, and figures out, for those edges, which pairs of rotamer groups (e.g. ala1/arg2, ser1/phe2) are close enough to interact for their energies to need calculation.

References core::scoring::ScoreFunction::any_lr_residue_pair_energy(), core::pose::Pose::energies(), core::scoring::Energies::long_range_container(), core::scoring::ScoreFunction::long_range_energies_begin(), core::scoring::ScoreFunction::long_range_energies_end(), core::scoring::ScoreFunction::max_atomic_interaction_cutoff(), core::conformation::Residue::nbr_atom(), core::conformation::Residue::nbr_radius(), core::chemical::num_canonical_aas, and core::conformation::Residue::xyz().

◆ prepare_sets_for_packing()

void core::pack::rotamer_set::RotamerSets::prepare_sets_for_packing ( pose::Pose const &  pose,
scoring::ScoreFunction const &  sfxn 
)

◆ res_for_rotamer()

uint core::pack::rotamer_set::RotamerSets::res_for_rotamer ( uint  rotid) const
overridevirtual

◆ resid_2_moltenres()

uint core::pack::rotamer_set::RotamerSets::resid_2_moltenres ( uint  resid) const
overridevirtual

◆ resid_2_moltenres_vector()

utility::vector1< uint > const& core::pack::rotamer_set::RotamerSets::resid_2_moltenres_vector ( ) const
inlineoverridevirtual

◆ rotamer()

core::conformation::ResidueCOP core::pack::rotamer_set::RotamerSets::rotamer ( uint  rotid) const
overridevirtual

◆ rotamer_for_moltenres()

core::conformation::ResidueCOP core::pack::rotamer_set::RotamerSets::rotamer_for_moltenres ( uint  moltenres_id,
uint  rotamerid 
) const
overridevirtual

◆ rotamer_set_for_moltenresidue() [1/2]

RotamerSetCOP core::pack::rotamer_set::RotamerSets::rotamer_set_for_moltenresidue ( uint  moltenresid) const
overridevirtual

◆ rotamer_set_for_moltenresidue() [2/2]

RotamerSetOP core::pack::rotamer_set::RotamerSets::rotamer_set_for_moltenresidue ( uint  moltenresid)
overridevirtual

◆ rotamer_set_for_residue() [1/2]

RotamerSetCOP core::pack::rotamer_set::RotamerSets::rotamer_set_for_residue ( uint  resid) const
overridevirtual

◆ rotamer_set_for_residue() [2/2]

RotamerSetOP core::pack::rotamer_set::RotamerSets::rotamer_set_for_residue ( uint  resid)
overridevirtual

◆ rotid_on_moltenresidue()

uint core::pack::rotamer_set::RotamerSets::rotid_on_moltenresidue ( uint  rotid) const
overridevirtual

convert rotid in full rotamer enumeration into rotamer id on its source residue

Implements core::pack_basic::RotamerSetsBase.

Referenced by core::pack::hbonds::init_node_info().

◆ set_explicit_rotamers()

void core::pack::rotamer_set::RotamerSets::set_explicit_rotamers ( core::Size  moltenresid,
RotamerSetOP  rotamers 
)

◆ set_task()

void core::pack::rotamer_set::RotamerSets::set_task ( task::PackerTaskCOP  task)

◆ show()

void core::pack::rotamer_set::RotamerSets::show ( std::ostream &  out) const
overridevirtual

◆ task()

task::PackerTaskCOP core::pack::rotamer_set::RotamerSets::task ( ) const

◆ total_residue()

uint core::pack::rotamer_set::RotamerSets::total_residue ( ) const
overridevirtual

◆ update_offset_data()

void core::pack::rotamer_set::RotamerSets::update_offset_data ( )

Member Data Documentation

◆ moltenres_2_resid_

utility::vector1< uint > core::pack::rotamer_set::RotamerSets::moltenres_2_resid_
private

◆ moltenres_for_rotamer_

utility::vector1< uint > core::pack::rotamer_set::RotamerSets::moltenres_for_rotamer_
private

◆ nmoltenres_

uint core::pack::rotamer_set::RotamerSets::nmoltenres_ = 0
private

◆ nrotamer_offsets_

utility::vector1< uint > core::pack::rotamer_set::RotamerSets::nrotamer_offsets_
private

◆ nrotamers_

uint core::pack::rotamer_set::RotamerSets::nrotamers_ = 0
private

◆ nrotamers_for_moltenres_

utility::vector1< uint > core::pack::rotamer_set::RotamerSets::nrotamers_for_moltenres_
private

◆ resid_2_moltenres_

utility::vector1< uint > core::pack::rotamer_set::RotamerSets::resid_2_moltenres_
private

◆ set_of_rotamer_sets_

RotamerSetVector core::pack::rotamer_set::RotamerSets::set_of_rotamer_sets_
private

Referenced by begin(), and end().

◆ task_

PackerTaskCOP core::pack::rotamer_set::RotamerSets::task_
private

◆ total_residue_

uint core::pack::rotamer_set::RotamerSets::total_residue_ = 0
private

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