ProSHADE  0.7.6.1 (AUG 2021)
Protein Shape Detection
ProSHADE_distances.hpp File Reference

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

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_single 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, int 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.6.1
Date
AUG 2021

Definition in file ProSHADE_distances.hpp.