Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
core::pack::rotamer_set::RotamerSet_ Class Reference

Container for a set of rotamers for use in packing. Rotamers are sorted into groups of the same residue type. Offsets into these rotamer groups are maintained by this class, as is information concerning the "original rotamer" – the rotamer present on the input pose before packing began. More...

#include <RotamerSet_.hh>

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

Public Types

typedef conformation::ResidueOP ResidueOP
 
typedef conformation::ResidueCOP ResidueCOP
 
typedef pack::dunbrack::ChiSetOP ChiSetOP
 
typedef
scoring::trie::RotamerTrieBaseOP 
RotamerTrieBaseOP
 
- Public Types inherited from core::conformation::RotamerSetBase
typedef
basic::datacache::BasicDataCache 
BasicDataCache
 
typedef
basic::datacache::BasicDataCacheOP 
BasicDataCacheOP
 

Public Member Functions

 RotamerSet_ ()
 
 ~RotamerSet_ () override
 
void build_rotamers (pose::Pose const &the_pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, bool use_neighbor_context=true) override
 
void build_dependent_rotamers (RotamerSets const &rotamer_sets, pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph) override
 Build rotamers that depend on positions of rotamers built in a previous pass. More...
 
void add_rotamer (conformation::Residue const &rotamer) override
 Append a rotamer to the list; it will not be sorted into the same group as other rotamers of the same group or amino acid unless the last group/amino acid is already the same. Instead it will sit at the end of the list of Rotamers. There are performance implications of using this function instead of add_rotamer_into_existing_group: there are several places in the code which scale quadratically with the number of amino acid groups (but where we assume that this number is small) so if you call this function N times oscilating between ASP and ASN rotamers, you will get O(N^2) performance. If you do not need your rotamers to appear in a particular order, use add_rotamer_into_existing_group instead. More...
 
void add_rotamer_into_existing_group (conformation::Residue const &rotamer) override
 Add a rotamer to the RotamerSet where you will group it with other residues of the same type or barring that, the same group. This will keep the total number of residue type groups down. It will not guarantee (it cannot guarantee) that the newly added rotamer will appear after existing rotamers or at the end of the list of rotamers – if you need that kind of guarantee, use add_rotamer instead. More...
 
Size get_n_residue_types () const override
 Return the number of different residue types; two residue types are considered different if they have a different address. More...
 
Size get_n_residue_groups () const override
 Return the number of different residue groups. Two residue types are considered to be part of the same block of residues if 1. they have the same address or 2. they have the same "name3" and the same neighbor radius. More...
 
Size get_residue_type_begin (Size which_restype) const override
 Return the first rotamer of a particular residue type. More...
 
Size get_residue_group_begin (Size which_resgroup) const override
 Return the first rotamer that belongs to a particular rotamer group. More...
 
Size get_n_rotamers_for_residue_type (Size which_resgroup) const override
 
Size get_n_rotamers_for_residue_group (Size which_resgroup) const override
 
Size get_residue_type_index_for_rotamer (Size which_rotamer) const override
 Rotamers i to i+j of all the same residue type are grouped together. This function returns the index of the residue type in a contiguous block of rotamers. E.g. rotamers 100 to 120 might all be lysine rotamers, and might be the 8th residue type, with the first 7 residue types spanning rotamers 1 to 99. If new lysine rotamers are appended to the end of the rotamer set, they are considered to be in a separate residue type block. Lysine rotamers 200 to 210 might be block 15 while lysine rotamers 100 to 120 are still block 7. More...
 
Size get_residue_group_index_for_rotamer (Size which_rotamer) const override
 Return the index of the rotamer group for a particular rotamer. More...
 
void compute_one_body_energies (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, utility::vector1< core::PackerEnergy > &energies, bool const no_update=false) const override
 Computes the packers "one body energies" for the set of rotamers. More...
 
void compute_one_and_two_body_energies (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, utility::vector1< core::PackerEnergy > &one_body_energies, utility::vector1< utility::vector1< core::PackerEnergy > > &two_body_energies, utility::vector1< core::Size > &packable_neighbors) const override
 Computes the packers one body energies for the set of rotamers as well as two body energies for neighboring positions defined as packable by the task. More...
 
