 |
ProSHADE
0.7.6.6 (JUL 2022)
Protein Shape Detection
|
Go to the documentation of this file.
27 #ifndef PROSHADE_DISTANCES
28 #define PROSHADE_DISTANCES
43 bool isBandWithinShell ( proshade_unsign bandInQuestion, proshade_unsign shellInQuestion,
47 proshade_unsign minCommonShells, std::vector<proshade_double>* bandDists );
48 void allocateTrSigmaWorkspace ( proshade_unsign minSpheres, proshade_unsign intOrder, proshade_double*& obj1Vals, proshade_double*& obj2Vals,
49 proshade_double*& GLabscissas, proshade_double*& glWeights, proshade_complex*& radiiVals );
51 proshade_unsign radius, proshade_double* result );
53 int bandIter,
int orderIter, proshade_complex* radiiVals,
int integOrder,
54 proshade_double* abscissas, proshade_double* weights, proshade_double integRange, proshade_double sphereDist );
56 int bandIter,
int orderIter, proshade_double* obj1Vals, proshade_double* obj2Vals,
57 int integOrder, proshade_double* abscissas, proshade_double* weights, proshade_single sphereDist );
58 void releaseTrSigmaWorkspace ( proshade_double*& obj1Vals, proshade_double*& obj2Vals, proshade_double*& GLabscissas,
59 proshade_double*& glWeights, proshade_complex*& radiiVals );
67 void allocateInvSOFTWorkspaces ( proshade_complex*& work1, proshade_complex*& work2, proshade_double*& work3, proshade_unsign band );
68 void prepareInvSOFTPlan ( fftw_plan* inverseSO3,
int band, fftw_complex* work1, proshade_complex* invCoeffs );
69 void releaseInvSOFTMemory ( proshade_complex*& work1, proshade_complex*& work2, proshade_double*& work3 );
void normaliseEMatrices(ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
This function normalises the E matrices.
void 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 desc...
void computeEMatricesForLM(ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, int bandIter, int orderIter, proshade_complex *radiiVals, int 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 int...
proshade_double computeRotationFunctionDescriptor(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.
This class contains all inputed and derived data for a single structure.
void prepareInvSOFTPlan(fftw_plan *inverseSO3, int band, fftw_complex *work1, proshade_complex *invCoeffs)
This function prepares the FFTW plan for the inverse SO(3) transform.
void releaseInvSOFTMemory(proshade_complex *&work1, proshade_complex *&work2, proshade_double *&work3)
This function releases the memory used for computation of the inverse SOFT transform.
bool 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.
This class contains all inputed and derived data for a single sphere.
This namespace contains the functions used for computing distances between two structures as represen...
void 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.
void generateSO3CoeffsFromEMatrices(ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
This function converts the E matrices to SO(3) coefficients.
This class stores all the settings and is passed to the executive classes instead of a multitude of p...
void 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.
proshade_double 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.
void computeInverseSOFTTransform(ProSHADE_internal_data::ProSHADE_data *obj2, ProSHADE_settings *settings)
This function computes the inverse SO(3) transform.
proshade_double computeWeightsForEMatricesForLM(ProSHADE_internal_data::ProSHADE_data *obj1, ProSHADE_internal_data::ProSHADE_data *obj2, int bandIter, int orderIter, proshade_double *obj1Vals, proshade_double *obj2Vals, int 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...
void 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 descri...
void computeSphericalHarmonicsMagnitude(ProSHADE_internal_data::ProSHADE_data *obj, int band, int order, proshade_unsign radius, proshade_double *result)
This function computes the magnitude of a particular spherical harmonics position for a given object,...
void 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.
proshade_double 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.
This header declares the functions required to compute the Wigner D matrices.