Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
core::pack::interaction_graph::RotamerDotsRadiusData Class Reference

A singleton class which reads in database SASA radii files and provides accessors for those values to the RotamerDots class. More...

#include <RotamerDots.hh>

Inheritance diagram for core::pack::interaction_graph::RotamerDotsRadiusData:
Inheritance graph
[legend]

Public Member Functions

utility::vector1< Real > const * get_ROSETTA_SASA_radii () const
 return a pointer to the standard Rosetta SASA radii More...
 
utility::vector1< Real > const * get_NACCESS_SASA_radii () const
 return a pointer to the SASA radii used by NACCESS More...
 
utility::vector1< Real > const * get_NACCESS_SASA_radii_with_expanded_polars () const
 return a pointer to the SASA radii used by NACCESS, with polar atom radii expanded More...
 

Private Member Functions

 RotamerDotsRadiusData ()
 private constructor More...
 

Private Attributes

core::Real polar_expansion_radius_
 
utility::vector1< RealROSETTA_SASA_radii_
 
utility::vector1< RealNACCESS_SASA_radii_
 
utility::vector1< RealNACCESS_SASA_radii_with_expanded_polars_
 

Friends

class utility::SingletonBase< RotamerDotsRadiusData >
 

Detailed Description

A singleton class which reads in database SASA radii files and provides accessors for those values to the RotamerDots class.

The RotamerDots class keeps track of the SASA of some rotamer using DotSphere objects and lots of get overlap calls on atoms. The SASA of a given atom (or residue) depends on what radii are used for the atoms. Different program use different sets of radii, and for the hpatch score, the polar atom radii are expanded. Previously RotamerDots objects would have a static vector member variable that represented the particular set of radii being used. It would also have a second static vector member variable that represented the expanded polar version of the radii. So, no matter how many instances of RotamerDots objects we created, we only maintained two vectors for the radii. Now, we want to make the RotamerDots class only use one set of radii for the hpatch score: the expanded polar radii. The super easy solution would be to remove all the logic that keeps track of SASA when using the standard radii and make the RotamerDots class only calculate that kind of SASA. But, there will probably be more uses in the future for a RotamerDots class that can calculate SASA with a standard set of radii than with the expanded polar ones. So, that's where this class comes in. It will read in database files, depending on which set of radii are requested and provide access to that data in some way.

Let's say we have to create RotamerDots objects for two different sets of SASA radii. When those objects are constructed a pointer to the right set of radii will have to be set. Definitely don't want to copy/store the radii to each instance. If I make it a pointer to this class, then it would only work for one set of radii. So at RotamerDots construct time we have to ask this class to give us a pointer to the set of radii that are requested. Then only one instance of this class exists, and all RotamerDots objects have pointers set to the radii they care about. What would this change in the RotamerDots API? The get_radius() function would dereference the pointer and index into the vector to get the right radius. This structure is similar to how the ChemicalManager works. But, in that class, the functions return AtomTypeSet objects.

Constructor & Destructor Documentation

core::pack::interaction_graph::RotamerDotsRadiusData::RotamerDotsRadiusData ( )
private

private constructor

private constructor to guarantee the singleton

References core::chemical::AtomType::element(), core::chemical::AtomTypeSet::extra_parameter_index(), core::chemical::FA_STANDARD, and TR_RDRD().

Member Function Documentation

utility::vector1< Real > const * core::pack::interaction_graph::RotamerDotsRadiusData::get_NACCESS_SASA_radii ( ) const

return a pointer to the SASA radii used by NACCESS

utility::vector1< Real > const * core::pack::interaction_graph::RotamerDotsRadiusData::get_NACCESS_SASA_radii_with_expanded_polars ( ) const

return a pointer to the SASA radii used by NACCESS, with polar atom radii expanded

utility::vector1< Real > const * core::pack::interaction_graph::RotamerDotsRadiusData::get_ROSETTA_SASA_radii ( ) const

return a pointer to the standard Rosetta SASA radii

Friends And Related Function Documentation

friend class utility::SingletonBase< RotamerDotsRadiusData >
friend

Member Data Documentation

utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::NACCESS_SASA_radii_
private
utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::NACCESS_SASA_radii_with_expanded_polars_
private
core::Real core::pack::interaction_graph::RotamerDotsRadiusData::polar_expansion_radius_
private
utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::ROSETTA_SASA_radii_
private

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