void compute_one_body_energy_maps (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, utility::vector1< scoring::EnergyMap > &energies) const override
 for OPTE More...
 
Size num_rotamers () const override
 
Size id_for_current_rotamer () const override
 Return the index in the RotamerSet for the current rotamer. More...
 
conformation::ResidueCOP rotamer (Size rot_id) const override
 
basic::datacache::BasicDataCache & rotamer_data_cache (Size rot_id) const override
 
conformation::Residue const & rotamer_ref (Size rot_id) const override
 
Rotamers::const_iterator begin () const override
 
Rotamers::const_iterator end () const override
 
conformation::ResidueOP nonconst_rotamer (Size rot_id) override
 mutatable access to a single rotamer in the set. More...
 
void store_trie (Size method_enum_id, conformation::AbstractRotamerTrieOP trie) override
 
conformation::AbstractRotamerTrieCOP get_trie (Size method_enum_id) const override
 
void drop_rotamer (Size rot_id) override
 removes a single rotamer and causes a rotamer index update More...
 
void drop_rotamers (utility::vector1< bool > const &rotamers_to_delete) override
 rotamers_to_delete must be of size nrotmaers – each position in the array that's "true" is removed from the set of rotamers More...
 
void drop_rotamers_by_index (utility::vector1< Size > const &rotamer_indices_to_delete) override
 deletes the rotamers in the list with the given indices. The indices of these rotamers is presumed to be those before any delete operation. e.g. if there are four rotamers, and rotamer_indices_to_delete includes 1 & 3, then the rotamers that will remain are the rotamers originally indexed as 2 and 4, even though their new indices will be 1 & 2. More...
 
void initialize_pose_for_rotset_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 set_extra_samples (task::PackerTask const &task, int num_10A_neighbors, int chi, chemical::ResidueTypeCOP concrete_residue, utility::vector1< Real > &extra_chi_steps) const
 Pushes standard-deviation multiples that should be sampled for this residue – if this residue has more neighbors within 10A than the task-specified cutoff for buriedness, then extra rotamer samples are added to the extra_chi_steps vector, otherwise, the vector is not modified. More...
 
