Rosetta 3.4
Public Member Functions | Static Public Member Functions
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
[legend]

List of all members.

Public Member Functions

utility::vector1< Real > * get_ROSETTA_SASA_radii ()
 return a pointer to the standard Rosetta SASA radii
utility::vector1< Real > * get_NACCESS_SASA_radii ()
 return a pointer to the SASA radii used by NACCESS
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

Static Public Member Functions

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

Detailed Description

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

RotamerDotsRadiusData

Detailed:
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.


Member Function Documentation

RotamerDotsRadiusData * core::pack::interaction_graph::RotamerDotsRadiusData::get_instance ( ) [static]

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 ( )

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines