ProSHADE: src/proshade/ProSHADE_distances.hpp File Reference

| ProSHADE 0.7.5.4 (MAR 2021) Protein Shape Detection

Namespaces | Functions
ProSHADE_distances.hpp File Reference

This is the header file containing declarations of functions required for computation of shape distances. More...

`#include "ProSHADE_wignerMatrices.hpp"`

Go to the source code of this file.

## Namespaces
| ProSHADE_internal_distances
| This namespace contains the functions used for computing distances between two structures as represented by the ProSHADE_data class.

## Functions
proshade_double | ProSHADE_internal_distances::computeEnergyLevelsDescriptor (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function computes the energy levels descriptor value between two objects. More...
bool | ProSHADE_internal_distances::isBandWithinShell (proshade_unsign bandInQuestion, proshade_unsign shellInQuestion, ProSHADE_internal_spheres::ProSHADE_sphere **spheres)
| This function checks if a band is available for a given shell. More...
void | ProSHADE_internal_distances::computeRRPPearsonCoefficients (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings, proshade_unsign minCommonBands, proshade_unsign minCommonShells, std::vector< proshade_double > *bandDists)
| This function gets the Pearson's coefficients or all bands between two objects. More...
void | ProSHADE_internal_distances::allocateTrSigmaWorkspace (proshade_unsign minSpheres, proshade_unsign intOrder, proshade_double *&obj1Vals, proshade_double *&obj2Vals, proshade_double *&GLabscissas, proshade_double *&glWeights, proshade_complex *&radiiVals)
| This helper function is responsible for allocating the workspace memory required for trace sigma descriptor computation. More...
void | ProSHADE_internal_distances::computeSphericalHarmonicsMagnitude (ProSHADE_internal_data::ProSHADE_data *obj, proshade_unsign band, proshade_unsign order, proshade_unsign radius, proshade_double *result)
| This function computes the magnitude of a particular spherical harmonics position for a given object, weighting it by the radius^2 (for integration). More...
void | ProSHADE_internal_distances::computeEMatricesForLM (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, proshade_unsign bandIter, proshade_unsign orderIter, proshade_complex *radiiVals, proshade_unsign integOrder, proshade_double *abscissas, proshade_double *weights, proshade_double integRange, proshade_double sphereDist)
| This function computes the E matrix un-weighted values for a given band and order and saves these into the obj2 parameter. More...
proshade_double | ProSHADE_internal_distances::computeWeightsForEMatricesForLM (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, proshade_unsign bandIter, proshade_unsign orderIter, proshade_double *obj1Vals, proshade_double *obj2Vals, proshade_unsign integOrder, proshade_double *abscissas, proshade_double *weights, proshade_double sphereDist)
| This function computes the E matrix weight values for a given band and order and saves these into the appropriate objects. More...
void | ProSHADE_internal_distances::releaseTrSigmaWorkspace (proshade_double *&obj1Vals, proshade_double *&obj2Vals, proshade_double *&GLabscissas, proshade_double *&glWeights, proshade_complex *&radiiVals)
| This helper function is responsible for deleting the workspace memory required for trace sigma descriptor computation. More...
void | ProSHADE_internal_distances::computeEMatrices (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function computes the complete E matrices and their weights between any two objects. More...
void | ProSHADE_internal_distances::normaliseEMatrices (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function normalises the E matrices. More...
proshade_double | ProSHADE_internal_distances::computeTraceSigmaDescriptor (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function computes the trace sigma descriptor value between two objects. More...
void | ProSHADE_internal_distances::generateSO3CoeffsFromEMatrices (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function converts the E matrices to SO(3) coefficients. More...
void | ProSHADE_internal_distances::allocateInvSOFTWorkspaces (proshade_complex *&work1, proshade_complex *&work2, proshade_double *&work3, proshade_unsign band)
| This function allocates the workspaces required to compute the inverse SOFT transform. More...
void | ProSHADE_internal_distances::prepareInvSOFTPlan (fftw_plan *inverseSO3, proshade_unsign band, fftw_complex *work1, proshade_complex *invCoeffs)
| This function prepares the FFTW plan for the inverse SO(3) transform. More...
void | ProSHADE_internal_distances::releaseInvSOFTMemory (proshade_complex *&work1, proshade_complex *&work2, proshade_double *&work3)
| This function releases the memory used for computation of the inverse SOFT transform. More...
void | ProSHADE_internal_distances::computeInverseSOFTTransform (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function computes the inverse SO(3) transform. More...
proshade_double | ProSHADE_internal_distances::computeRotationunctionDescriptor (ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
| This function computes the rotation function descriptor value between two objects. More...

## Detailed Description

This is the header file containing declarations of functions required for computation of shape distances.

This header file contains the declarations of functions required to compute shape distances (specifically energy levels distances, trace sigma distances and the full rotation function distances) between two shapes. The user should not need to access these functions directly, as there are automated functions available in the higher levels of the ProSHADE organisation, which will call these in correct order and parse the results properly.

Copyright by Michal Tykac and individual contributors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3) Neither the name of Michal Tykac nor the names of this code's contributors may be used to endorse or promote products derived from this software without specific prior written permission.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limitted to, the implied warranties of merchantibility and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or the contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limitted to, procurement of substitute goods or services, loss of use, data or profits, or business interuption) however caused and on any theory of liability, whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

Author
  Michal Tykac
  Garib N. Murshudov

Version
  0.7.5.4

Date
  MAR 2021

Definition in file ProSHADE_distances.hpp.