Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | 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>

Collaboration diagram for core::pack::interaction_graph::RotamerDotsRadiusData:
Collaboration graph

Public Member Functions

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

Static Public Member Functions

static RotamerDotsRadiusDataget_instance ()
 static function to get the instance of (pointer to) this singleton class More...

Private Member Functions

 RotamerDotsRadiusData ()
 private constructor More...

Private Attributes

utility::vector1< RealROSETTA_SASA_radii_
utility::vector1< RealNACCESS_SASA_radii_
utility::vector1< RealNACCESS_SASA_radii_with_expanded_polars

Static Private Attributes

static RotamerDotsRadiusDatainstance_
 static data member holding pointer to the singleton class itself More...

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 constructor

private constructor to guarantee the singleton

Member Function Documentation

RotamerDotsRadiusData * core::pack::interaction_graph::RotamerDotsRadiusData::get_instance ( )

static function to get the instance of (pointer to) this singleton class

Referenced by core::pack::interaction_graph::RotamerDots::RotamerDots().

utility::vector1< Real > * core::pack::interaction_graph::RotamerDotsRadiusData::get_NACCESS_SASA_radii ( )
utility::vector1< Real > * core::pack::interaction_graph::RotamerDotsRadiusData::get_NACCESS_SASA_radii_with_expanded_polars ( Real  polar_expansion_radius = 1.0)
utility::vector1< Real > * core::pack::interaction_graph::RotamerDotsRadiusData::get_ROSETTA_SASA_radii ( )

Member Data Documentation

RotamerDotsRadiusData * core::pack::interaction_graph::RotamerDotsRadiusData::instance_

static data member holding pointer to the singleton class itself

set initial value as no instance

utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::NACCESS_SASA_radii_
utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::NACCESS_SASA_radii_with_expanded_polars
utility::vector1< Real > core::pack::interaction_graph::RotamerDotsRadiusData::ROSETTA_SASA_radii_

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