virtual core::PackerEnergy bump_check (ResidueCOP rotamer, 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...
 
void show (std::ostream &out) const override
 
void update_rotamer_offsets () const override
 Lazy update of rotamer indices and offsets and integration of those rotamers in the rotamers_waiting_for_sort_ list. More...
 
- Public Member Functions inherited from core::pack::rotamer_set::RotamerSet
 RotamerSet ()
 
 ~RotamerSet () override
 
void set_resid (Size resid)
 
Size resid () const override
 
- Public Member Functions inherited from core::conformation::RotamerSetBase
 RotamerSetBase ()
 
 ~RotamerSetBase () override
 
BasicDataCachedata ()
 BasicDataCache indexed by enum in core/pack/rotamer_set/RotamerSetCacheableDataType.hh. More...
 
BasicDataCache const & data () const
 BasicDataCache indexed by enum in core/pack/rotamer_set/RotamerSetCacheableDataType.hh. More...
 

Protected Member Functions

virtual void build_rotamers_for_concrete_virt (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, utility::graph::GraphCOP packer_neighbor_graph, bool use_neighbor_context=true)
 Creates a set of rotamers for a particular residue type (the concrete residue type) while relying on the rotamer- building instructions within the PackerTask. Use the residue in the input pose at position resid_ as the existing residue. More...
 
void build_rotamers_for_concrete (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::graph::GraphCOP packer_neighbor_graph, bool use_neighbor_context=true)
 Creates a set of rotamers for a particular residue type (the concrete residue type) while relying on the rotamer- building instructions within the PackerTask. More...
 
void filter_water_rotamers (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, utility::vector1< conformation::ResidueOP > const &new_rotamers, utility::vector1< conformation::ResidueOP > &filtered_rotamers)
 , Filter water rotamers by eliminating rotamers with overlaps and uniformly only keeping a maximum number of rotamers (water_rotamers_cap, def=500) More...
 
void build_dependent_rotamers_for_concrete (RotamerSets const &rotamer_sets, pose::Pose const &pose, scoring::ScoreFunction const &, task::PackerTask const &task, conformation::Residue const &existing_residue, chemical::ResidueTypeCOP concrete_residue, utility::graph::GraphCOP packer_neighbor_graph)
 Build rotamers of a specific type that depend on positions of rotamers built in a previous pass Use an input "existing residue" which may or may not reflect the coordinates of the residue at pose.residue( resid_ );. More...
 
void build_optimize_H_rotamers (pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::graph::GraphCOP packer_neighbor_graph, scoring::ScoreFunction const &scorefxn)
 Creates a sets of rotamers for an "optimize H" repacking. More...
 

Private Member Functions

 RotamerSet_ (RotamerSet_ const &)
 
void build_tp3_water_rotamers (pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::graph::GraphCOP packer_neighbor_graph, scoring::ScoreFunction const &scorefxn)
 logic for building TP3 water rotamers More...
 
void build_filtered_tp3_water_rotamers (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::graph::GraphCOP packer_neighbor_graph)
 
void build_virtualizable_rotatable_water_rotamers (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::graph::GraphCOP packer_neighbor_graph)
 logic for building rotatale water rotamers More...
 
void prepare_for_new_residue_type (core::chemical::ResidueType const &restype)
 declare that a new block of residue types has begun, and that new residues are about to be pushed back. More...
 
void new_residue_type ()
 This function should not be called directly – it ought to be called only from prepare_for_new_residue_type. More...
 
void new_residue_group ()
 This function should not be called directly – it ought to be called only from prepare_for_new_residue_type. More...
 
void push_back_rotamer (conformation::ResidueOP)
 appends a rotamer to the list of rotamers, and increments the count for the number of rotamers for the current value of n_residue_types. More...
 
void push_back_rotamers (Rotamers const &)
 append a vector of rotamers to the list of rotamers, and increments the count for the number of rotamers for the current value of n_residue_types. It is assumed that all of the rotamers in the vector of are the current type and group. More...
 

Private Attributes

BumpSelector bump_selector_
 
Rotamers rotamers_
 
std::list< ResidueOProtamers_waiting_for_sort_
 
Size n_residue_types_
 
Size n_residue_groups_
 
utility::vector1< Sizeresidue_type_rotamers_begin_
 
utility::vector1< Sizeresidue_group_rotamers_begin_
 
utility::vector1< Sizen_rotamers_for_restype_
 
utility::vector1< Sizen_rotamers_for_resgroup_
 
utility::vector1< Sizeresidue_type_for_rotamers_
 
utility::vector1< Sizeresidue_group_for_rotamers_
 
utility::vector1
< conformation::AbstractRotamerTrieOP
cached_tries_
 
Size id_for_current_rotamer_
 
ResidueOP current_rotamer_copy_
 
bool rotamer_offsets_require_update_
 

Detailed Description

Container for a set of rotamers for use in packing. Rotamers are sorted into groups of the same residue type. Offsets into these rotamer groups are maintained by this class, as is information concerning the "original rotamer" – the rotamer present on the input pose before packing began.

Member Typedef Documentation

Constructor & Destructor Documentation

core::pack::rotamer_set::RotamerSet_::RotamerSet_ ( )
core::pack::rotamer_set::RotamerSet_::~RotamerSet_ ( )
overridedefault
core::pack::rotamer_set::RotamerSet_::RotamerSet_ ( RotamerSet_ const &  )
private

Member Function Documentation

void core::pack::rotamer_set::RotamerSet_::add_rotamer ( conformation::Residue const &  rotamer)
overridevirtual

Append a rotamer to the list; it will not be sorted into the same group as other rotamers of the same group or amino acid unless the last group/amino acid is already the same. Instead it will sit at the end of the list of Rotamers. There are performance implications of using this function instead of add_rotamer_into_existing_group: there are several places in the code which scale quadratically with the number of amino acid groups (but where we assume that this number is small) so if you call this function N times oscilating between ASP and ASN rotamers, you will get O(N^2) performance. If you do not need your rotamers to appear in a particular order, use add_rotamer_into_existing_group instead.

Implements core::pack::rotamer_set::RotamerSet.

References core::conformation::Residue::clone(), prepare_for_new_residue_type(), push_back_rotamer(), and core::conformation::Residue::type().

void core::pack::rotamer_set::RotamerSet_::add_rotamer_into_existing_group ( conformation::Residue const &  rotamer)
overridevirtual

Add a rotamer to the RotamerSet where you will group it with other residues of the same type or barring that, the same group. This will keep the total number of residue type groups down. It will not guarantee (it cannot guarantee) that the newly added rotamer will appear after existing rotamers or at the end of the list of rotamers – if you need that kind of guarantee, use add_rotamer instead.

Implements core::pack::rotamer_set::RotamerSet.

References core::conformation::Residue::clone(), rotamer_offsets_require_update_, and rotamers_waiting_for_sort_.

Rotamers::const_iterator core::pack::rotamer_set::RotamerSet_::begin ( ) const
inlineoverridevirtual
void core::pack::rotamer_set::RotamerSet_::build_dependent_rotamers ( RotamerSets const &  rotamer_sets,
pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph 
)
overridevirtual
void core::pack::rotamer_set::RotamerSet_::build_dependent_rotamers_for_concrete ( RotamerSets const &  rotamer_sets,
pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
conformation::Residue const &  existing_residue,
chemical::ResidueTypeCOP  concrete_residue,
utility::graph::GraphCOP  packer_neighbor_graph 
)
protected

Build rotamers of a specific type that depend on positions of rotamers built in a previous pass Use an input "existing residue" which may or may not reflect the coordinates of the residue at pose.residue( resid_ );.

References core::pack::rotamer_set::build_dependent_water_rotamers(), core::conformation::Residue::chain(), filter_water_rotamers(), prepare_for_new_residue_type(), push_back_rotamer(), and core::pack::rotamer_set::RotamerSet::resid().

Referenced by build_dependent_rotamers().

void core::pack::rotamer_set::RotamerSet_::build_filtered_tp3_water_rotamers ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::graph::GraphCOP  packer_neighbor_graph 
)
private
void core::pack::rotamer_set::RotamerSet_::build_optimize_H_rotamers ( pose::Pose const &  pose,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::graph::GraphCOP  packer_neighbor_graph,
scoring::ScoreFunction const &  scorefxn 
)
protected
void core::pack::rotamer_set::RotamerSet_::build_rotamers ( pose::Pose const &  the_pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
bool  use_neighbor_context = true 
)
overridevirtual
void core::pack::rotamer_set::RotamerSet_::build_rotamers_for_concrete ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::graph::GraphCOP  packer_neighbor_graph,
bool  use_neighbor_context = true 
)
protected

