Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | List of all members
core::scoring::sc::ShapeSimilarityCalculator Class Reference

#include <ShapeSimilarityCalculator.hh>

Inheritance diagram for core::scoring::sc::ShapeSimilarityCalculator:
Inheritance graph
[legend]

Public Member Functions

 ShapeSimilarityCalculator ()
 ShapeSimilarityCalculator constructor, initializes default settings. More...
 
 ~ShapeSimilarityCalculator () override
 
int Calc () override
 Run the SS calculation for previously defined molecules (via AddResidue or add_atom calls) More...
 
core::Real CalcSs (core::pose::Pose const &pose, core::pose::Pose const &native, core::select::residue_selector::ResidueSelectorCOP selector_pose, core::select::residue_selector::ResidueSelectorCOP selector_native)
 Run the SS calculation on Pose and Reference and return the ss statistic or -1 on error. More...
 
- Public Member Functions inherited from core::scoring::sc::MolecularSurfaceCalculator
 MolecularSurfaceCalculator ()
 MolecularSurfaceCalculator constructor, initializes default settings. More...
 
 ~MolecularSurfaceCalculator () override
 
virtual int Init ()
 Initializes calculation and GPU (if used) Init() is also called implicitly by the static CalcSc() function. More...
 
void Reset ()
 Reset calculator for another calculation. Must be used when the MolecularSurfaceCalculator instance is re-used. More...
 
int AddAtom (int molecule, Atom &atom)
 Add an atom to a molecule for computation. More...
 
core::Size AddResidue (int molecule, core::conformation::Residue const &residue, bool apolar_only=false)
 Add a rosetta residue to a specific molecule. More...
 
virtual int Calc (core::pose::Pose const &pose, core::Size jump_id=0)
 Generate molecular surfaces for the given pose. //. More...
 
std::vector< Atom > const & GetAtoms ()
 
std::vector< DOT > const & GetDots (int const moleculeid)
 
std::vector< const DOT * > const & GetTrimmedDots (int const moleculeid)
 
RESULTS const & GetResults ()
 

Public Attributes

bool median
 
- Public Attributes inherited from core::scoring::sc::MolecularSurfaceCalculator
struct {
   core::Real   rp
 
   core::Real   density
 
   core::Real   band
 
   core::Real   sep
 
   core::Real   weight
 
   core::Real   binwidth_dist
 
   core::Real   binwidth_norm
 
   core::Real   near_squared_size
 
   bool   use_rosetta_radii
 
settings
 

Protected Member Functions

int AssignAttentionNumbers (std::vector< Atom > &atom) override
 
- Protected Member Functions inherited from core::scoring::sc::MolecularSurfaceCalculator
void GenerateMolecularSurfaces ()
 Generate untrimmed surfaces for the defined molecules. More...
 
int AssignAtomRadius (Atom &atom)
 
int WildcardMatch (char const *query, char const *pattern, int const l)
 
int ReadScRadii ()
 Read atom radius definitions from file This function is implicitly called, but can be overloaded or called explicitly for custom handling of the atom radii library. Returns true on success. More...
 
void AddDot (int const molecule, int const type, Vec3 const &coor, ScValue const area, Vec3 const &pcen, Atom const &atom)
 

Private Member Functions

ScValue TrimPeripheralBand (std::vector< DOT > const &sdots, std::vector< const DOT * > &trimmed_dots)
 SS molecular dot trimming, vector dot product calculation and statistics. More...
 
int TrimPeripheralBandCheckDot (DOT const &dot, std::vector< DOT > const &sdots)
 Test a dot against a set of dots for collision NOTE: ~75% of time is spent in this function. More...
 
core::Real CalcNeighborDistance (int const molecule, std::vector< const DOT * > const &my_dots, std::vector< const DOT * > const &their_dots)
 Evaluate similarity of two points of the surface. More...
 
DOT const * CalcNeighborDistanceFindClosestNeighbor (DOT const &dot1, std::vector< const DOT * > const &their_dots)
 Find closest neighbor dot for a given dot NOTE: ~20% of time is spent in this function. More...
 

Additional Inherited Members

- Public Types inherited from core::scoring::sc::MolecularSurfaceCalculator
typedef float ScValue
 
typedef numeric::xyzVector< float > Vec3
 
- Protected Attributes inherited from core::scoring::sc::MolecularSurfaceCalculator
struct {
   ScValue   radmax
 
   RESULTS   results
 
   std::vector< Atom >   atoms
 
   std::vector< DOT >   dots [2]
 
   std::vector< const DOT * >   trimmed_dots [2]
 
   std::vector< PROBE >   probes
 
   Vec3   prevp
 
