![]() |
Rosetta
2020.50
|
Handles sphere-sphere overlap calculations. More...
#include <VarSolDRotamerDots.hh>
Public Member Functions | |
VarSolDRotamerDots (core::conformation::ResidueCOP rotamer, VarSolDistSasaCalculatorCOP vsasa_calc) | |
~VarSolDRotamerDots () override | |
VarSolDRotamerDots (const VarSolDRotamerDots &rhs) | |
copy constructor More... | |
void | copy (VarSolDRotamerDots const &rhs) |
Copy method for the RotamerDots class. Also used by the assignment operator. More... | |
VarSolDRotamerDots & | operator= (VarSolDRotamerDots const &rhs) |
bool | overlaps (VarSolDRotamerDots const &other) const |
Returns true if this RotamerDots object has any sphere overlap with the passed in RotamerDots object. More... | |
core::conformation::ResidueCOP | rotamer () const |
core::Size | get_num_atoms () const |
Is the state of this RotamerDots object unassigned? More... | |
core::Vector | get_atom_coords_xyz (core::Size atom_index) const |
Return the xyz coordinates of an atom in this RotamerDots instance. More... | |
core::Real | get_atom_collision_radius (core::Size atom_index) const |
Returns the collision radius for the passed in atom type. More... | |
core::Real | get_atom_interaction_radius (core::Size atom_index) const |
core::Size | nshells_for_atom (core::Size atom_index) const |
core::Real | shell_radius_for_atom (core::Size atom_index, core::Size shell_index) const |
core::Size | ndots () const |
bool | get_dot_covered (core::Size atom_index, core::Size shell_index, core::Size dot_index) const |
void | increment_self_overlap () |
computes and stores self-induced dot coverage. uses a vector1 of vector1s of vector1s of ubytes to store the calculated overlap information. More... | |
void | intersect_residues (VarSolDRotamerDots &other_res) |
void | write_dot_kinemage (std::ostream &kinfile) const |
bool | any_exposed_dots (core::Size atom) const |
core::Real | msas_for_atom (core::Size atom_index) const |
Private Member Functions | |
bool | get_atom_overlap_masks (VarSolDRotamerDots const &other, core::Size at_this, core::Size at_other, core::Real &distance, core::Size &closest_dot1, core::Size &closest_dot2) const |
bool | overlap_atoms (VarSolDRotamerDots const &other, core::Size at_this, core::Size at_other, utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &at_this_coverage, utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &at_other_coverage) const |
void | initialize_sasa_arrays () |
core::Real | interaction_radii_squared (core::Size attype1, core::Size attype2) const |
void | write_dot (std::ostream &kinfile, core::Size atom, core::Size dot, core::Real radius) const |
void | write_dot (std::ostream &kinfile, core::Vector const &coord, std::string const &atname) const |
void | write_dotlist_header (std::ostream &kinfile, std::string const &master_name, std::string const &color) const |
Private Attributes | |
VarSolDistSasaCalculatorCAP | owner_ |
core::conformation::ResidueCOP | rotamer_ |
const utility::vector1 < utility::vector1< core::Real > > & | radii_ |
const utility::vector1 < core::Real > & | msas_radii_ |
const utility::vector1 < core::Real > & | coll_radii_ |
const utility::vector1 < core::Real > & | int_radii_ |
const utility::vector1 < utility::vector1< core::Real > > & | int_radii_sum_ |
const utility::vector1 < utility::vector1< core::Real > > & | int_radii_sum2_ |
const ObjexxFCL::FArray2D_int * | lg_angles_ |
const ObjexxFCL::FArray2D_ubyte * | lg_masks_ |
const core::Size & | num_bytes_ |
const core::Real & | polar_expansion_radius_ |
core::Size | num_atoms_ |
utility::vector1 < utility::vector1 < core::pack::interaction_graph::DotSphere > > | atom_coverage_ |
utility::vector1< core::Vector > | dot_coords_ |
Handles sphere-sphere overlap calculations.
protocols::vardist_solaccess::VarSolDRotamerDots::VarSolDRotamerDots | ( | core::conformation::ResidueCOP | rotamer, |
VarSolDistSasaCalculatorCOP | vsasa_calc | ||
) |
One RotamerDots object get allocated for every state of a first class IG Node, for all first class IG Nodes of a protein being designed. That's potentially a very large number of states. This class should only hold the information it needs to hold to do its job.
References atom_coverage_, num_atoms_, radii_, and rotamer_.
|
override |
protocols::vardist_solaccess::VarSolDRotamerDots::VarSolDRotamerDots | ( | const VarSolDRotamerDots & | rhs | ) |
copy constructor
bool protocols::vardist_solaccess::VarSolDRotamerDots::any_exposed_dots | ( | core::Size | atom | ) | const |
void protocols::vardist_solaccess::VarSolDRotamerDots::copy | ( | VarSolDRotamerDots const & | rhs | ) |
Copy method for the RotamerDots class. Also used by the assignment operator.
References atom_coverage_, num_atoms_, and rotamer_.
Referenced by operator=().
core::Real protocols::vardist_solaccess::VarSolDRotamerDots::get_atom_collision_radius | ( | core::Size | atom_index | ) | const |
Returns the collision radius for the passed in atom type.
Many of the functions in this class iterate over 1 .. num_atoms_. That's not the same thing as an atom type index which is what the radii vector is indexed with. So before we can return the radius, we have to convert the passed in atom_index into the right atom in the residue and then use that to get the right type.
core::Vector protocols::vardist_solaccess::VarSolDRotamerDots::get_atom_coords_xyz | ( | core::Size | atom_index | ) | const |
Return the xyz coordinates of an atom in this RotamerDots instance.
References rotamer_.
Referenced by overlaps().
core::Real protocols::vardist_solaccess::VarSolDRotamerDots::get_atom_interaction_radius | ( | core::Size | atom_index | ) | const |
|
private |
bool protocols::vardist_solaccess::VarSolDRotamerDots::get_dot_covered | ( | core::Size | atom_index, |
core::Size | shell_index, | ||
core::Size | dot_index | ||
) | const |
References atom_coverage_.
Size protocols::vardist_solaccess::VarSolDRotamerDots::get_num_atoms | ( | ) | const |
Is the state of this RotamerDots object unassigned?
Returns the number of atoms this RotamerDots object is keeping SASA for.
References num_atoms_.
Referenced by overlaps().
void protocols::vardist_solaccess::VarSolDRotamerDots::increment_self_overlap | ( | ) |
computes and stores self-induced dot coverage. uses a vector1 of vector1s of vector1s of ubytes to store the calculated overlap information.
uses overlap_atoms() which in turn uses get_atom_overlap_masks()
References protocols::vardist_solaccess::VarSolDistSasaCalculator::num_bytes_.
|
private |
|
private |
References protocols::vardist_solaccess::VarSolDistSasaCalculator::int_radii_sum2_.
Referenced by overlaps().
void protocols::vardist_solaccess::VarSolDRotamerDots::intersect_residues | ( | VarSolDRotamerDots & | other_res | ) |
Real protocols::vardist_solaccess::VarSolDRotamerDots::msas_for_atom | ( | core::Size | atom_index | ) | const |
core::Size protocols::vardist_solaccess::VarSolDRotamerDots::ndots | ( | ) | const |
References atom_coverage_, and num_atoms_.
core::Size protocols::vardist_solaccess::VarSolDRotamerDots::nshells_for_atom | ( | core::Size | atom_index | ) | const |
VarSolDRotamerDots & protocols::vardist_solaccess::VarSolDRotamerDots::operator= | ( | VarSolDRotamerDots const & | rhs | ) |
References copy().
|
private |
bool protocols::vardist_solaccess::VarSolDRotamerDots::overlaps | ( | VarSolDRotamerDots const & | other | ) | const |
Returns true if this RotamerDots object has any sphere overlap with the passed in RotamerDots object.
This method only checks to see if two RotamerDots objects are within touching distance of each other. It is used to determine whether Edges or BGEdges should be created in the IG. Calculate this using the expanded polar atom radii. If we don't, there's a chance that a state substitution on a Node may cause SASA changes (when expanded polars are used) on a BGNode, but if we didn't assume expanded radii in this method, there would be no edge between the two nodes.
References core::kinematics::tree::distance_squared(), get_atom_coords_xyz(), get_num_atoms(), interaction_radii_squared(), num_atoms_, and rotamer_.
core::conformation::ResidueCOP protocols::vardist_solaccess::VarSolDRotamerDots::rotamer | ( | ) | const |
References rotamer_.
core::Real protocols::vardist_solaccess::VarSolDRotamerDots::shell_radius_for_atom | ( | core::Size | atom_index, |
core::Size | shell_index | ||
) | const |
|
private |
|
private |
void protocols::vardist_solaccess::VarSolDRotamerDots::write_dot_kinemage | ( | std::ostream & | kinfile | ) | const |
|
private |
|
private |
Referenced by copy(), get_dot_covered(), intersect_residues(), ndots(), overlap_atoms(), and VarSolDRotamerDots().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by copy(), get_num_atoms(), intersect_residues(), ndots(), overlaps(), and VarSolDRotamerDots().
|
private |
|
private |
|
private |
|
private |
|
private |