Creates a set of rotamers for a particular residue type (the concrete residue type) while relying on the rotamer- building instructions within the PackerTask.

References core::chemical::aa_ala, core::chemical::aa_gly, core::pack::rotamer_set::build_dna_rotamers(), build_filtered_tp3_water_rotamers(), build_optimize_H_rotamers(), core::pack::rotamer_set::build_rna_rotamers(), core::pack::rotamer_set::build_rotamers_from_rotamer_bins(), build_tp3_water_rotamers(), build_virtualizable_rotatable_water_rotamers(), core::conformation::Residue::chain(), core::conformation::Residue::clone(), core::pose::Pose::conformation(), core::conformation::ResidueFactory::create_residue(), core::conformation::Residue::create_rotamer(), core::pose::Pose::energies(), core::pack::task::ResidueLevelTask::extrachi_cutoff(), id_for_current_rotamer_, core::pack::task::PackerTask::include_current(), core::chemical::ResidueType::is_mirrored_type(), core::conformation::Residue::name(), core::conformation::Residue::nbr_atom_xyz(), num_rotamers(), core::pack::task::ResidueLevelTask::optimize_h(), prepare_for_new_residue_type(), push_back_rotamer(), push_back_rotamers(), core::pack::rotamer_set::RotamerSet::resid(), core::pack::task::PackerTask::residue_task(), rot(), core::chemical::SC_BRANCH_POINT, core::conformation::Residue::seqpos(), set_extra_samples(), core::scoring::Energies::tenA_neighbor_graph(), core::pack::rotamer_set::tt(), and core::conformation::Residue::type().

Referenced by protocols::flexpack::rotamer_set::FlexbbRotamerSet::build_rotamers_for_concrete_virt(), and build_rotamers_for_concrete_virt().

