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

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 > > & 
const utility::vector1
< core::Real > & 
const utility::vector1
< core::Real > & 
const utility::vector1
< core::Real > & 
const utility::vector1
< utility::vector1< core::Real > > & 
const utility::vector1
< utility::vector1< core::Real > > & 
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
< core::pack::interaction_graph::DotSphere > > 
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 ( )
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
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 ( )
core::Real protocols::vardist_solaccess::VarSolDRotamerDots::interaction_radii_squared ( core::Size  attype1,
core::Size  attype2 
) const
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
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
void protocols::vardist_solaccess::VarSolDRotamerDots::write_dot ( std::ostream &  kinfile,
core::Vector const &  coord,
std::string const &  atname 
) const
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

Member Data Documentation

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

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