Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::vardist_solaccess::VarSolDRotamerDots Class Reference

Handles sphere-sphere overlap calculations. More...

#include <VarSolDRotamerDots.hh>

Inheritance diagram for protocols::vardist_solaccess::VarSolDRotamerDots:
Inheritance graph
[legend]

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...
 
VarSolDRotamerDotsoperator= (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::Sizenum_bytes_
 
const core::Realpolar_expansion_radius_
 
core::Size num_atoms_
 
utility::vector1
< utility::vector1
< core::pack::interaction_graph::DotSphere > > 
atom_coverage_
 
utility::vector1< core::Vectordot_coords_
 

Detailed Description

Handles sphere-sphere overlap calculations.

Constructor & Destructor Documentation

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_.

protocols::vardist_solaccess::VarSolDRotamerDots::~VarSolDRotamerDots ( )
override
protocols::vardist_solaccess::VarSolDRotamerDots::VarSolDRotamerDots ( const VarSolDRotamerDots rhs)

copy constructor

Member Function Documentation

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.

References radii_, and rotamer_.

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

References radii_, and rotamer_.

bool protocols::vardist_solaccess::VarSolDRotamerDots::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
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_.

void protocols::vardist_solaccess::VarSolDRotamerDots::initialize_sasa_arrays ( )
private
core::Real protocols::vardist_solaccess::VarSolDRotamerDots::interaction_radii_squared ( core::Size  attype1,
core::Size  attype2 
) const
private
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

References radii_, and rotamer_.

VarSolDRotamerDots & protocols::vardist_solaccess::VarSolDRotamerDots::operator= ( VarSolDRotamerDots const &  rhs)

References copy().

bool protocols::vardist_solaccess::VarSolDRotamerDots::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
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

References radii_, and rotamer_.

void protocols::vardist_solaccess::VarSolDRotamerDots::write_dot ( std::ostream &  kinfile,
core::Size  atom,
core::Size  dot,
core::Real  radius 
) const
private
void protocols::vardist_solaccess::VarSolDRotamerDots::write_dot ( std::ostream &  kinfile,
core::Vector const &  coord,
std::string const &  atname 
) const
private
void protocols::vardist_solaccess::VarSolDRotamerDots::write_dot_kinemage ( std::ostream &  kinfile) const
void protocols::vardist_solaccess::VarSolDRotamerDots::write_dotlist_header ( std::ostream &  kinfile,
std::string const &  master_name,
std::string const &  color 
) const
private

Member Data Documentation

utility::vector1< utility::vector1< core::pack::interaction_graph::DotSphere > > protocols::vardist_solaccess::VarSolDRotamerDots::atom_coverage_
private
const utility::vector1< core::Real >& protocols::vardist_solaccess::VarSolDRotamerDots::coll_radii_
private
utility::vector1< core::Vector > protocols::vardist_solaccess::VarSolDRotamerDots::dot_coords_
private
const utility::vector1< core::Real >& protocols::vardist_solaccess::VarSolDRotamerDots::int_radii_
private
const utility::vector1< utility::vector1< core::Real > >& protocols::vardist_solaccess::VarSolDRotamerDots::int_radii_sum2_
private
const utility::vector1< utility::vector1< core::Real > >& protocols::vardist_solaccess::VarSolDRotamerDots::int_radii_sum_
private
const ObjexxFCL::FArray2D_int* protocols::vardist_solaccess::VarSolDRotamerDots::lg_angles_
private
const ObjexxFCL::FArray2D_ubyte* protocols::vardist_solaccess::VarSolDRotamerDots::lg_masks_
private
const utility::vector1< core::Real >& protocols::vardist_solaccess::VarSolDRotamerDots::msas_radii_
private
core::Size protocols::vardist_solaccess::VarSolDRotamerDots::num_atoms_
private
const core::Size& protocols::vardist_solaccess::VarSolDRotamerDots::num_bytes_
private
VarSolDistSasaCalculatorCAP protocols::vardist_solaccess::VarSolDRotamerDots::owner_
private
const core::Real& protocols::vardist_solaccess::VarSolDRotamerDots::polar_expansion_radius_
private
const utility::vector1< utility::vector1< core::Real > >& protocols::vardist_solaccess::VarSolDRotamerDots::radii_
private
core::conformation::ResidueCOP protocols::vardist_solaccess::VarSolDRotamerDots::rotamer_
private

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