ProSHADE: ProSHADE_internal_spheres Namespace Reference

| ProSHADE 0.7.5.4 (MAR 2021) Protein Shape Detection

Classes | Functions
ProSHADE_internal_spheres Namespace Reference

This namespace contains the structure and functions required for storing internal map projections onto a set of concentric spheres. More...

## Classes
class | ProSHADE_rotFun_sphere
| This class contains all inputed data for the rotation function angle-axis converted spheres. More...
class | ProSHADE_rotFun_spherePeakGroup
| This class contains peak groups detected in the rotation function mapped spheres. More...
class | ProSHADE_sphere
| This class contains all inputed and derived data for a single sphere. More...

## Functions
proshade_unsign | autoDetermineBandwidth (proshade_unsign circumference)
| This function determines the bandwidth for the spherical harmonics computation. More...
proshade_single | autoDetermineSphereDistances (proshade_single maxMapRange, proshade_single resolution)
| This function determines the sphere distances for sphere mapping. More...
proshade_unsign | autoDetermineIntegrationOrder (proshade_single maxMapRange, proshade_single sphereDist)
| This function determines the integration order for the between spheres integration. More...

## Detailed Description

This namespace contains the structure and functions required for storing internal map projections onto a set of concentric spheres.

The ProSHADE_internal_spheres namespace contains the the structure and functions required to map the internal map data onto a set of concentric spheres as required by ProSHADE. It also has the ability to store sphere specific versions of the values such as bandwidth and angular resolution, as well as the functionality for computing spherical harmonics. Finally, the automatic spherical harmonics computation variables determination function live here.

## Function Documentation

## ◆ autoDetermineBandwidth()

proshade_unsign ProSHADE_internal_spheres::autoDetermineBandwidth | ( | proshade_unsign | circumference | ) |

This function determines the bandwidth for the spherical harmonics computation.

This function is here to automstically determine the bandwidth to which the spherical harmonics computations should be done. It accomplishes this by setting it to half of the maximum circumference of the map/sphere, in indices as recommended by Kostelec and Rockmore (2007).

Parameters

  [in] | circumference | The maximum circumference of the map/sphere.

Definition at line 518 of file ProSHADE_spheres.cpp.

519 {
520 //================================================ Determine and return
521 if ( static_cast<proshade_unsign> ( std::ceil ( circumference / 2 ) ) % 2 == 0 )
522 {
523 return ( static_cast<proshade_unsign> ( std::ceil ( circumference / 2 ) ) );
524 }
525 else
526 {
527 return ( static_cast<proshade_unsign> ( std::ceil ( circumference / 2 ) ) + 1 );
528 }
529 }

## ◆ autoDetermineIntegrationOrder()

proshade_unsign ProSHADE_internal_spheres::autoDetermineIntegrationOrder | ( | proshade_single | maxMapRange,
|  | proshade_single | sphereDist
| ) |  |

This function determines the integration order for the between spheres integration.

This function determines the order of the Gauss-Legendre integration which needs to be done between the spheres. To do this, it uses the pre-coputed values of maxium distance between integration points for each order and the maxium distance between spheres expressed as a fraction of the total.

Parameters

  [in] | maxMapRange | The maximum diagonal distance of the map in Angstroms.
  [in] | sphereDist | The distance between spheres.

Definition at line 564 of file ProSHADE_spheres.cpp.

565 {
566 //================================================ Initialise local variables
567 proshade_double sphereDistanceAsFractionOfTotal = static_cast<proshade_double> ( sphereDist ) / ( maxMapRange / 2.0 );
568 proshade_unsign ret = 0;
569
570 //================================================ Compare to precomputed values
571 for ( proshade_unsign iter = 2; iter < static_cast<proshade_unsign> ( 10000 ); iter++ )
572 {
573 if ( ProSHADE_internal_precomputedVals::glIntMaxDists[iter] >= sphereDistanceAsFractionOfTotal )
574 {
575 ret = iter;
576 }
577 }
578
579 //================================================ Return largest passing value
580 return ( ret );
581
582 }

## ◆ autoDetermineSphereDistances()

proshade_single ProSHADE_internal_spheres::autoDetermineSphereDistances | ( | proshade_single | maxMapRange,
|  | proshade_single | resolution
| ) |  |

This function determines the sphere distances for sphere mapping.

This function determines the distance between two consecutive spheres in the sphere mappin galgorithm. It sets it as the sampling rate (distance between any two map points). It then checks that there will be at least 10 spheres and if not, it changes the sphere distance until at least 10 spheres are to be produced.

Parameters

  [in] | maxMapRange | The maximum diagonal distance of the map in Angstroms.
  [in] | resolution | The resolution to which the computations are to be done.

Definition at line 540 of file ProSHADE_spheres.cpp.

541 {
542 //================================================ Get starting point
543 proshade_single ret = static_cast<proshade_single> ( resolution / 2.0 );
544
545 //================================================ Make sure at least 10 shells will exist
546 while ( std::floor ( maxMapRange / ret ) < 10 )
547 {
548 ret /= 2.0;
549 }
550
551 //================================================ Done
552 return ( ret );
553 }