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

#include <RotamerSet.hh>

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

Public Member Functions

 RotamerSet ()
 
 ~RotamerSet () override
 
void set_resid (Size resid)
 
virtual 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)=0
 
virtual 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)=0
 
virtual void add_rotamer (conformation::Residue const &rotamer)=0
 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...
 
virtual void add_rotamer_into_existing_group (conformation::Residue const &rotamer)=0
 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=0
 Return the number of different residue types; two residue types are considered different if they have a different address. More...
 
virtual Size get_n_residue_groups () const =0
 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=0
 Return the first rotamer of a particular residue type. More...
 
virtual Size get_residue_group_begin (Size which_resgroup) const =0
 Return the first rotamer that belongs to a particular rotamer group. More...
 
Size get_n_rotamers_for_residue_type (Size which_restype) const override=0
 
virtual Size get_n_rotamers_for_residue_group (Size which_resgroup) const =0
 
Size get_residue_type_index_for_rotamer (Size which_rotamer) const override=0
 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...
 
virtual Size get_residue_group_index_for_rotamer (Size which_rotamer) const =0
 Return the index of the rotamer group for a particular rotamer. More...
 
virtual 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 =0
 
virtual 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 =0
 
virtual 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 =0
 for OptE More...
 
Size num_rotamers () const override=0
 
virtual Size id_for_current_rotamer () const =0
 Return the index in the RotamerSet for the current rotamer. More...
 
Size resid () const override
 
conformation::ResidueCOP rotamer (Size rot_id) const override=0
 
virtual
basic::datacache::BasicDataCache & 
rotamer_data_cache (Size rot_id) const =0
 
virtual Rotamers::const_iterator begin () const =0
 
virtual Rotamers::const_iterator end () const =0
 
conformation::ResidueOP nonconst_rotamer (Size rot_id) override=0
 mutatable access to a single rotamer in the set. More...
 
void store_trie (Size method_enum_id, conformation::AbstractRotamerTrieOP trie) override=0
 
conformation::AbstractRotamerTrieCOP get_trie (Size method_enum_id) const override=0
 
virtual void drop_rotamer (Size rot_id)=0
 removes a single rotamer and causes a rotamer index update More...
 
virtual void drop_rotamers (utility::vector1< bool > const &rotamers_to_delete)=0
 rotamers_to_delete must be of size nrotmaers – each position in the array that's "true" is removed from the set of rotamers More...
 
virtual void drop_rotamers_by_index (utility::vector1< Size > const &rotamer_indices_to_delete)=0
 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...
 
virtual void show (std::ostream &out) const =0
 
virtual void initialize_pose_for_rotset_creation (pose::Pose &pose) const =0
 
virtual void update_rotamer_offsets () const =0
 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::conformation::RotamerSetBase
 RotamerSetBase ()
 
 ~RotamerSetBase () override
 
virtual conformation::Residue
const & 
rotamer_ref (Size rot_id) const =0
 
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...
 

Private Types

typedef
conformation::RotamerSetBase 
parent
 

Private Member Functions

 RotamerSet (RotamerSet const &)
 

Private Attributes

Size resid_
 

Additional Inherited Members

- Public Types inherited from core::conformation::RotamerSetBase
typedef
basic::datacache::BasicDataCache 
BasicDataCache
 
typedef
basic::datacache::BasicDataCacheOP 
BasicDataCacheOP
 

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

virtual void core::pack::rotamer_set::RotamerSet::add_rotamer ( conformation::Residue const &  rotamer)
pure virtual

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.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

virtual void core::pack::rotamer_set::RotamerSet::add_rotamer_into_existing_group ( conformation::Residue const &  rotamer)
pure virtual

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.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

Referenced by protocols::splice::SampleRotamersFromPDB_RotamerSetOperation::add_rotamer_to_rotamer_set(), core::pack::rotamer_set::AddResiduesRotamerSetOperation::alter_rotamer_set(), protocols::matdes::MotifHitsRotamersOperation::alter_rotamer_set(), protocols::toolbox::rotamer_set_operations::SpecialRotamerRSO::alter_rotamer_set(), core::pack::rotamer_set::UnboundRotamersOperation::alter_rotamer_set(), protocols::toolbox::rotamer_set_operations::AddGood2BPairEnergyRotamers::alter_rotamer_set(), and protocols::toolbox::rotamer_set_operations::RigidBodyMoveBaseRSO::alter_rotamer_set().

virtual Rotamers::const_iterator core::pack::rotamer_set::RotamerSet::begin ( ) const
pure virtual
virtual 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 
)
pure virtual
virtual 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 
)
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::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
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::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
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::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
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::drop_rotamer ( Size  rot_id)
pure virtual

removes a single rotamer and causes a rotamer index update

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

virtual void core::pack::rotamer_set::RotamerSet::drop_rotamers ( utility::vector1< bool > const &  rotamers_to_delete)
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::drop_rotamers_by_index ( utility::vector1< Size > const &  rotamer_indices_to_delete)
pure virtual

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.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

virtual Rotamers::const_iterator core::pack::rotamer_set::RotamerSet::end ( ) const
pure virtual
virtual Size core::pack::rotamer_set::RotamerSet::get_n_residue_groups ( ) const
pure virtual

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.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

Referenced by protocols::toolbox::rotamer_set_operations::AddGood2BPairEnergyRotamers::alter_rotamer_set(), and protocols::toolbox::rotamer_set_operations::AddGood2BPairEnergyRotamers::rotamer_set_contains_rotamer().

Size core::pack::rotamer_set::RotamerSet::get_n_residue_types ( ) const
overridepure virtual

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

Implements core::conformation::RotamerSetBase.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

Referenced by protocols::toolbox::rotamer_set_operations::RigidBodyMoveBaseRSO::alter_rotamer_set(), and core::pack::scmin::ResidueAtomTreeCollection::ResidueAtomTreeCollection().

virtual Size core::pack::rotamer_set::RotamerSet::get_n_rotamers_for_residue_group ( Size  which_resgroup) const
pure virtual
Size core::pack::rotamer_set::RotamerSet::get_n_rotamers_for_residue_type ( Size  which_restype) const
overridepure virtual
virtual Size core::pack::rotamer_set::RotamerSet::get_residue_group_begin ( Size  which_resgroup) const
pure virtual
virtual Size core::pack::rotamer_set::RotamerSet::get_residue_group_index_for_rotamer ( Size  which_rotamer) const
pure virtual

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

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

Size core::pack::rotamer_set::RotamerSet::get_residue_type_begin ( Size  which_restype) const
overridepure virtual
Size core::pack::rotamer_set::RotamerSet::get_residue_type_index_for_rotamer ( Size  which_rotamer) const
overridepure virtual

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::conformation::RotamerSetBase.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

conformation::AbstractRotamerTrieCOP core::pack::rotamer_set::RotamerSet::get_trie ( Size  method_enum_id) const
overridepure virtual
virtual Size core::pack::rotamer_set::RotamerSet::id_for_current_rotamer ( ) const
pure virtual
virtual void core::pack::rotamer_set::RotamerSet::initialize_pose_for_rotset_creation ( pose::Pose pose) const
pure virtual
conformation::ResidueOP core::pack::rotamer_set::RotamerSet::nonconst_rotamer ( Size  rot_id)
overridepure virtual
Size core::pack::rotamer_set::RotamerSet::num_rotamers ( ) const
overridepure virtual
Size core::pack::rotamer_set::RotamerSet::resid ( ) const
inlineoverridevirtual

Implements core::conformation::RotamerSetBase.

References resid_.

Referenced by protocols::splice::SampleRotamersFromPDB_RotamerSetOperation::add_rotamer_to_rotamer_set(), core::pack::rotamer_set::AddResiduesRotamerSetOperation::alter_rotamer_set(), protocols::matdes::MotifHitsRotamersOperation::alter_rotamer_set(), protocols::toolbox::rotamer_set_operations::SpecialRotamerRSO::alter_rotamer_set(), core::pack::rotamer_set::UnboundRotamersOperation::alter_rotamer_set(), protocols::toolbox::rotamer_set_operations::RigidBodyMoveBaseRSO::alter_rotamer_set(), protocols::splice::SampleRotamersFromPDB_RotamerSetOperation::alter_rotamer_set_from_db(), protocols::splice::SampleRotamersFromPDB_RotamerSetOperation::alter_rotamer_set_from_pdb(), core::pack::rotamer_set::RotamerSet_::build_dependent_rotamers(), core::pack::rotamer_set::RotamerSet_::build_dependent_rotamers_for_concrete(), core::pack::rotamer_set::RotamerSet_::build_filtered_tp3_water_rotamers(), core::pack::rotamer_set::RotamerSet_::build_optimize_H_rotamers(), core::pack::rotamer_set::RotamerSet_::build_rotamers(), core::pack::rotamer_set::RotamerSet_::build_rotamers_for_concrete(), core::pack::rotamer_set::RotamerSet_::build_rotamers_for_concrete_virt(), core::pack::rotamer_set::RotamerSet_::build_tp3_water_rotamers(), core::pack::rotamer_set::RotamerSet_::build_virtualizable_rotatable_water_rotamers(), protocols::flexpack::rotamer_set::FlexbbRotamerSet::bump_check(), core::pack::rotamer_set::RotamerSet_::bump_check(), core::pack::rotamer_set::RotamerSet_::compute_one_and_two_body_energies(), core::pack::rotamer_set::symmetry::SymmetricRotamerSet_::compute_one_body_energies(), core::pack::rotamer_set::RotamerSet_::compute_one_body_energies(), core::pack::rotamer_set::RotamerSet_::compute_one_body_energy_maps(), core::pack::rotamer_set::RotamerSet_::filter_water_rotamers(), protocols::hbnet::hbnet_symm_one_body_energies(), core::pack::rotamer_set::RotamerSet_::set_extra_samples(), set_resid(), core::pack::rotamer_set::RotamerSubset::show(), and core::pack::rotamer_set::RotamerSet_::show().

conformation::ResidueCOP core::pack::rotamer_set::RotamerSet::rotamer ( Size  rot_id) const
overridepure virtual
virtual basic::datacache::BasicDataCache& core::pack::rotamer_set::RotamerSet::rotamer_data_cache ( Size  rot_id) const
pure virtual
void core::pack::rotamer_set::RotamerSet::set_resid ( Size  resid)

References resid(), and resid_.

virtual void core::pack::rotamer_set::RotamerSet::show ( std::ostream &  out) const
pure virtual
void core::pack::rotamer_set::RotamerSet::store_trie ( Size  method_enum_id,
conformation::AbstractRotamerTrieOP  trie 
)
overridepure virtual
virtual void core::pack::rotamer_set::RotamerSet::update_rotamer_offsets ( ) const
pure virtual

Lazy update of rotamer indices and offsets and integration of those rotamers in the rotamers_waiting_for_sort_ list.

Implemented in core::pack::rotamer_set::RotamerSet_, and core::pack::rotamer_set::RotamerSubset.

Member Data Documentation

Size core::pack::rotamer_set::RotamerSet::resid_
private

Referenced by resid(), and set_resid().


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