void core::pack::rotamer_set::RotamerSet_::build_rotamers_for_concrete_virt ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
utility::graph::GraphCOP  packer_neighbor_graph,
bool  use_neighbor_context = true 
)
protectedvirtual

Creates a set of rotamers for a particular residue type (the concrete residue type) while relying on the rotamer- building instructions within the PackerTask. Use the residue in the input pose at position resid_ as the existing residue.

This will check for rotamer/background collisions if the PackerTask's bump_check boolean is true – it uses the bump_check_{sidechain/full} methods defined by the energy methods contained in the scorefxn object

Reimplemented in protocols::flexpack::rotamer_set::FlexbbRotamerSet.

References build_rotamers_for_concrete(), core::pack::rotamer_set::RotamerSet::resid(), and core::pose::Pose::residue().

Referenced by build_rotamers().

void core::pack::rotamer_set::RotamerSet_::build_tp3_water_rotamers ( pose::Pose const &  pose,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::graph::GraphCOP  packer_neighbor_graph,
scoring::ScoreFunction const &  scorefxn 
)
private
void core::pack::rotamer_set::RotamerSet_::build_virtualizable_rotatable_water_rotamers ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
chemical::ResidueTypeCOP  concrete_residue,
conformation::Residue const &  existing_residue,
utility::graph::GraphCOP  packer_neighbor_graph 
)
private
core::PackerEnergy core::pack::rotamer_set::RotamerSet_::bump_check ( ResidueCOP  rotamer,
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.

Reimplemented in protocols::flexpack::rotamer_set::FlexbbRotamerSet.

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

Referenced by filter_water_rotamers().

void core::pack::rotamer_set::RotamerSet_::compute_one_and_two_body_energies ( pose::Pose const &  pose,
scoring::ScoreFunction const &  sf,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
utility::vector1< core::PackerEnergy > &  one_body_energies,
utility::vector1< utility::vector1< core::PackerEnergy > > &  two_body_energies,
utility::vector1< core::Size > &  packable_neighbors 
) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::compute_one_body_energies ( pose::Pose const &  pose,
scoring::ScoreFunction const &  sf,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
utility::vector1< core::PackerEnergy > &  energies,
bool const  no_update = false 
) const
overridevirtual

Computes the packers "one body energies" for the set of rotamers.

Note
If no_update is true, we skip the lazy update of rotamers (which is potentially not threadsafe).

The packer's 1-body is a combination of the rotamer internal energies (the context dependent and independent one body energies), the intra-residue energies defined by the two body energies, and the sum of the two body energies with the background residues in this repacking. The PackerTask tells the RotamerSet_ what residues are part of the background and which are being repacked.

Implements core::pack::rotamer_set::RotamerSet.

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

References core::scoring::EMapVector::dot(), core::pose::Pose::energies(), core::scoring::ScoreFunction::eval_cd_1b(), core::scoring::ScoreFunction::eval_ci_1b(), core::scoring::ScoreFunction::evaluate_rotamer_background_energies(), core::scoring::ScoreFunction::evaluate_rotamer_intrares_energies(), core::scoring::Energies::long_range_container(), core::scoring::ScoreFunction::long_range_energies_begin(), core::scoring::ScoreFunction::long_range_energies_end(), core::conformation::Residue::name(), num_rotamers(), core::pack::task::PackerTask::pack_residue(), core::pack::rotamer_set::RotamerSet::resid(), core::pose::Pose::residue(), rotamers_, update_rotamer_offsets(), and core::scoring::ScoreFunction::weights().

Referenced by core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::compute_one_body_energies().

void core::pack::rotamer_set::RotamerSet_::compute_one_body_energy_maps ( pose::Pose const &  pose,
scoring::ScoreFunction const &  sf,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
utility::vector1< scoring::EnergyMap > &  energies 
) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::drop_rotamer ( Size  rot_id)
overridevirtual

removes a single rotamer and causes a rotamer index update

O(n) operation; if you have a lot of rotamers you want to remove, use drop_rotamers() instead.

Implements core::pack::rotamer_set::RotamerSet.

References id_for_current_rotamer_, rotamer_offsets_require_update_, rotamers_, and update_rotamer_offsets().

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

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

Implements core::pack::rotamer_set::RotamerSet.

References current_rotamer_copy_, id_for_current_rotamer_, rotamer_offsets_require_update_, rotamers_, and update_rotamer_offsets().

Referenced by drop_rotamers_by_index().

void core::pack::rotamer_set::RotamerSet_::drop_rotamers_by_index ( utility::vector1< Size > const &  rotamer_indices_to_delete)
overridevirtual

deletes the rotamers in the list with the given indices. The indices of these rotamers is presumed to be those before any delete operation. e.g. if there are four rotamers, and rotamer_indices_to_delete includes 1 & 3, then the rotamers that will remain are the rotamers originally indexed as 2 and 4, even though their new indices will be 1 & 2.

Implements core::pack::rotamer_set::RotamerSet.

References drop_rotamers(), and rotamers_.

Rotamers::const_iterator core::pack::rotamer_set::RotamerSet_::end ( ) const
inlineoverridevirtual
void core::pack::rotamer_set::RotamerSet_::filter_water_rotamers ( pose::Pose const &  pose,
scoring::ScoreFunction const &  scorefxn,
task::PackerTask const &  task,
utility::graph::GraphCOP  packer_neighbor_graph,
utility::vector1< conformation::ResidueOP > const &  new_rotamers,
utility::vector1< conformation::ResidueOP > &  filtered_rotamers 
)
protected
Size core::pack::rotamer_set::RotamerSet_::get_n_residue_groups ( ) const
overridevirtual

Return the number of different residue groups. Two residue types are considered to be part of the same block of residues if 1. they have the same address or 2. they have the same "name3" and the same neighbor radius.

Implements core::pack::rotamer_set::RotamerSet.

References n_residue_groups_, and update_rotamer_offsets().

Referenced by show().

Size core::pack::rotamer_set::RotamerSet_::get_n_residue_types ( ) const
overridevirtual

Return the number of different residue types; two residue types are considered different if they have a different address.

Implements core::pack::rotamer_set::RotamerSet.

References n_residue_types_, and update_rotamer_offsets().

Referenced by show().

Size core::pack::rotamer_set::RotamerSet_::get_n_rotamers_for_residue_group ( Size  which_resgroup) const
overridevirtual
Size core::pack::rotamer_set::RotamerSet_::get_n_rotamers_for_residue_type ( Size  which_resgroup) const
overridevirtual
Size core::pack::rotamer_set::RotamerSet_::get_residue_group_begin ( Size  which_resgroup) const
overridevirtual

Return the first rotamer that belongs to a particular rotamer group.

Implements core::pack::rotamer_set::RotamerSet.

References n_residue_groups_, residue_group_rotamers_begin_, and update_rotamer_offsets().

Size core::pack::rotamer_set::RotamerSet_::get_residue_group_index_for_rotamer ( Size  which_rotamer) const
overridevirtual

Return the index of the rotamer group for a particular rotamer.

Implements core::pack::rotamer_set::RotamerSet.

References residue_group_for_rotamers_, and update_rotamer_offsets().

Size core::pack::rotamer_set::RotamerSet_::get_residue_type_begin ( Size  which_restype) const
overridevirtual

Return the first rotamer of a particular residue type.

Implements core::pack::rotamer_set::RotamerSet.

References n_residue_types_, residue_type_rotamers_begin_, and update_rotamer_offsets().

Size core::pack::rotamer_set::RotamerSet_::get_residue_type_index_for_rotamer ( Size  which_rotamer) const
overridevirtual

Rotamers i to i+j of all the same residue type are grouped together. This function returns the index of the residue type in a contiguous block of rotamers. E.g. rotamers 100 to 120 might all be lysine rotamers, and might be the 8th residue type, with the first 7 residue types spanning rotamers 1 to 99. If new lysine rotamers are appended to the end of the rotamer set, they are considered to be in a separate residue type block. Lysine rotamers 200 to 210 might be block 15 while lysine rotamers 100 to 120 are still block 7.

Implements core::pack::rotamer_set::RotamerSet.

References residue_type_for_rotamers_, and update_rotamer_offsets().

conformation::AbstractRotamerTrieCOP core::pack::rotamer_set::RotamerSet_::get_trie ( Size  method_enum_id) const
overridevirtual
Size core::pack::rotamer_set::RotamerSet_::id_for_current_rotamer ( ) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::initialize_pose_for_rotset_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::rotamer_set::RotamerSet.

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

void core::pack::rotamer_set::RotamerSet_::new_residue_group ( )
private

This function should not be called directly – it ought to be called only from prepare_for_new_residue_type.

References n_residue_groups_, n_rotamers_for_resgroup_, num_rotamers(), and residue_group_rotamers_begin_.

Referenced by prepare_for_new_residue_type().

void core::pack::rotamer_set::RotamerSet_::new_residue_type ( )
private

This function should not be called directly – it ought to be called only from prepare_for_new_residue_type.

References n_residue_types_, n_rotamers_for_restype_, num_rotamers(), and residue_type_rotamers_begin_.

Referenced by prepare_for_new_residue_type().

conformation::ResidueOP core::pack::rotamer_set::RotamerSet_::nonconst_rotamer ( Size  rot_id)
overridevirtual

mutatable access to a single rotamer in the set.

Implements core::pack::rotamer_set::RotamerSet.

References rotamers_, and update_rotamer_offsets().

Size core::pack::rotamer_set::RotamerSet_::num_rotamers ( ) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::prepare_for_new_residue_type ( core::chemical::ResidueType const &  restype)
private
void core::pack::rotamer_set::RotamerSet_::push_back_rotamer ( conformation::ResidueOP  rotamer)
private
void core::pack::rotamer_set::RotamerSet_::push_back_rotamers ( Rotamers const &  new_rotamers)
private

append a vector of rotamers to the list of rotamers, and increments the count for the number of rotamers for the current value of n_residue_types. It is assumed that all of the rotamers in the vector of are the current type and group.

References n_residue_groups_, n_residue_types_, n_rotamers_for_resgroup_, n_rotamers_for_restype_, residue_group_for_rotamers_, residue_type_for_rotamers_, and rotamers_.

Referenced by build_rotamers_for_concrete().

conformation::ResidueCOP core::pack::rotamer_set::RotamerSet_::rotamer ( Size  rot_id) const
overridevirtual
basic::datacache::BasicDataCache & core::pack::rotamer_set::RotamerSet_::rotamer_data_cache ( Size  rot_id) const
overridevirtual
conformation::Residue const & core::pack::rotamer_set::RotamerSet_::rotamer_ref ( Size  rot_id) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::set_extra_samples ( task::PackerTask const &  task,
int  num_10A_neighbors,
int  chi,
chemical::ResidueTypeCOP  concrete_residue,
utility::vector1< Real > &  extra_chi_steps 
) const
void core::pack::rotamer_set::RotamerSet_::show ( std::ostream &  out) const
overridevirtual
void core::pack::rotamer_set::RotamerSet_::store_trie ( Size  method_enum_id,
conformation::AbstractRotamerTrieOP  trie 
)
overridevirtual
void core::pack::rotamer_set::RotamerSet_::update_rotamer_offsets ( ) const
overridevirtual

Member Data Documentation

BumpSelector core::pack::rotamer_set::RotamerSet_::bump_selector_
private
utility::vector1< conformation::AbstractRotamerTrieOP > core::pack::rotamer_set::RotamerSet_::cached_tries_
private

Referenced by get_trie(), and store_trie().

ResidueOP core::pack::rotamer_set::RotamerSet_::current_rotamer_copy_
private

Referenced by drop_rotamers().

Size core::pack::rotamer_set::RotamerSet_::id_for_current_rotamer_
mutableprivate
Size core::pack::rotamer_set::RotamerSet_::n_residue_groups_
mutableprivate
Size core::pack::rotamer_set::RotamerSet_::n_residue_types_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::n_rotamers_for_resgroup_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::n_rotamers_for_restype_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::residue_group_for_rotamers_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::residue_group_rotamers_begin_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::residue_type_for_rotamers_
mutableprivate
utility::vector1< Size > core::pack::rotamer_set::RotamerSet_::residue_type_rotamers_begin_
mutableprivate
bool core::pack::rotamer_set::RotamerSet_::rotamer_offsets_require_update_
mutableprivate
Rotamers core::pack::rotamer_set::RotamerSet_::rotamers_
mutableprivate
std::list< ResidueOP > core::pack::rotamer_set::RotamerSet_::rotamers_waiting_for_sort_
mutableprivate

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