Rosetta
|
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>
Public Types | |
typedef conformation::ResidueOP | ResidueOP |
typedef conformation::ResidueCOP | ResidueCOP |
typedef pack::dunbrack::ChiSetOP | ChiSetOP |
typedef scoring::trie::RotamerTrieBaseOP | RotamerTrieBaseOP |
![]() | |
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... | |
![]() | |
RotamerSet () | |
~RotamerSet () override | |
void | set_resid (Size resid) |
Size | resid () const override |
![]() | |
RotamerSetBase () | |
~RotamerSetBase () override | |
BasicDataCache & | data () |
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< ResidueOP > | rotamers_waiting_for_sort_ |
Size | n_residue_types_ |
Size | n_residue_groups_ |
utility::vector1< Size > | residue_type_rotamers_begin_ |
utility::vector1< Size > | residue_group_rotamers_begin_ |
utility::vector1< Size > | n_rotamers_for_restype_ |
utility::vector1< Size > | n_rotamers_for_resgroup_ |
utility::vector1< Size > | residue_type_for_rotamers_ |
utility::vector1< Size > | residue_group_for_rotamers_ |
utility::vector1< conformation::AbstractRotamerTrieOP > | cached_tries_ |
Size | id_for_current_rotamer_ |
ResidueOP | current_rotamer_copy_ |
bool | rotamer_offsets_require_update_ |
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.
core::pack::rotamer_set::RotamerSet_::RotamerSet_ | ( | ) |
|
overridedefault |
|
private |
|
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 prepare_for_new_residue_type(), push_back_rotamer(), and 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 rotamer(), rotamer_offsets_require_update_, and rotamers_waiting_for_sort_.
|
inlineoverridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_.
|
overridevirtual |
Build rotamers that depend on positions of rotamers built in a previous pass.
Implements core::pack::rotamer_set::RotamerSet.
Reimplemented in protocols::flexpack::rotamer_set::FlexbbRotamerSet.
References build_dependent_rotamers_for_concrete(), core::pose::Pose::data(), id_for_current_rotamer_, core::conformation::Residue::name(), num_rotamers(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), core::pose::Pose::residue(), core::pack::task::PackerTask::residue_task(), core::pack::rotamer_set::tt(), and core::pose::datacache::CacheableDataType::WATER_PACKING_INFO.
|
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().
|
private |
References core::pack::rotamer_set::build_independent_water_rotamers(), core::conformation::Residue::chain(), core::conformation::Residue::create_rotamer(), filter_water_rotamers(), id_for_current_rotamer_, core::pack::task::PackerTask::include_current(), core::conformation::Residue::name(), num_rotamers(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), rot(), and core::pack::rotamer_set::tt().
Referenced by build_rotamers_for_concrete().
|
protected |
Creates a sets of rotamers for an "optimize H" repacking.
Creates a sets of rotamers for an "optimize H" repacking: optimize H repositions hydroxyl hydrogens and resolve protonation ambiguity and if the task's flip_HNQ flag is set, it will flip amide groups ( ASN (N) and GLN (Q) ) and the ring orientation in histidine (H).
References core::chemical::aa_asn, core::chemical::aa_gln, core::chemical::aa_his, core::conformation::Residue::atom_name(), build_tp3_water_rotamers(), build_virtualizable_rotatable_water_rotamers(), core::conformation::Residue::clone(), core::pose::Pose::conformation(), core::conformation::ResidueFactory::create_residue(), id_for_current_rotamer_, core::conformation::idealize_hydrogens(), core::conformation::Residue::mainchain_torsions(), core::conformation::Residue::nheavyatoms(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), core::pose::Pose::residue(), core::pack::task::PackerTask::residue_task(), rotamers_, core::chemical::SC_BRANCH_POINT, core::conformation::Residue::seqpos(), core::conformation::set_chi_according_to_coordinates(), and core::conformation::Residue::xyz().
Referenced by build_rotamers_for_concrete().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References build_rotamers_for_concrete_virt(), core::conformation::Residue::create_rotamer(), id_for_current_rotamer_, core::conformation::Residue::name(), num_rotamers(), prepare_for_new_residue_type(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), core::pose::Pose::residue(), core::pack::task::PackerTask::residue_task(), core::pose::Pose::residue_type(), rot(), and core::pack::rotamer_set::tt().
|
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(), 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().
|
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().
|
private |
logic for building TP3 water rotamers
refactored into its own method so that it could be used in both regular packing and also in optimizeH.
References core::pack::rotamer_set::build_independent_water_rotamers(), core::conformation::Residue::chain(), core::conformation::Residue::create_rotamer(), id_for_current_rotamer_, core::pack::task::PackerTask::include_current(), core::conformation::Residue::name(), num_rotamers(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), and rot().
Referenced by build_optimize_H_rotamers(), and build_rotamers_for_concrete().
|
private |
logic for building rotatale water rotamers
refactored into its own method so that it could be used in both regular packing and also in optimizeH.
References core::pack::rotamer_set::build_rotated_water_rotamers(), core::conformation::Residue::chain(), core::conformation::Residue::create_rotamer(), id_for_current_rotamer_, core::pack::task::PackerTask::include_current(), core::conformation::Residue::name(), num_rotamers(), push_back_rotamer(), core::pack::rotamer_set::RotamerSet::resid(), and rot().
Referenced by build_optimize_H_rotamers(), and build_rotamers_for_concrete().
|
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(), rotamer(), and core::scoring::ScoreFunction::weights().
Referenced by filter_water_rotamers().
|
overridevirtual |
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.
This function is similar to compute_one_body_energies but it also returns a 2D vector of two body energies for all neighboring positions that are defined as packable by the task. The list of neighboring, packable positions is stored in packable_neighbors.
Implements core::pack::rotamer_set::RotamerSet.
References core::scoring::EMapVector::dot(), core::pose::Pose::energies(), core::scoring::ScoreFunction::eval_cd_1b(), core::scoring::ScoreFunction::eval_cd_2b(), core::scoring::ScoreFunction::eval_ci_1b(), core::scoring::ScoreFunction::eval_ci_2b(), 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(), 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().
|
overridevirtual |
Computes the packers "one body energies" for the set of rotamers.
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().
|
overridevirtual |
for OPTE
Used in OptE. Based on the function compute_one_body_energies(). OptE needs to store the energies for all score terms for each rotamer separately. In this context there are only rotamers at a single position, with all other positions fixed.
Implements core::pack::rotamer_set::RotamerSet.
References core::pose::Pose::energies(), core::scoring::ScoreFunction::eval_cd_1b(), core::scoring::ScoreFunction::eval_cd_2b(), core::scoring::ScoreFunction::eval_ci_1b(), core::scoring::ScoreFunction::eval_ci_2b(), core::scoring::ScoreFunction::evaluate_rotamer_intrares_energy_maps(), core::scoring::ScoreFunction::get_weight(), core::scoring::Energies::long_range_container(), core::scoring::ScoreFunction::long_range_energies_begin(), core::scoring::ScoreFunction::long_range_energies_end(), num_rotamers(), core::pack::rotamer_set::RotamerSet::resid(), core::pose::Pose::residue(), rotamers_, core::pose::Pose::size(), core::scoring::surface, core::scoring::Energies::tenA_neighbor_graph(), update_rotamer_offsets(), core::scoring::ScoreFunction::weights(), and core::scoring::EMapVector::zero().
|
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().
|
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().
|
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_.
|
inlineoverridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_.
|
protected |
, Filter water rotamers by eliminating rotamers with overlaps and uniformly only keeping a maximum number of rotamers (water_rotamers_cap, def=500)
References bump_check(), core::scoring::ScoreFunction::clone(), core::pose::Pose::data(), core::scoring::fa_rep, core::pack::rotamer_set::pre_bump_check(), core::pack::rotamer_set::RotamerSet::resid(), and core::pose::datacache::CacheableDataType::WATER_PACKING_INFO.
Referenced by build_dependent_rotamers_for_concrete(), and build_filtered_tp3_water_rotamers().
|
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().
|
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().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References n_residue_groups_, n_rotamers_for_resgroup_, and update_rotamer_offsets().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References n_residue_types_, n_rotamers_for_restype_, and update_rotamer_offsets().
|
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().
|
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().
|
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().
|
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().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References cached_tries_.
|
overridevirtual |
Return the index in the RotamerSet for the current rotamer.
Implements core::pack::rotamer_set::RotamerSet.
References id_for_current_rotamer_, and update_rotamer_offsets().
Referenced by core::pack::rotamer_set::sort_new_rotamers_into_rotset_vector().
|
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_.
|
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().
|
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().
|
overridevirtual |
mutatable access to a single rotamer in the set.
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_, and update_rotamer_offsets().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_, and update_rotamer_offsets().
Referenced by build_dependent_rotamers(), build_filtered_tp3_water_rotamers(), build_rotamers(), build_rotamers_for_concrete(), build_tp3_water_rotamers(), build_virtualizable_rotatable_water_rotamers(), compute_one_and_two_body_energies(), compute_one_body_energies(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::compute_one_body_energies(), compute_one_body_energy_maps(), new_residue_group(), new_residue_type(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::PackerEnergyAdd(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::PackerEnergyMultiply(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::PackerEnergySubtract(), prepare_for_new_residue_type(), and show().
|
private |
declare that a new block of residue types has begun, and that new residues are about to be pushed back.
References core::pack::rotamer_set::different_resgroup(), core::pack::rotamer_set::different_restype(), n_residue_types_, new_residue_group(), new_residue_type(), num_rotamers(), and rotamers_.
Referenced by add_rotamer(), build_dependent_rotamers_for_concrete(), build_rotamers(), and build_rotamers_for_concrete().
|
private |
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.
References n_residue_groups_, n_residue_types_, n_rotamers_for_resgroup_, n_rotamers_for_restype_, residue_group_for_rotamers_, residue_type_for_rotamers_, rotamer(), and rotamers_.
Referenced by add_rotamer(), build_dependent_rotamers(), build_dependent_rotamers_for_concrete(), build_filtered_tp3_water_rotamers(), build_optimize_H_rotamers(), build_rotamers(), build_rotamers_for_concrete(), build_tp3_water_rotamers(), and build_virtualizable_rotatable_water_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().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_, and update_rotamer_offsets().
Referenced by add_rotamer(), add_rotamer_into_existing_group(), protocols::flexpack::rotamer_set::FlexbbRotamerSet::bump_check(), bump_check(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::compute_one_body_energies(), push_back_rotamer(), and core::pack::rotamer_set::sort_new_rotamers_into_rotset_vector().
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References rotamers_.
|
overridevirtual |
Implements core::conformation::RotamerSetBase.
References rotamers_, and update_rotamer_offsets().
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 |
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.
References core::pack::task::EX_FOUR_HALF_STEP_STDDEVS, core::pack::task::EX_ONE_HALF_STEP_STDDEV, core::pack::task::EX_ONE_STDDEV, core::pack::task::EX_SIX_QUARTER_STEP_STDDEVS, core::pack::task::EX_THREE_THIRD_STEP_STDDEVS, core::pack::task::EX_TWO_FULL_STEP_STDDEVS, core::pack::task::EX_TWO_HALF_STEP_STDDEVS, core::pack::task::ResidueLevelTask::extrachi_sample_level(), core::pack::task::ExtraRotSampleCardinality, core::pack::task::NO_EXTRA_CHI_SAMPLES, core::pack::rotamer_set::RotamerSet::resid(), and core::pack::task::PackerTask::residue_task().
Referenced by build_rotamers_for_concrete().
|
overridevirtual |
|
overridevirtual |
Implements core::pack::rotamer_set::RotamerSet.
References cached_tries_.
|
overridevirtual |
Lazy update of rotamer indices and offsets and integration of those rotamers in the rotamers_waiting_for_sort_ list.
Implements core::pack::rotamer_set::RotamerSet.
References core::pack::rotamer_set::different_resgroup(), core::pack::rotamer_set::different_restype(), id_for_current_rotamer_, n_residue_groups_, n_residue_types_, n_rotamers_for_resgroup_, n_rotamers_for_restype_, residue_group_for_rotamers_, residue_group_rotamers_begin_, residue_type_for_rotamers_, residue_type_rotamers_begin_, rotamer_offsets_require_update_, rotamers_, rotamers_waiting_for_sort_, and core::pack::rotamer_set::sort_new_rotamers_into_rotset_vector().
Referenced by compute_one_and_two_body_energies(), compute_one_body_energies(), compute_one_body_energy_maps(), drop_rotamer(), drop_rotamers(), get_n_residue_groups(), get_n_residue_types(), get_n_rotamers_for_residue_group(), get_n_rotamers_for_residue_type(), get_residue_group_begin(), get_residue_group_index_for_rotamer(), get_residue_type_begin(), get_residue_type_index_for_rotamer(), id_for_current_rotamer(), nonconst_rotamer(), num_rotamers(), rotamer(), and rotamer_ref().
|
private |
|
private |
Referenced by get_trie(), and store_trie().
|
private |
Referenced by drop_rotamers().
|
mutableprivate |
Referenced by build_dependent_rotamers(), build_filtered_tp3_water_rotamers(), build_optimize_H_rotamers(), build_rotamers(), build_rotamers_for_concrete(), build_tp3_water_rotamers(), build_virtualizable_rotatable_water_rotamers(), drop_rotamer(), drop_rotamers(), id_for_current_rotamer(), and update_rotamer_offsets().
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
Referenced by get_residue_group_index_for_rotamer(), push_back_rotamer(), push_back_rotamers(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by get_residue_group_begin(), new_residue_group(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by get_residue_type_index_for_rotamer(), push_back_rotamer(), push_back_rotamers(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by get_residue_type_begin(), new_residue_type(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by add_rotamer_into_existing_group(), drop_rotamer(), drop_rotamers(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by begin(), build_optimize_H_rotamers(), compute_one_and_two_body_energies(), compute_one_body_energies(), compute_one_body_energy_maps(), drop_rotamer(), drop_rotamers(), drop_rotamers_by_index(), end(), nonconst_rotamer(), num_rotamers(), prepare_for_new_residue_type(), push_back_rotamer(), push_back_rotamers(), rotamer(), rotamer_data_cache(), rotamer_ref(), show(), and update_rotamer_offsets().
|
mutableprivate |
Referenced by add_rotamer_into_existing_group(), and update_rotamer_offsets().