   int   prevburied
 
run_
 
- Static Protected Attributes inherited from core::scoring::sc::MolecularSurfaceCalculator
static std::vector< ATOM_RADIUSradii_
 

Constructor & Destructor Documentation

core::scoring::sc::ShapeSimilarityCalculator::ShapeSimilarityCalculator ( )

ShapeSimilarityCalculator constructor, initializes default settings.

core::scoring::sc::ShapeSimilarityCalculator::~ShapeSimilarityCalculator ( )
overridedefault

Member Function Documentation

int core::scoring::sc::ShapeSimilarityCalculator::AssignAttentionNumbers ( std::vector< Atom > &  atom)
overrideprotectedvirtual
int core::scoring::sc::ShapeSimilarityCalculator::Calc ( )
overridevirtual

Run the SS calculation for previously defined molecules (via AddResidue or add_atom calls)

This function is called for residues / atoms making up the two molecular surfaces have been explicitly defined. Returns true on success.

Reimplemented from core::scoring::sc::MolecularSurfaceCalculator.

References AssignAttentionNumbers(), core::scoring::sc::MolecularSurfaceCalculator::GenerateMolecularSurfaces(), core::scoring::sc::MolecularSurfaceCalculator::run_, and core::scoring::TR().

Referenced by core::scoring::sc::ElectrostaticSimilarityCalculator::Calc(), and CalcSs().

core::Real core::scoring::sc::ShapeSimilarityCalculator::CalcNeighborDistance ( int const  molecule,
std::vector< const DOT * > const &  my_dots,
std::vector< const DOT * > const &  their_dots 
)
private

Evaluate similarity of two points of the surface.

Identify the closes points of the two provided surfaces and compute the distance between the points and their normal vectors. The normal vectors are used to evaluate the shape of the points via the normal vector dot product. This operation is performed for all points of the specified surfaces and the mean of all values represent the overall shape similarity.

References core::pack::dunbrack::c, CalcNeighborDistanceFindClosestNeighbor(), core::scoring::sc::_DOT::coor, MAX, median, MIN, core::scoring::sc::_DOT::outnml, core::scoring::sc::MolecularSurfaceCalculator::run_, core::scoring::sc::MolecularSurfaceCalculator::settings, protocols::analysis::total, and core::scoring::TR().

Referenced by CalcSs().

DOT const * core::scoring::sc::ShapeSimilarityCalculator::CalcNeighborDistanceFindClosestNeighbor ( DOT const &  dot1,
std::vector< const DOT * > const &  their_dots 
)
private

Find closest neighbor dot for a given dot NOTE: ~20% of time is spent in this function.

References core::scoring::sc::_DOT::buried, and core::scoring::sc::_DOT::coor.

Referenced by CalcNeighborDistance().

core::Real core::scoring::sc::ShapeSimilarityCalculator::CalcSs ( core::pose::Pose const &  pose,
core::pose::Pose const &  native,
core::select::residue_selector::ResidueSelectorCOP  selector_pose,
core::select::residue_selector::ResidueSelectorCOP  selector_native 
)

Run the SS calculation on Pose and Reference and return the ss statistic or -1 on error.

This is a static function and can be called without instantiating ShapeSimilarityCalculator. The residue selectors for the pose and reference are used to select two surfaces to compare. Setting quick to true will perform a much faster calculation (~5-10 times faster) at the expense of accuracy (about 0.05 units).

Example: core::Real sc = core::scoring::sc::ShapeSimilarityCalculator( pose );

References core::scoring::sc::MolecularSurfaceCalculator::AddResidue(), Calc(), CalcNeighborDistance(), core::conformation::Residue::chain(), core::sequence::end, core::scoring::sc::MolecularSurfaceCalculator::GetDots(), protocols::hybridization::r1, protocols::hybridization::r2, core::pose::Pose::residue(), core::pose::Pose::split_by_chain(), and core::scoring::TR().

Referenced by core::simple_metrics::metrics::ShapeSimilarityMetric::calculate().

ShapeSimilarityCalculator::ScValue core::scoring::sc::ShapeSimilarityCalculator::TrimPeripheralBand ( std::vector< DOT > const &  sdots,
std::vector< const DOT * > &  trimmed_dots 
)
private

SS molecular dot trimming, vector dot product calculation and statistics.

Trim dots and retain only the peripheral band (currently not used during evaluation)

References core::scoring::sc::_DOT::area, core::scoring::sc::_DOT::buried, core::scoring::sc::MolecularSurfaceCalculator::settings, and TrimPeripheralBandCheckDot().

int core::scoring::sc::ShapeSimilarityCalculator::TrimPeripheralBandCheckDot ( DOT const &  dot,
std::vector< DOT > const &  sdots 
)
private

Test a dot against a set of dots for collision NOTE: ~75% of time is spent in this function.

References core::scoring::sc::_DOT::buried, core::scoring::sc::_DOT::coor, protocols::hybridization::r2, and core::scoring::sc::MolecularSurfaceCalculator::settings.

Referenced by TrimPeripheralBand().

Member Data Documentation

bool core::scoring::sc::ShapeSimilarityCalculator::median

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