![]() |
ProSHADE
0.7.5.3 (FEB 2021)
Protein Shape Detection
|
This class contains all inputed and derived data for a single structure. More...
#include <ProSHADE_data.hpp>
Public Member Functions | |
ProSHADE_data (ProSHADE_settings *settings) | |
Constructor for getting empty ProSHADE_data class. More... | |
ProSHADE_data (ProSHADE_settings *settings, std::string strName, double *mapVals, int len, proshade_single xDmSz, proshade_single yDmSz, proshade_single zDmSz, proshade_unsign xDmInd, proshade_unsign yDmInd, proshade_unsign zDmInd, proshade_signed xFr, proshade_signed yFr, proshade_signed zFr, proshade_signed xT, proshade_signed yT, proshade_signed zT, proshade_unsign inputO) | |
Constructor for creating ProSHADE_data structure with data. More... | |
~ProSHADE_data (void) | |
Destructor for the ProSHADE_data class. More... | |
void | readInStructure (std::string fName, proshade_unsign inputO, ProSHADE_settings *settings) |
This function initialises the basic ProSHADE_data variables and reads in a single structure. More... | |
void | writeMap (std::string fName, std::string title="Created by ProSHADE and written by GEMMI", int mode=2) |
Function for writing out the internal structure representation in MRC MAP format. More... | |
void | writePdb (std::string fName, proshade_double euA=0.0, proshade_double euB=0.0, proshade_double euG=0.0, proshade_double trsX=0.0, proshade_double trsY=0.0, proshade_double trsZ=0.0, bool firstModel=true) |
This function writes out the PDB formatted file coresponding to the structure so that its COM is at specific position. More... | |
void | writeMask (std::string fName, proshade_double *mask) |
Function for writing out a mask in MRC MAP format. More... | |
void | invertMirrorMap (ProSHADE_settings *settings) |
Function for inverting the map to its mirror image. More... | |
void | normaliseMap (ProSHADE_settings *settings) |
Function for normalising the map values to mean 0 and sd 1.. More... | |
void | maskMap (ProSHADE_settings *settings) |
Function for computing the map mask using blurring and X IQRs from median. More... | |
void | getReBoxBoundaries (ProSHADE_settings *settings, proshade_signed *&ret) |
This function finds the boundaries enclosing positive map values and adds some extra space. More... | |
void | createNewMapFromBounds (ProSHADE_settings *settings, ProSHADE_data *&newStr, proshade_signed *newBounds) |
This function creates a new structure from the calling structure and new bounds values. More... | |
void | reSampleMap (ProSHADE_settings *settings) |
This function changes the internal map sampling to conform to particular resolution value. More... | |
void | centreMapOnCOM (ProSHADE_settings *settings) |
This function shits the map so that its COM is in the centre of the map. More... | |
void | addExtraSpace (ProSHADE_settings *settings) |
This function increases the size of the map so that it can add empty space around it. More... | |
void | removePhaseInormation (ProSHADE_settings *settings) |
This function removes phase from the map, effectively converting it to Patterson map. More... | |
void | processInternalMap (ProSHADE_settings *settings) |
This function simply clusters several other functions which should be called together. More... | |
void | getSpherePositions (ProSHADE_settings *settings) |
This function determines the sphere positions (radii) for sphere mapping. More... | |
void | mapToSpheres (ProSHADE_settings *settings) |
This function converts the internal map onto a set of concentric spheres. More... | |
void | computeSphericalHarmonics (ProSHADE_settings *settings) |
This function computes the spherical harmonics decomposition for the whole structure. More... | |
bool | shellBandExists (proshade_unsign shell, proshade_unsign bandVal) |
This function checks if particular shell has a particular band. More... | |
void | computeRRPMatrices (ProSHADE_settings *settings) |
This function pre-computes the RRP matrices for a data object. More... | |
void | allocateEMatrices (ProSHADE_settings *settings, proshade_unsign band) |
This function allocates the required memory for the E matrices. More... | |
void | allocateSO3CoeffsSpace (proshade_unsign band) |
This function allocates the memory for the SO(3) coefficients and the inverse for that calling object. More... | |
void | allocateWignerMatricesSpace (ProSHADE_settings *settings) |
This function allocates the memory for the Wigner matrices for the calling object. More... | |
void | computeRotationFunction (ProSHADE_settings *settings) |
This function computes the self-rotation function for this structure. More... | |
void | convertRotationFunction (ProSHADE_settings *settings) |
This function converts the self-rotation function of this structure to angle-axis representation. More... | |
void | getRealEMatrixValuesForLM (proshade_signed band, proshade_signed order1, double *eMatsLMReal, int len) |
This function fills the input array with the real E matrix values for particular band and order1 (l as opposed to l'). More... | |
void | getImagEMatrixValuesForLM (proshade_signed band, proshade_signed order1, double *eMatsLMImag, int len) |
This function fills the input array with the imaginary E matrix values for particular band and order1 (l as opposed to l'). More... | |
void | getRealSO3Coeffs (double *so3CoefsReal, int len) |
This function fills the input array with the real SO(3) coefficient values. More... | |
void | getImagSO3Coeffs (double *so3CoefsImag, int len) |
This function fills the input array with the imaginary SO(3) coefficient values. More... | |
void | getRealRotFunction (double *rotFunReal, int len) |
This function fills the input array with the real rotation function values. More... | |
void | getImagRotFunction (double *rotFunImag, int len) |
This function fills the input array with the imaginary rotation function values. More... | |
void | getRealTranslationFunction (double *trsFunReal, int len) |
This function fills the input array with the real translation function values. More... | |
void | getImagTranslationFunction (double *trsFunImag, int len) |
This function fills the input array with the imaginary translation function values. More... | |
void | getRotMatrixFromRotFunInds (proshade_signed aI, proshade_signed bI, proshade_signed gI, double *rotMat, int len) |
This function takes rotation function indices, converts them to Euler angles and these to rotation matrix, which it then returns. More... | |
int | so3CoeffsArrayIndex (proshade_signed order1, proshade_signed order2, proshade_signed band) |
This function gets the SO(3) coefficients array index for a particular so(3) band, order1 and order2 position. More... | |
std::vector< proshade_double * > | getCyclicSymmetriesList (ProSHADE_settings *settings) |
This function obtains a list of all C symmetries from already computed self-rotation map. More... | |
std::vector< proshade_double * > | getDihedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function obtains a list of all D symmetries from already computed C symmetries list. More... | |
std::vector< proshade_double * > | getTetrahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function obtains a list of all T symmetry axes from the already computed C symmetries list. More... | |
std::vector< proshade_double * > | getOctahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function obtains a list of all O symmetry axes from the already computed C symmetries list. More... | |
std::vector< proshade_double * > | getIcosahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function obtains a list of all I symmetry axes from the already computed C symmetries list. More... | |
std::vector< proshade_double * > | getPredictedIcosahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function predicts a list of all I symmetry axes from the already computed C symmetries list. More... | |
std::vector< proshade_double * > | getPredictedOctahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function predicts a list of all O symmetry axes from the already computed C symmetries list. More... | |
std::vector< proshade_double * > | getPredictedTetrahedralSymmetriesList (ProSHADE_settings *settings, std::vector< proshade_double * > *CSymList) |
This function predicts a list of all T symmetry axes from the already computed C symmetries list. More... | |
void | detectSymmetryInStructure (ProSHADE_settings *settings, std::vector< proshade_double * > *axes, std::vector< std::vector< proshade_double > > *allCs) |
This function runs the symmetry detection algorithms on this structure and saves the results in the settings object. More... | |
void | detectSymmetryInStructurePython (ProSHADE_settings *settings) |
This function runs the symmetry detection algorithms on this structure saving the axes in the settings object only. More... | |
void | detectSymmetryFromAngleAxisSpace (ProSHADE_settings *settings, std::vector< proshade_double * > *axes, std::vector< std::vector< proshade_double > > *allCs) |
This function runs the symmetry detection algorithms on this structure using the angle-axis space and saving the results in the settings object. More... | |
std::vector< proshade_double * > | getCyclicSymmetriesListFromAngleAxis (ProSHADE_settings *settings) |
This function obtains a list of all C symmetries from the angle-axis space mapped rotation function values. More... | |
std::vector< proshade_double * > | findRequestedCSymmetryFromAngleAxis (ProSHADE_settings *settings, proshade_unsign fold, proshade_double *peakThres) |
This function searches the angle-axis representation of the rotation function for a cyclic point group with given fold. More... | |
void | saveDetectedSymmetries (ProSHADE_settings *settings, std::vector< proshade_double * > *CSyms, std::vector< std::vector< proshade_double > > *allCs) |
This function takes the results of point group searches and saves then into the output variables. More... | |
std::string | getRecommendedSymmetryType (ProSHADE_settings *settings) |
This function simply returns the detected recommended symmetry type. More... | |
proshade_unsign | getRecommendedSymmetryFold (ProSHADE_settings *settings) |
This function simply returns the detected recommended symmetry fold. More... | |
proshade_unsign | getNoRecommendedSymmetryAxes (ProSHADE_settings *settings) |
This function returns the number of detected recommended symmetry axes. More... | |
std::vector< std::string > | getSymmetryAxis (ProSHADE_settings *settings, proshade_unsign axisNo) |
This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list. More... | |
proshade_double | findBestCScore (std::vector< proshade_double * > *CSym, proshade_unsign *symInd) |
This function locates the best scoring C symmetry axis, returning the score and best symmetry index. More... | |
proshade_double | findBestDScore (std::vector< proshade_double * > *DSym, proshade_unsign *symInd) |
This function locates the best scoring D symmetry axis, returning the score and best symmetry index. More... | |
proshade_double | findTScore (std::vector< proshade_double * > *TSym) |
This function takes the list of tetrahedral axes and returns a score for deciding whether T symmetry should be recommended. More... | |
proshade_double | findOScore (std::vector< proshade_double * > *OSym) |
This function takes the list of octahedral axes and returns a score for deciding whether O symmetry should be recommended. More... | |
proshade_double | findIScore (std::vector< proshade_double * > *ISym) |
This function takes the list of icosahedral axes and returns a score for deciding whether I symmetry should be recommended. More... | |
void | saveRecommendedSymmetry (ProSHADE_settings *settings, std::vector< proshade_double * > *CSym, std::vector< proshade_double * > *DSym, std::vector< proshade_double * > *TSym, std::vector< proshade_double * > *OSym, std::vector< proshade_double * > *ISym, std::vector< proshade_double * > *axes) |
This function takes all the detected symmetry results and decides on which are to be recommended for this structure. More... | |
void | saveRequestedSymmetryC (ProSHADE_settings *settings, std::vector< proshade_double * > *CSym, std::vector< proshade_double * > *axes) |
This function takes the C symmetries and searched for the requested symmetry. More... | |
void | saveRequestedSymmetryD (ProSHADE_settings *settings, std::vector< proshade_double * > *DSym, std::vector< proshade_double * > *axes) |
This function takes the D symmetries and searched for the requested symmetry. More... | |
std::vector< std::vector< proshade_double > > | getAllGroupElements (ProSHADE_settings *settings, std::vector< proshade_unsign > axesList, std::string groupType="", proshade_double matrixTolerance=0.05) |
This function returns the group elements as rotation matrices of any defined point group. More... | |
void | reportSymmetryResults (ProSHADE_settings *settings) |
This function takes prints the report for symmetry detection. More... | |
void | getOverlayRotationFunction (ProSHADE_settings *settings, ProSHADE_internal_data::ProSHADE_data *obj2) |
This function computes the overlay rotation function (i.e. the correlation function in SO(3) space). More... | |
std::vector< proshade_double > | getBestRotationMapPeaksEulerAngles (ProSHADE_settings *settings) |
This function returns a vector of three floats, the three Euler angles of the best peak in the rotation map. More... | |
std::vector< proshade_double > | getBestTranslationMapPeaksAngstrom (ProSHADE_internal_data::ProSHADE_data *staticStructure, proshade_double eulA, proshade_double eulB, proshade_double eulG) |
This function gets the optimal translation vector and returns it as a standard library vector. It also applies the translation to the internal map. More... | |
void | zeroPaddToDims (proshade_unsign xDim, proshade_unsign yDim, proshade_unsign zDim) |
This function changes the size of a structure to fit the supplied new limits. More... | |
void | rotateMap (ProSHADE_settings *settings, proshade_double eulerAlpha, proshade_double eulerBeta, proshade_double eulerGamma) |
This function rotates a map based on the given Euler angles. More... | |
void | translateMap (ProSHADE_settings *settings, proshade_double trsX, proshade_double trsY, proshade_double trsZ) |
This function simply translates the map by a given number of Angstroms along the three axes. More... | |
void | allocateRotatedSHMemory (ProSHADE_settings *settings) |
This function allocates the memory required for storing the rotated Spherical Harmonics coefficients. More... | |
void | computeRotatedSH (ProSHADE_settings *settings) |
This function multiplies the objects spherical harmonics with the Wigner D matrices, obtaining rotated spherical harmonics coefficients. More... | |
void | invertSHCoefficients (void) |
This function computes the shell mapped data from inverting the Spherical Harmonics coefficients. More... | |
void | interpolateMapFromSpheres (ProSHADE_settings *settings, proshade_double *&densityMapRotated) |
This function interpolates the density map from the sphere mapped data. More... | |
void | computeTranslationMap (ProSHADE_internal_data::ProSHADE_data *obj1) |
This function does the computation of the translation map and saves results internally. More... | |
void | findMapCOM (void) |
This function finds the centre of mass of the internal map representation. More... | |
void | computePdbRotationCentre (void) |
This function computes the optimal rotation centre for co-ordinates. More... | |
void | computeOptimalTranslation (proshade_double eulA, proshade_double eulB, proshade_double eulG, proshade_double trsX, proshade_double trsY, proshade_double trsZ) |
This function computes and saves the optimal translation vector from the already determined translation function results. More... | |
void | writeOutOverlayFiles (ProSHADE_settings *settings, proshade_double eulA, proshade_double eulB, proshade_double eulG, std::vector< proshade_double > *rotCentre, std::vector< proshade_double > *ultimateTranslation) |
This function writes out the rotated map, co-ordinates and transformation JSON file. More... | |
void | reportOverlayResults (ProSHADE_settings *settings, std::vector< proshade_double > *rotationCentre, std::vector< proshade_double > *eulerAngles, std::vector< proshade_double > *finalTranslation) |
This function reports the results of the overlay mode. More... | |
void | deepCopyMap (proshade_double *&saveTo, proshade_unsign verbose) |
This function copies the internal map into the supplied pointer, which it also allocates. More... | |
proshade_double | getMapValue (proshade_unsign pos) |
This function returns the internal map representation value of a particular array position. More... | |
proshade_unsign | getMaxSpheres (void) |
This function returns the number of spheres which contain the whole object. More... | |
proshade_unsign | getMaxBand (void) |
This function returns the maximum band value for the object. More... | |
proshade_double * | getRealSphHarmValue (proshade_unsign band, proshade_unsign order, proshade_unsign shell) |
This function allows access to the private internal real spherical harmonics values. More... | |
proshade_double * | getImagSphHarmValue (proshade_unsign band, proshade_unsign order, proshade_unsign shell) |
This function allows access to the private internal imaginary spherical harmonics values. More... | |
proshade_double | getRRPValue (proshade_unsign band, proshade_unsign sh1, proshade_unsign sh2) |
This function allows access to the priva internal RRP matrices. More... | |
proshade_double | getAnySphereRadius (proshade_unsign shell) |
This function allows access to the radius of any particular sphere. More... | |
proshade_double | getIntegrationWeight (void) |
This function allows access to the integration weight for the object. More... | |
proshade_unsign | getShellBandwidth (proshade_unsign shell) |
This function allows access to the bandwidth of a particular shell. More... | |
proshade_double | getSpherePosValue (proshade_unsign shell) |
This function allows access to sphere positions. More... | |
proshade_complex ** | getEMatrixByBand (proshade_unsign band) |
This function allows access to E matrix for a particular band. More... | |
void | getEMatrixValue (proshade_unsign band, proshade_unsign order1, proshade_unsign order2, proshade_double *valueReal, proshade_double *valueImag) |
This function allows access to E matrix by knowing the band, order1 and order2 indices. More... | |
proshade_complex * | getInvSO3Coeffs (void) |
This function allows access to the inverse SO(3) coefficients array. More... | |
proshade_complex * | getSO3Coeffs (void) |
This function allows access to the SO(3) coefficients array. More... | |
proshade_unsign | getComparisonBand (void) |
This function allows access to the maximum band for the comparison. More... | |
void | getWignerMatrixValue (proshade_unsign band, proshade_unsign order1, proshade_unsign order2, proshade_double *valueReal, proshade_double *valueImag) |
This function allows access to the Wigner D matrix by knowing the band, order1 and order2 indices. More... | |
proshade_single | getXDimSize (void) |
This function allows access to the map size in angstroms along the X axis. More... | |
proshade_single | getYDimSize (void) |
This function allows access to the map size in angstroms along the Y axis. More... | |
proshade_single | getZDimSize (void) |
This function allows access to the map size in angstroms along the Z axis. More... | |
proshade_unsign | getXDim (void) |
This function allows access to the map size in indices along the X axis. More... | |
proshade_unsign | getYDim (void) |
This function allows access to the map size in indices along the Y axis. More... | |
proshade_unsign | getZDim (void) |
This function allows access to the map size in indices along the Z axis. More... | |
proshade_signed * | getXFromPtr (void) |
This function allows access to the map start along the X axis. More... | |
proshade_signed * | getYFromPtr (void) |
This function allows access to the map start along the Y axis. More... | |
proshade_signed * | getZFromPtr (void) |
This function allows access to the map start along the Z axis. More... | |
proshade_signed * | getXToPtr (void) |
This function allows access to the map last position along the X axis. More... | |
proshade_signed * | getYToPtr (void) |
This function allows access to the map last position along the Y axis. More... | |
proshade_signed * | getZToPtr (void) |
This function allows access to the map last position along the Z axis. More... | |
proshade_signed * | getXAxisOrigin (void) |
This function allows access to the map X axis origin value. More... | |
proshade_signed * | getYAxisOrigin (void) |
This function allows access to the map Y axis origin value. More... | |
proshade_signed * | getZAxisOrigin (void) |
This function allows access to the map Z axis origin value. More... | |
proshade_double *& | getInternalMap (void) |
This function allows access to the first map array value address. More... | |
proshade_complex * | getTranslationFnPointer (void) |
This function allows access to the translation function through a pointer. More... | |
void | setIntegrationWeight (proshade_double intW) |
This function allows setting the integration weight for the object. More... | |
void | setIntegrationWeightCumul (proshade_double intW) |
This function allows setting the cumulative integration weight for the object. More... | |
void | setEMatrixValue (proshade_unsign band, proshade_unsign order1, proshade_unsign order2, proshade_complex val) |
This function allows setting the E matrix value. More... | |
void | normaliseEMatrixValue (proshade_unsign band, proshade_unsign order1, proshade_unsign order2, proshade_double normF) |
This function allows normalising the E matrix value. More... | |
void | setSO3CoeffValue (proshade_unsign position, proshade_complex val) |
This function allows setting the SOFT coefficient values using array position and value. More... | |
void | setWignerMatrixValue (proshade_complex val, proshade_unsign band, proshade_unsign order1, proshade_unsign order2) |
This function allows setting the Wigner D matrix value by its band, order1 and order2 co-ordinate. More... | |
Public Attributes | |
std::string | fileName |
This is the original file from which the data were obtained. | |
ProSHADE_internal_io::InputType | fileType |
This is the type of the input file. | |
proshade_double * | internalMap |
The internal map data representation, which may be amended as the run progresses. | |
proshade_single | xDimSize |
This is the size of the map cell x dimension in Angstroms. | |
proshade_single | yDimSize |
This is the size of the map cell y dimension in Angstroms. | |
proshade_single | zDimSize |
This is the size of the map cell z dimension in Angstroms. | |
proshade_single | aAngle |
This is the angle a of the map cell in degrees. | |
proshade_single | bAngle |
This is the angle b of the map cell in degrees. | |
proshade_single | cAngle |
This is the angle c of the map cell in degrees. | |
proshade_unsign | xDimIndices |
This is the size of the map cell x dimension in indices. | |
proshade_unsign | yDimIndices |
This is the size of the map cell y dimension in indices. | |
proshade_unsign | zDimIndices |
This is the size of the map cell z dimension in indices. | |
proshade_unsign | xGridIndices |
As far as I know, this is identical to the xDimIndices. | |
proshade_unsign | yGridIndices |
As far as I know, this is identical to the yDimIndices. | |
proshade_unsign | zGridIndices |
As far as I know, this is identical to the zDimIndices. | |
proshade_unsign | xAxisOrder |
This is the order of the x axis. | |
proshade_unsign | yAxisOrder |
This is the order of the y axis. | |
proshade_unsign | zAxisOrder |
This is the order of the z axis. | |
proshade_signed | xAxisOrigin |
This is the origin position along the x axis. | |
proshade_signed | yAxisOrigin |
This is the origin position along the y axis. | |
proshade_signed | zAxisOrigin |
This is the origin position along the z axis. | |
proshade_double | xCom |
The COM of the map after processing along the X-axis. | |
proshade_double | yCom |
The COM of the map after processing along the Y-axis. | |
proshade_double | zCom |
The COM of the map after processing along the Z-axis. | |
proshade_single | xDimSizeOriginal |
This is the size of the map cell x dimension in Angstroms. | |
proshade_single | yDimSizeOriginal |
This is the size of the map cell y dimension in Angstroms. | |
proshade_single | zDimSizeOriginal |
This is the size of the map cell z dimension in Angstroms. | |
proshade_unsign | xDimIndicesOriginal |
This is the size of the map cell x dimension in indices. | |
proshade_unsign | yDimIndicesOriginal |
This is the size of the map cell y dimension in indices. | |
proshade_unsign | zDimIndicesOriginal |
This is the size of the map cell z dimension in indices. | |
proshade_signed | xAxisOriginOriginal |
This is the origin position along the x axis. | |
proshade_signed | yAxisOriginOriginal |
This is the origin position along the y axis. | |
proshade_signed | zAxisOriginOriginal |
This is the origin position along the z axis. | |
proshade_double | originalMapXCom |
The COM of the first map to be loaded/computed without any furhter changes being reflacted along the X axis. | |
proshade_double | originalMapYCom |
The COM of the first map to be loaded/computed without any furhter changes being reflacted along the Y axis. | |
proshade_double | originalMapZCom |
The COM of the first map to be loaded/computed without any furhter changes being reflacted along the Z axis. | |
proshade_double | mapMovFromsChangeX |
When the map is translated, the xFrom and xTo values are changed. This variable holds how much they have changed. | |
proshade_double | mapMovFromsChangeY |
When the map is translated, the yFrom and yTo values are changed. This variable holds how much they have changed. | |
proshade_double | mapMovFromsChangeZ |
When the map is translated, the zFrom and zTo values are changed. This variable holds how much they have changed. | |
proshade_double | mapCOMProcessChangeX |
The change in X axis between the creation of the structure (originalMapXCom) and just before rotation. | |
proshade_double | mapCOMProcessChangeY |
The change in Y axis between the creation of the structure (originalMapYCom) and just before rotation. | |
proshade_double | mapCOMProcessChangeZ |
The change in Z axis between the creation of the structure (originalMapZCom) and just before rotation. | |
proshade_double | originalPdbRotCenX |
The centre of rotation as it relates to the original PDB positions (and not the ProSHADE internal map) along the x-axis. | |
proshade_double | originalPdbRotCenY |
The centre of rotation as it relates to the original PDB positions (and not the ProSHADE internal map) along the y-axis. | |
proshade_double | originalPdbRotCenZ |
The centre of rotation as it relates to the original PDB positions (and not the ProSHADE internal map) along the z-axis. | |
proshade_double | originalPdbTransX |
The optimal translation vector as it relates to the original PDB positions (and not the ProSHADE internal map) along the x-axis. | |
proshade_double | originalPdbTransY |
The optimal translation vector as it relates to the original PDB positions (and not the ProSHADE internal map) along the y-axis. | |
proshade_double | originalPdbTransZ |
The optimal translation vector as it relates to the original PDB positions (and not the ProSHADE internal map) along the z-axis. | |
proshade_signed | xFrom |
This is the starting index along the x axis. | |
proshade_signed | yFrom |
This is the starting index along the y axis. | |
proshade_signed | zFrom |
This is the starting index along the z axis. | |
proshade_signed | xTo |
This is the final index along the x axis. | |
proshade_signed | yTo |
This is the final index along the y axis. | |
proshade_signed | zTo |
This is the final index along the z axis. | |
std::vector< proshade_single > | spherePos |
Vector of sphere radii from the centre of the map. | |
proshade_unsign | noSpheres |
The number of spheres with map projected onto them. | |
ProSHADE_internal_spheres::ProSHADE_sphere ** | spheres |
The set of concentric spheres to which the intermal density map has been projected. | |
proshade_complex ** | sphericalHarmonics |
A set of spherical harmonics values arrays for each sphere. | |
proshade_complex ** | rotSphericalHarmonics |
A set of rotated spherical harmonics values arrays for each sphere, used only if map rotation is required. | |
proshade_unsign | maxShellBand |
The maximum band for any shell of the object. | |
proshade_double *** | rrpMatrices |
The energy levels descriptor shell correlation tables. | |
proshade_complex *** | eMatrices |
The trace sigma and full rotation function c*conj(c) integral tables. | |
proshade_double | integrationWeight |
The Pearson's c.c. type weighting for the integration. | |
proshade_complex * | so3Coeffs |
The coefficients obtained by SO(3) Fourier Transform (SOFT), in this case derived from the E matrices. | |
proshade_complex * | so3CoeffsInverse |
The inverse coefficients obtained by inverse SO(3) Fourier Transform (SOFT) - i.e. rotation function. | |
proshade_complex *** | wignerMatrices |
These matrices are computed for a particular rotation to be done in spherical harmonics. | |
proshade_unsign | maxCompBand |
The largest comparison band - this variable tells how large arrays will be allocated for the comparison. | |
proshade_complex * | translationMap |
This is where the translation map will be held, if at all used. | |
std::vector< ProSHADE_internal_spheres::ProSHADE_rotFun_sphere * > | sphereMappedRotFun |
bool | isEmpty |
This variable stated whether the class contains any information. | |
proshade_unsign | inputOrder |
This value is the input order - it is useful to know for writing out files, so that they would not overwrite the same name multiple times. | |
Protected Member Functions | |
void | figureIndexStartStop (void) |
Function for determining iterator start and stop positions. More... | |
void | setPDBMapValues (void) |
Function for determining iterator start and stop positions. More... | |
void | readInMAP (ProSHADE_settings *settings) |
Function for reading map data using gemmi library. More... | |
void | readInPDB (ProSHADE_settings *settings) |
Function for reading pdb data. More... | |
void | allocateRRPMemory (ProSHADE_settings *settings) |
This function allocates the required memory for the RRP matrices. More... | |
This class contains all inputed and derived data for a single structure.
This class codes the object that contains all the information about the input data and the derived information as well. It does not, however, provide the computation code as that lives elsewhere, except for the forward declarations.
Definition at line 48 of file ProSHADE_data.hpp.
ProSHADE_internal_data::ProSHADE_data::ProSHADE_data | ( | ProSHADE_settings * | settings | ) |
Constructor for getting empty ProSHADE_data class.
This constructor creates an empty data structure which can later be filled with data and used to process these data further.
[in] | settings | ProSHADE_settings object specifying what should be done. |
[out] | X | Empty data object with deault values. |
Definition at line 39 of file ProSHADE_data.cpp.
ProSHADE_internal_data::ProSHADE_data::ProSHADE_data | ( | ProSHADE_settings * | settings, |
std::string | strName, | ||
double * | mapVals, | ||
int | len, | ||
proshade_single | xDmSz, | ||
proshade_single | yDmSz, | ||
proshade_single | zDmSz, | ||
proshade_unsign | xDmInd, | ||
proshade_unsign | yDmInd, | ||
proshade_unsign | zDmInd, | ||
proshade_signed | xFr, | ||
proshade_signed | yFr, | ||
proshade_signed | zFr, | ||
proshade_signed | xT, | ||
proshade_signed | yT, | ||
proshade_signed | zT, | ||
proshade_unsign | inputO | ||
) |
Constructor for creating ProSHADE_data structure with data.
This constructor creates a data structure with all the map information, so that maps obtained from other software could be loeaded and used. This function makes a lot of assumptions (all angles are 90 degrees, axis grids are equal to indices, axis order is XYZ and axis origin is the first index in all dimensions). If any of these are not true, the user is required to change the appropriate internal values after this function has returned the object.
[in] | settings | ProSHADE_settings object specifying what should be done. |
[in] | strName | The name of the structure for reference. |
[in] | mapVals | A pointer to array where all the map data are. |
[in] | len | The length of this map values array. |
[in] | xDmSz | The size of the x-axis dimension in Angstroms. |
[in] | yDmSz | The size of the y-axis dimension in Angstroms. |
[in] | zDmSz | The size of the z-axis dimension in Angstroms. |
[in] | xDmInd | The size of the x-axis dimension in indices. |
[in] | yDmInd | The size of the y-axis dimension in indices. |
[in] | zDmInd | The size of the z-axis dimension in indices. |
[in] | xFr | The first index statting position along the x-axis. |
[in] | yFr | The first index statting position along the y-axis. |
[in] | zFr | The first index statting position along the z-axis. |
[in] | xT | The last index end position along the x-axis. |
[in] | yT | The last index end position along the y-axis. |
[in] | zT | The last index end position along the z-axis. |
[in] | inputO | The input order for this structure. |
[out] | X | Empty data object with filled in values and map. |
Definition at line 160 of file ProSHADE_data.cpp.
ProSHADE_internal_data::ProSHADE_data::~ProSHADE_data | ( | void | ) |
Destructor for the ProSHADE_data class.
This destructor is responsible for releasing all memory used by the data storing object
[out] | X | N/A. |
Definition at line 295 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::addExtraSpace | ( | ProSHADE_settings * | settings | ) |
This function increases the size of the map so that it can add empty space around it.
This function adds a given number of angstroms (as given in the settings object) to the internal structure map. This requires all the internal variables to be adjusted for the extra space at the begginning and at the end, while also copying the map into a larger one with appropriate extra space.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1289 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::allocateEMatrices | ( | ProSHADE_settings * | settings, |
proshade_unsign | band | ||
) |
This function allocates the required memory for the E matrices.
This function belongs to the ProSHADE_data class and its role is to allocate the require memory for the E matrices required by both, the Trace Sigma and Full Rotational descriptors, as well as symmetry and rotation tasks.
[in] | settings | A pointer to settings class containing all the information required for the task. |
[in] | band | The minimal band of the comparison for which E matrices are computed. |
Definition at line 280 of file ProSHADE_distances.cpp.
void ProSHADE_internal_data::ProSHADE_data::allocateRotatedSHMemory | ( | ProSHADE_settings * | settings | ) |
This function allocates the memory required for storing the rotated Spherical Harmonics coefficients.
[in] | settings | The settings object specifying how exactly the rotation is to be done. |
Definition at line 818 of file ProSHADE_overlay.cpp.
|
protected |
This function allocates the required memory for the RRP matrices.
This function belongs to the ProSHADE_data class and its role is to allocate the require memory for the RRP matrices, given the already determined bandwidths and shell count.
[in] | settings | A pointer to settings class containing all the information required for the task. |
Definition at line 33 of file ProSHADE_distances.cpp.
void ProSHADE_internal_data::ProSHADE_data::allocateSO3CoeffsSpace | ( | proshade_unsign | band | ) |
This function allocates the memory for the SO(3) coefficients and the inverse for that calling object.
[in] | band | The bandwidth to which the computation will be done. |
Definition at line 680 of file ProSHADE_distances.cpp.
void ProSHADE_internal_data::ProSHADE_data::allocateWignerMatricesSpace | ( | ProSHADE_settings * | settings | ) |
This function allocates the memory for the Wigner matrices for the calling object.
[in] | settings | A pointer to settings class containing all the information required for the task. |
Definition at line 29 of file ProSHADE_wignerMatrices.cpp.
void ProSHADE_internal_data::ProSHADE_data::centreMapOnCOM | ( | ProSHADE_settings * | settings | ) |
This function shits the map so that its COM is in the centre of the map.
This function finds the Centre Of Mass (COM) for the internal map and proceeds to use Fourier to shift the COM to the centre of the map. There is an assumption that the COM and centre of map are close, as if they were far apart, the shift could move some part of the map through the boundaries and cause the map to become messy.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1228 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeOptimalTranslation | ( | proshade_double | eulA, |
proshade_double | eulB, | ||
proshade_double | eulG, | ||
proshade_double | trsX, | ||
proshade_double | trsY, | ||
proshade_double | trsZ | ||
) |
This function computes and saves the optimal translation vector from the already determined translation function results.
This function simply saves the determined optimal translation to the appropriate variable and does a simple modification to take into account any modifications that ProSHADE may have done to the internal map.
[in] | euA | The Euler angle alpha by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | euB | The Euler angle beta by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | euG | The Euler angle gamma by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | transX | The translation to be done along the X-axis in Angstroms. |
[in] | transY | The translation to be done along the Y-axis in Angstroms. |
[in] | transZ | The translation to be done along the Z-axis in Angstroms. |
Definition at line 109 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::computePdbRotationCentre | ( | void | ) |
This function computes the optimal rotation centre for co-ordinates.
This function computes the "visualisation world" (or co-ordinates space) position of the point about which the map was rotated, taking into account the internal ProSHADE map manipulations and other factors. By rotating the co-ordinates about this point, their position and orientation will be the same as the map position before translation function is computed.
Definition at line 68 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeRotatedSH | ( | ProSHADE_settings * | settings | ) |
This function multiplies the objects spherical harmonics with the Wigner D matrices, obtaining rotated spherical harmonics coefficients.
[in] | settings | The settings object specifying how exactly the rotation is to be done. |
Definition at line 848 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeRotationFunction | ( | ProSHADE_settings * | settings | ) |
This function computes the self-rotation function for this structure.
This function assumes that the spherical harmonics have been computed for a data object. It can be then called on this object and it will proceed to compute the E matrices for this object against itself. From these "self E matrices", the function will generate the SO(3) transform coefficients and finally it will invert transform these coefficients back, thus getting the self-rotation function.
[in] | settings | A pointer to settings class containing all the information required for map self-rotation function computation. |
Definition at line 34 of file ProSHADE_symmetry.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeRRPMatrices | ( | ProSHADE_settings * | settings | ) |
This function pre-computes the RRP matrices for a data object.
This function belongs to the ProSHADE_data class and its role is to set the objects internal variables properly and provide all the required calculations, so that the object will in the end have all the RRP matrices computed and be ready for the energy levels calculation.
[in] | settings | A pointer to settings class containing all the information required for the task. |
Definition at line 61 of file ProSHADE_distances.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeSphericalHarmonics | ( | ProSHADE_settings * | settings | ) |
This function computes the spherical harmonics decomposition for the whole structure.
This function is called to compute the spherical harmonics decomposition of the mapped data on every available sphere. This is done sphere-wise and there is some sub-optimal memory management stemming from different shells having different resolutions.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1542 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::computeTranslationMap | ( | ProSHADE_internal_data::ProSHADE_data * | staticStructure | ) |
This function does the computation of the translation map and saves results internally.
This function takes the static structure, the optimal translation to which should be found and then it proceeds to compute the Fourier transform of both this and the static structures. It then combines the coefficients for translation function and computes the inverse Fourier transform, thus obtaining the translation function. This function is then saved, while all other internal data are deleted.
[in] | staticStructure | A pointer to the data class object of the other ( static ) structure. |
Definition at line 389 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::convertRotationFunction | ( | ProSHADE_settings * | settings | ) |
This function converts the self-rotation function of this structure to angle-axis representation.
This function creates a set of concentric spheres in a spherical co-ordinates space, where the radius is the angle-axis representation angle and the lattitude and longitude angles are the angle-axis representation axis vector. I.e. each of the spheres contains all angle-axis representation axes for a single given angle.
Then, it proceeds to interpolate the rotation function for each point in this space, thus effectivelly re-sampling the rotation function onto the required space.
[in] | settings | A pointer to settings class containing all the information required for map self-rotation function computation. |
Definition at line 113 of file ProSHADE_symmetry.cpp.
void ProSHADE_internal_data::ProSHADE_data::createNewMapFromBounds | ( | ProSHADE_settings * | settings, |
ProSHADE_data *& | newStr, | ||
proshade_signed * | newBounds | ||
) |
This function creates a new structure from the calling structure and new bounds values.
This function takes a pointer to uninitialised structure and fills it with the calling structure values adjusted for the new bounds. If the bounds are the same, the two structures should be identical except the file (the new structure does not have an input file associated) and the type (no type for the new structure). It can deal with both larger and smaller bounds than the original values.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
[in] | newStr | A pointer reference to a new structure class which has all the same values except for the new bounds and adequately changed map. |
[in] | newBounds | A pointer to proshade_signed array of 6 storing the results - (0 = minX; 1 = maxX; 2 = minY; 3 = maxY; 4 - minZ; 5 = maxZ). |
Definition at line 1090 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::deepCopyMap | ( | proshade_double *& | saveTo, |
proshade_unsign | verbose | ||
) |
This function copies the internal map into the supplied pointer, which it also allocates.
This function is provided so that the user can provide a pointer and have it allocated and filled with the map values.
[in] | saveTo | A pointer where the internal map should be deep copied into. |
[in] | verbose | How loud the run should be? |
Definition at line 2749 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::detectSymmetryFromAngleAxisSpace | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | axes, | ||
std::vector< std::vector< proshade_double > > * | allCs | ||
) |
This function runs the symmetry detection algorithms on this structure using the angle-axis space and saving the results in the settings object.
This function firstly decides whether specific C symmetry was requested or not. This decision is important as knowing the required fold allows for a rather simplified algorithm to be applied. Thus, if specific fold is known, simplified algorithm will be used. Otherwise, this function will do a general search by firstly finding all cyclic point groups and then applying the dihedral, tetrahedral, octahedral and icosahedral searches.
Once complete, the function will save both, the vector of ProSHADE formatted array pointers as well as vector of vectors of doubles with the same information containing all detected cyclic point groups into the supplied vector pointers.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | axes | A vector to which all the axes of the recommended symmetry (if any) will be saved. |
[in] | allCs | A vector to which all the detected cyclic symmetries will be saved into. |
Definition at line 1707 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::detectSymmetryInStructure | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | axes, | ||
std::vector< std::vector< proshade_double > > * | allCs | ||
) |
This function runs the symmetry detection algorithms on this structure and saves the results in the settings object.
This function is the symmetry detection starting point. It decides whether a specific symmetry is being sought after, or whether a general symmetry search is required. Consequently, it calls the appropriate functions and ends up with saving the resulting predictions into the settings object supplied. It also saves all the detected symmetry groups to the settings object for further processing and programmatical access.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | axes | A vector to which all the axes of the recommended symmetry (if any) will be saved. |
[in] | allCs | A vector to which all the detected cyclic symmetries will be saved into. |
Definition at line 1587 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::detectSymmetryInStructurePython | ( | ProSHADE_settings * | settings | ) |
This function runs the symmetry detection algorithms on this structure saving the axes in the settings object only.
This function runs the detectSymmetryInStructure() function without requiring the vector of double pointers arguments, so that it is simply callable from Python. The axes are saved in the settings object for later retrieval.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
Definition at line 1684 of file ProSHADE_data.cpp.
|
protected |
Function for determining iterator start and stop positions.
This function is called to set the xFrom, yFrom, ..., yTo and zTo iterator values for easier further calculations. It assumes that gemmi has read in the xFrom, yFrom and zFrom values already.
Definition at line 719 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::findBestCScore | ( | std::vector< proshade_double * > * | CSym, |
proshade_unsign * | symInd | ||
) |
This function locates the best scoring C symmetry axis, returning the score and best symmetry index.
This function takes the list of detected C symmetries and decides which of them is the best, taking into account the folds and the average heights. This is not the best approach, I would look into MLE of symmetry presence givent the height and fold, but for now this should do.
[in] | CSym | This is the complete list of the ProSHADE detected C axes in the ProSHADE format. |
[in] | symInd | A pointer to variable where the best symmetry axis index will be stored. |
[out] | ret | The score of the best scoring C axis. |
Definition at line 1873 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::findBestDScore | ( | std::vector< proshade_double * > * | DSym, |
proshade_unsign * | symInd | ||
) |
This function locates the best scoring D symmetry axis, returning the score and best symmetry index.
This function takes the list of detected D symmetries and decides which of them is the best, taking into account the folds and the average heights. This is not the best approach, I would look into MLE of symmetry presence givent the height and folds, but for now this should do.
[in] | DSym | This is the complete list of the ProSHADE detected D axes in the ProSHADE format. |
[in] | symInd | A pointer to variable where the best symmetry axis index will be stored. |
[out] | ret | The score of the best scoring D axis. |
Definition at line 1917 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::findIScore | ( | std::vector< proshade_double * > * | ISym | ) |
This function takes the list of icosahedral axes and returns a score for deciding whether I symmetry should be recommended.
This function simply checks if the complete I symmetry is present (returning 0.0 if not). If present, the function will compute the fold weighted average axis height for the whole symmetry and return this number.
[in] | ISym | This is the complete list of the ProSHADE detected I symmetry axes in the ProSHADE format. |
[out] | ret | The score of the I symmetry. |
Definition at line 2031 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::findMapCOM | ( | void | ) |
This function finds the centre of mass of the internal map representation.
This function simply computes the centre of mass for the given ProSHADE_data object map in the "real space" (i.e. the space that counts Angstroms from the bottom left further corner). These are then saved into the ProSHADE_data object.
Definition at line 2863 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::findOScore | ( | std::vector< proshade_double * > * | OSym | ) |
This function takes the list of octahedral axes and returns a score for deciding whether O symmetry should be recommended.
This function simply checks if the complete O symmetry is present (returning 0.0 if not). If present, the function will compute the fold weighted average axis height for the whole symmetry and return this number.
[in] | OSym | This is the complete list of the ProSHADE detected O symmetry axes in the ProSHADE format. |
[out] | ret | The score of the O symmetry. |
Definition at line 1998 of file ProSHADE_data.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::findRequestedCSymmetryFromAngleAxis | ( | ProSHADE_settings * | settings, |
proshade_unsign | fold, | ||
proshade_double * | peakThres | ||
) |
This function searches the angle-axis representation of the rotation function for a cyclic point group with given fold.
This function is a simplification of the getCyclicSymmetriesListFromAngleAxis() function, where this function does not map the whole rotation function, but rothar only to the spheres it knows it will required. Moreover, it does not search for all cyclic point groups, but only those which span all the spheres (angles) and therefore have the required fold.
In terms of operations, this function interpolates the rotation function values onto the spheres it requires, then it finds peaks and removes the small peaks, so that these can then be grouped. For each group which spans all the angles it then finds the index with highest sum of peak height over all spheres. It can then do the bi-cubic interpolation if requested. Finally, all the detected peaks are sorted by the peak height and returned.
[in] | settings | ProSHADE_settings object containing all the settings for this run. |
[in] | fold | The fold which should be sought for by the function. |
[in] | peakThres | The threshold used to cut peaks. |
[out] | ret | Vector of double pointers to arrays having the standard ProSHADE symmetry group structure. |
Definition at line 3692 of file ProSHADE_symmetry.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::findTScore | ( | std::vector< proshade_double * > * | TSym | ) |
This function takes the list of tetrahedral axes and returns a score for deciding whether T symmetry should be recommended.
This function simply checks if the complete T symmetry is present (returning 0.0 if not). If present, the function will compute the fold weighted average axis height for the whole symmetry and return this number.
[in] | TSym | This is the complete list of the ProSHADE detected T symmetry axes in the ProSHADE format. |
[out] | ret | The score of the T symmetry. |
Definition at line 1965 of file ProSHADE_data.cpp.
std::vector< std::vector< proshade_double > > ProSHADE_internal_data::ProSHADE_data::getAllGroupElements | ( | ProSHADE_settings * | settings, |
std::vector< proshade_unsign > | axesList, | ||
std::string | groupType = "" , |
||
proshade_double | matrixTolerance = 0.05 |
||
) |
This function returns the group elements as rotation matrices of any defined point group.
This function generates a list of all point group elements for any group defined by a set of cyclic point groups. The set is supplied using the second parameter, where these need to be detected by ProSHADE first and then their index in the ProSHADE cyclic group detected list can be given here.
This function can generate appropriate elementes for all ProSHADE supported point group types (i.e. C, D, T, O and I) as well as for any supplied set of cyclic point groups (use the groupType value of "X").
Please note that the final set of point group elements will be checked for being a point group, i.e. for the fact that a product of any two members will be another already present member. If this condition is not met, error will be thrown. This poses some isses when the point group axes are slightly off, as this can lead to the point group check failing...
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | axesList | A vector of ints specifying which C axes from the full list are members of the group. |
[in] | groupType | An optional string specifying for which symmetry type the group elements are to be computed. Leave empty if you want to use the supplied axes without any questions being asked. |
[in] | matrixTolerance | The maximum allowed trace difference for two matrices to still be considered the same. |
[out] | val | A vector containing a vector of 9 doubles (rotation matrix) for each group element for the requested group. |
Definition at line 2487 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::getAnySphereRadius | ( | proshade_unsign | shell | ) |
This function allows access to the radius of any particular sphere.
[out] | X | The distance of the requested sphere to the centre of the coordinates. |
Definition at line 3089 of file ProSHADE_data.cpp.
std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::getBestRotationMapPeaksEulerAngles | ( | ProSHADE_settings * | settings | ) |
This function returns a vector of three floats, the three Euler angles of the best peak in the rotation map.
[in] | settings | A pointer to settings class containing all the information required for map overlay. |
[out] | val | A vector of the Euler angles of the best peak in the rotation function map. |
Definition at line 1228 of file ProSHADE_overlay.cpp.
std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::getBestTranslationMapPeaksAngstrom | ( | ProSHADE_internal_data::ProSHADE_data * | staticStructure, |
proshade_double | eulA, | ||
proshade_double | eulB, | ||
proshade_double | eulG | ||
) |
This function gets the optimal translation vector and returns it as a standard library vector. It also applies the translation to the internal map.
[in] | staticStructure | A pointer to the data class object of the other ( static ) structure. |
[out] | X | A vector of doubles with the optimal translation vector in Angstroms. |
Definition at line 308 of file ProSHADE_overlay.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getComparisonBand | ( | void | ) |
This function allows access to the maximum band for the comparison.
[out] | X | The bandwidth used for this comparison. |
Definition at line 3188 of file ProSHADE_data.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getCyclicSymmetriesList | ( | ProSHADE_settings * | settings | ) |
This function obtains a list of all C symmetries from already computed self-rotation map.
This function starts by finding all peaks in the self-rotation map, which are outliers in terms of height. It then proceeds to group these by the height, searching for C symmetries in each peak height group (thus making sure symmetries with higher peak heights are found first). The symmetry detection proceeds by detecting possible C symmetry folds and searching whether the all peaks are present to support the prospective C symmetry. If only few are missing, it will even search for the missing peaks. Finally, the function returns all detected symmetries in the order of decreasing average peak height.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
Definition at line 191 of file ProSHADE_symmetry.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getCyclicSymmetriesListFromAngleAxis | ( | ProSHADE_settings * | settings | ) |
This function obtains a list of all C symmetries from the angle-axis space mapped rotation function values.
This function oversees the full search for cyclic point groups in the self-rotation function. It starts with finding all prime numbers up to the user specified limit. It then checks for each of the prime numbers whether there is a cyclic point group with fold equal to the prime number.
If any such point groups are found, the function searches for nultiples of these folds, making use of the fact that any structure with cyclic point group of fold n must also contain a point group of fold n/2 if n/2 is an integer. In this manner, cyclic point group with any fold can be found using a small number of specific fold searches, thus eliminating the need to determine which folds should be considered.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[out] | ret | A vector of arrays containing all detected cyclic point groups in the standard ProSHADE format, i.e. [0] = fold, [1] = x-axis, [2] = y-axis, [3] = z-axis, [4] = angle, [5] = average peak height. |
Definition at line 3553 of file ProSHADE_symmetry.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getDihedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function obtains a list of all D symmetries from already computed C symmetries list.
This function simply returns a vector of C symmetry pairs which are perpendicular to each other (and therefore form dihedral symmetry). The vector contains arrays of 12 double numbers with the following format: [0] = Fold of axis 1; [1] = X-axis of axis 1; [2] Y-axis of axis 1; [3] = Z-axis of axis 1; [4] = angle of axis 1; [5] = average peak height of axis 1; [6] = Fold of axis 2; [7] = X-axis of axis 2; [8] Y-axis of axis 2; [9] = Z-axis of axis 2; [10] = angle of axis 2; [11] = average peak height of axis 2. Note that the larger fold axis is listed first in this format.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
Definition at line 1222 of file ProSHADE_symmetry.cpp.
proshade_complex ** ProSHADE_internal_data::ProSHADE_data::getEMatrixByBand | ( | proshade_unsign | band | ) |
This function allows access to E matrix for a particular band.
[in] | band | The band for which the E matrix subset order * order should be returned. |
[out] | X | Pointer to pointer of complex matrix with dimensions order * order of the E matrices. |
Definition at line 3136 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getEMatrixValue | ( | proshade_unsign | band, |
proshade_unsign | order1, | ||
proshade_unsign | order2, | ||
proshade_double * | valueReal, | ||
proshade_double * | valueImag | ||
) |
This function allows access to E matrix by knowing the band, order1 and order2 indices.
[in] | band | The band for which the E matrix value should be returned. |
[in] | order1 | The first order for which the E matrix value should be returned. |
[in] | order2 | The second order for which the E matrix value should be returned. |
[in] | valueReal | The proshade_double number pointer to where the real part of the value will be saved. |
[in] | valueImag | The proshade_double number pointer to where the imaginary part of the value will be saved. |
Definition at line 3151 of file ProSHADE_data.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getIcosahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function obtains a list of all I symmetry axes from the already computed C symmetries list.
This function starts by checking if there is a pair of C3 and C4 symmetries with the octahedron dihedral angle ( acos ( 1/sqrt(3) ) ). If so, it will then assume existence of octahedral symmetry and it will search for three C4 axes, four C3 axes and six C2 axes with the correct angle to each other and within the group. If all required axes are detected, it will return a list of 13 axes, otherwise it will return empty or shorter list. Automated missing symmetry axis detection is also included.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
Definition at line 2629 of file ProSHADE_symmetry.cpp.
void ProSHADE_internal_data::ProSHADE_data::getImagEMatrixValuesForLM | ( | proshade_signed | band, |
proshade_signed | order1, | ||
double * | eMatsLMImag, | ||
int | len | ||
) |
This function fills the input array with the imaginary E matrix values for particular band and order1 (l as opposed to l').
[in] | band | The band for which the imaginary E matrix values are requested. |
[in] | order | The order for which the imaginary E matrix values are requested. |
[in] | eMatsLMImag | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3509 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getImagRotFunction | ( | double * | rotFunImag, |
int | len | ||
) |
This function fills the input array with the imaginary rotation function values.
[in] | rotFunImag | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3596 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getImagSO3Coeffs | ( | double * | so3CoefsImag, |
int | len | ||
) |
This function fills the input array with the imaginary SO(3) coefficient values.
[in] | so3CoefsImag | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3545 of file ProSHADE_data.cpp.
proshade_double * ProSHADE_internal_data::ProSHADE_data::getImagSphHarmValue | ( | proshade_unsign | band, |
proshade_unsign | order, | ||
proshade_unsign | shell | ||
) |
This function allows access to the private internal imaginary spherical harmonics values.
[out] | X | Pointer to the value of the internal private spherical harmonics imaginary value of the given index. |
Definition at line 3076 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getImagTranslationFunction | ( | double * | trsFunImag, |
int | len | ||
) |
This function fills the input array with the imaginary translation function values.
[in] | trsFunImag | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3632 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::getIntegrationWeight | ( | void | ) |
This function allows access to the integration weight for the object.
[out] | X | The integration weight for the object or 0.0 if not yet computed. |
Definition at line 3100 of file ProSHADE_data.cpp.
proshade_double *& ProSHADE_internal_data::ProSHADE_data::getInternalMap | ( | void | ) |
This function allows access to the first map array value address.
[out] | internalMap | Pointer to the first position in the internal map array. |
Definition at line 3368 of file ProSHADE_data.cpp.
proshade_complex * ProSHADE_internal_data::ProSHADE_data::getInvSO3Coeffs | ( | void | ) |
This function allows access to the inverse SO(3) coefficients array.
[out] | X | The internal inverse SO(3) coefficients array variable. |
Definition at line 3166 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::getMapValue | ( | proshade_unsign | pos | ) |
This function returns the internal map representation value of a particular array position.
[in] | pos | The position in the map array, of which the value should be returned. |
[out] | X | The internal map representation value at position pos. |
Definition at line 2929 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getMaxBand | ( | void | ) |
This function returns the maximum band value for the object.
[out] | X | The largest number of bands used in any shell of the object. |
Definition at line 2939 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getMaxSpheres | ( | void | ) |
This function returns the number of spheres which contain the whole object.
[out] | X | The total number of spheres to which the structure is mapped. |
Definition at line 2918 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getNoRecommendedSymmetryAxes | ( | ProSHADE_settings * | settings | ) |
This function returns the number of detected recommended symmetry axes.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
[out] | val | The length of the recommended symmetry axes vector. |
Definition at line 3708 of file ProSHADE_data.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getOctahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function obtains a list of all O symmetry axes from the already computed C symmetries list.
This function starts by checking if there is a pair of C3 and C4 symmetries with the octahedron dihedral angle ( acos ( 1/sqrt(3) ) ). If so, it will then assume existence of octahedral symmetry and it will search for three C4 axes, four C3 axes and six C2 axes with the correct angle to each other and within the group. If all required axes are detected, it will return a list of 13 axes, otherwise it will return empty or shorter list. Automated missing symmetry axis detection is also included.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
Definition at line 2093 of file ProSHADE_symmetry.cpp.
void ProSHADE_internal_data::ProSHADE_data::getOverlayRotationFunction | ( | ProSHADE_settings * | settings, |
ProSHADE_internal_data::ProSHADE_data * | obj2 | ||
) |
This function computes the overlay rotation function (i.e. the correlation function in SO(3) space).
This function assumes it is called from the object to which the rotation function is to be assigned to (presumably the moving rather than static structure). It starts by computing the E matrices, normalising these using the Patterson-like normalisation, generating SO(3) coefficients from the E matrices and finally computing their inverse SOFT transform to get the rotation function.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | obj2 | A pointer to the data class object of the other ( static ) structure. |
Definition at line 35 of file ProSHADE_overlay.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getPredictedIcosahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function predicts a list of all I symmetry axes from the already computed C symmetries list.
This function starts by checking if there is a pair of C3 and C5 symmetries with the icosahedron dihedral angle ( acos( std::sqrt ( ( 1.0 + 2.0 / std::sqrt ( 5.0 ) ) / 3.0 ) ) ). If found, it calls the predictIcosAxes() function, which uses the knowledge of the two axes (C5 and C3) which are closest to the dihedral angle to find the best rotation matrix matching a pre-computed icosahedron model to the detected axes. After rotating the model, the model axes become the predicted axes for the structure and their peak heights are then computed. Once complete, all the predicted axes are in the ret variable.
\Warning This function does not check if the correct number of C axes was found, it is assumed this will be checked when the determination of which symmetry was found.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
[out] | ret | A vector of all the detected axes in the standard ProSHADE format with height either the detected value (for the detected ones) or 0 for the predicted ones. |
Definition at line 2691 of file ProSHADE_symmetry.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getPredictedOctahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function predicts a list of all O symmetry axes from the already computed C symmetries list.
This function starts by checking if there is a pair of C3 and C4 symmetries with the octahedron dihedral angle ( acos( ( 1.0 / sqrt ( 3.0 ) ) ) ). If found, it calls the predictOctaAxes() function, which uses the knowledge of the two axes (C4 and C3) which are closest to the dihedral angle to find the best rotation matrix matching a pre-computed octahedron model to the detected axes. After rotating the model, the model axes become the predicted axes for the structure and their peak heights are then computed. Once complete, all the predicted axes are in the ret variable.
\Warning This function does not check if the correct number of C axes was found, it is assumed this will be checked when the determination of which symmetry was found.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
[out] | ret | A vector of all the detected axes in the standard ProSHADE format with height either the detected value (for the detected ones) or 0 for the predicted ones. |
Definition at line 2739 of file ProSHADE_symmetry.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getPredictedTetrahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function predicts a list of all T symmetry axes from the already computed C symmetries list.
This function starts by checking if there is a pair of C3 and C2 symmetries with the tetrahedron dihedral angle ( acos( ( 1.0 / sqrt ( 3.0 ) ) ). If found, it calls the predictTetraAxes() function, which uses the knowledge of the two axes (C3 and C2) which are closest to the dihedral angle to find the best rotation matrix matching a pre-computed tetrhedron model to the detected axes. After rotating the model, the model axes become the predicted axes for the structure and their peak heights are then computed. Once complete, all the predicted axes are in the ret variable.
\Warning This function does not check if the correct number of C axes was found, it is assumed this will be checked when the determination of which symmetry was found.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
[out] | ret | A vector of all the detected axes in the standard ProSHADE format with height either the detected value (for the detected ones) or 0 for the predicted ones. |
Definition at line 3960 of file ProSHADE_symmetry.cpp.
void ProSHADE_internal_data::ProSHADE_data::getRealEMatrixValuesForLM | ( | proshade_signed | band, |
proshade_signed | order1, | ||
double * | eMatsLMReal, | ||
int | len | ||
) |
This function fills the input array with the real E matrix values for particular band and order1 (l as opposed to l').
[in] | band | The band for which the real E matrix values are requested. |
[in] | order | The order for which the real E matrix values are requested. |
[in] | eMatsLMReal | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3489 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getRealRotFunction | ( | double * | rotFunReal, |
int | len | ||
) |
This function fills the input array with the real rotation function values.
[in] | rotFunReal | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3578 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getRealSO3Coeffs | ( | double * | so3CoefsReal, |
int | len | ||
) |
This function fills the input array with the real SO(3) coefficient values.
[in] | so3CoefsReal | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3527 of file ProSHADE_data.cpp.
proshade_double * ProSHADE_internal_data::ProSHADE_data::getRealSphHarmValue | ( | proshade_unsign | band, |
proshade_unsign | order, | ||
proshade_unsign | shell | ||
) |
This function allows access to the private internal real spherical harmonics values.
[out] | X | Pointer to the value of the internal private spherical harmonics real value of the given index. |
Definition at line 3063 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getRealTranslationFunction | ( | double * | trsFunReal, |
int | len | ||
) |
This function fills the input array with the real translation function values.
[in] | trsFunReal | The array to which the values will be written into. |
[in] | len | The lenght of the array. |
Definition at line 3614 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getReBoxBoundaries | ( | ProSHADE_settings * | settings, |
proshade_signed *& | ret | ||
) |
This function finds the boundaries enclosing positive map values and adds some extra space.
This function firstly finds the boundaries which enclose the positive map values and then it proceeds to add a given amount of space to all dimensions (positive and negative) to make sure the map does not end exactly at the bounds. It returns the new boundaries in the ret variable if they are smaller than the original bounds, or just the original bounds in case decrease was not achieved.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
[in] | ret | A pointer to proshade_signed array of 6 storing the results - (0 = minX; 1 = maxX; 2 = minY; 3 = maxY; 4 - minZ; 5 = maxZ). |
Definition at line 1035 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getRecommendedSymmetryFold | ( | ProSHADE_settings * | settings | ) |
This function simply returns the detected recommended symmetry fold.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 3696 of file ProSHADE_data.cpp.
std::string ProSHADE_internal_data::ProSHADE_data::getRecommendedSymmetryType | ( | ProSHADE_settings * | settings | ) |
This function simply returns the detected recommended symmetry type.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 3685 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getRotMatrixFromRotFunInds | ( | proshade_signed | aI, |
proshade_signed | bI, | ||
proshade_signed | gI, | ||
double * | rotMat, | ||
int | len | ||
) |
This function takes rotation function indices, converts them to Euler angles and these to rotation matrix, which it then returns.
[in] | aI | The index along the Euler alpha dimension. |
[in] | bI | The index along the Euler beta dimension. |
[in] | gI | The index along the Euler gamma dimension. |
[in] | rotMat | The array to which the rotation matrix will be written into. |
[in] | len | The lenght of the array (must be 9). |
Definition at line 3653 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::getRRPValue | ( | proshade_unsign | band, |
proshade_unsign | sh1, | ||
proshade_unsign | sh2 | ||
) |
This function allows access to the priva internal RRP matrices.
[out] | X | The value of the internal private RRP matrix for the given indices. |
Definition at line 2949 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getShellBandwidth | ( | proshade_unsign | shell | ) |
This function allows access to the bandwidth of a particular shell.
[in] | shell | The index of the shell for which the bandwidth is required. |
[out] | X | The bandwidth of the requested shell. |
Definition at line 3112 of file ProSHADE_data.cpp.
proshade_complex * ProSHADE_internal_data::ProSHADE_data::getSO3Coeffs | ( | void | ) |
This function allows access to the SO(3) coefficients array.
[out] | X | The internal SO(3) coefficients array variable. |
Definition at line 3177 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getSpherePositions | ( | ProSHADE_settings * | settings | ) |
This function determines the sphere positions (radii) for sphere mapping.
This function determines the radii of the concentric spheres (as measured from the centre of the map). This is done by checking if these values have already been as and if not, then the radii are placed between points of the map starting between the centre point and its neighbours and then adding spheres until the most outlying diagonal point is covered.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1442 of file ProSHADE_data.cpp.
proshade_double ProSHADE_internal_data::ProSHADE_data::getSpherePosValue | ( | proshade_unsign | shell | ) |
This function allows access to sphere positions.
[in] | shell | The index of the sphere for which the position (radius) is to be obtained. |
[out] | X | The radius of the sphere with index shell. |
Definition at line 3124 of file ProSHADE_data.cpp.
std::vector< std::string > ProSHADE_internal_data::ProSHADE_data::getSymmetryAxis | ( | ProSHADE_settings * | settings, |
proshade_unsign | axisNo | ||
) |
This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | axisNo | The index of the axis to be returned. |
[out] | val | A vector of strings containing the symmetry axis fold, x, y, z axis element, angle and peak height in this order. |
Definition at line 3720 of file ProSHADE_data.cpp.
std::vector< proshade_double * > ProSHADE_internal_data::ProSHADE_data::getTetrahedralSymmetriesList | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSymList | ||
) |
This function obtains a list of all T symmetry axes from the already computed C symmetries list.
This function starts by checking if there are two C3 symmetries with the tetrahedral dihedral angle. If so, it proceeds to search for all seven symmetry axes expected to form a full tetrahedral symmetry. It then returns the list of found symmetries; if full tetrahedral symmetry was found, seven axes (four C3s and three C2s) are returned. If less than seven symmetries are returned, the procedure has failed and no tetrahedral symmetry was found.
[in] | settings | A pointer to settings class containing all the information required for symmetry detection. |
[in] | CSymList | A vector containing the already detected Cyclic symmetries. |
Definition at line 1340 of file ProSHADE_symmetry.cpp.
proshade_complex * ProSHADE_internal_data::ProSHADE_data::getTranslationFnPointer | ( | void | ) |
This function allows access to the translation function through a pointer.
[out] | translationMap | Pointer to the first position in the translation function map array. |
Definition at line 3378 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::getWignerMatrixValue | ( | proshade_unsign | band, |
proshade_unsign | order1, | ||
proshade_unsign | order2, | ||
proshade_double * | valueReal, | ||
proshade_double * | valueImag | ||
) |
This function allows access to the Wigner D matrix by knowing the band, order1 and order2 indices.
[in] | band | The band for which the Wigner D matrix value should be returned. |
[in] | order1 | The first order for which the Wigner D matrix value should be returned. |
[in] | order2 | The second order for which the Wigner D matrix value should be returned. |
[in] | valueReal | The proshade_double number pointer to where the real part of the value will be saved. |
[in] | valueImag | The proshade_double number pointer to where the imaginary part of the value will be saved. |
Definition at line 3203 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getXAxisOrigin | ( | void | ) |
This function allows access to the map X axis origin value.
[out] | xAxisOrigin | The value of X axis origin for the map. |
Definition at line 3338 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getXDim | ( | void | ) |
This function allows access to the map size in indices along the X axis.
[out] | xDimSize | The size of the internal map in indices along the X axis. |
Definition at line 3248 of file ProSHADE_data.cpp.
proshade_single ProSHADE_internal_data::ProSHADE_data::getXDimSize | ( | void | ) |
This function allows access to the map size in angstroms along the X axis.
[out] | xDimSize | The size of the internal map in angstroms along the X axis. |
Definition at line 3218 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getXFromPtr | ( | void | ) |
This function allows access to the map start along the X axis.
[out] | xFrom | Pointer to the starting index along the X axis. |
Definition at line 3278 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getXToPtr | ( | void | ) |
This function allows access to the map last position along the X axis.
[out] | xFrom | Pointer to the final index along the X axis. |
Definition at line 3308 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getYAxisOrigin | ( | void | ) |
This function allows access to the map Y axis origin value.
[out] | yAxisOrigin | The value of Y axis origin for the map. |
Definition at line 3348 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getYDim | ( | void | ) |
This function allows access to the map size in indices along the Y axis.
[out] | xDimSize | The size of the internal map in indices along the Y axis. |
Definition at line 3258 of file ProSHADE_data.cpp.
proshade_single ProSHADE_internal_data::ProSHADE_data::getYDimSize | ( | void | ) |
This function allows access to the map size in angstroms along the Y axis.
[out] | xDimSize | The size of the internal map in angstroms along the Y axis. |
Definition at line 3228 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getYFromPtr | ( | void | ) |
This function allows access to the map start along the Y axis.
[out] | yFrom | Pointer to the starting index along the Y axis. |
Definition at line 3288 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getYToPtr | ( | void | ) |
This function allows access to the map last position along the Y axis.
[out] | yFrom | Pointer to the final index along the Y axis. |
Definition at line 3318 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getZAxisOrigin | ( | void | ) |
This function allows access to the map Z axis origin value.
[out] | zAxisOrigin | The value of Z axis origin for the map. |
Definition at line 3358 of file ProSHADE_data.cpp.
proshade_unsign ProSHADE_internal_data::ProSHADE_data::getZDim | ( | void | ) |
This function allows access to the map size in indices along the Z axis.
[out] | xDimSize | The size of the internal map in indices along the Z axis. |
Definition at line 3268 of file ProSHADE_data.cpp.
proshade_single ProSHADE_internal_data::ProSHADE_data::getZDimSize | ( | void | ) |
This function allows access to the map size in angstroms along the Z axis.
[out] | xDimSize | The size of the internal map in angstroms along the Z axis. |
Definition at line 3238 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getZFromPtr | ( | void | ) |
This function allows access to the map start along the Z axis.
[out] | zFrom | Pointer to the starting index along the Z axis. |
Definition at line 3298 of file ProSHADE_data.cpp.
proshade_signed * ProSHADE_internal_data::ProSHADE_data::getZToPtr | ( | void | ) |
This function allows access to the map last position along the Z axis.
[out] | zFrom | Pointer to the final index along the Z axis. |
Definition at line 3328 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::interpolateMapFromSpheres | ( | ProSHADE_settings * | settings, |
proshade_double *& | densityMapRotated | ||
) |
This function interpolates the density map from the sphere mapped data.
[in] | settings | The settings object specifying how exactly the rotation is to be done. |
[in] | densityMapRotated | The pointer to allocated memory where the new map values will be held. |
Definition at line 1042 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::invertMirrorMap | ( | ProSHADE_settings * | settings | ) |
Function for inverting the map to its mirror image.
This function switches all index values along the three axes from 0 ... max to max ... 0. This should not normally be done, but in the case where the wrong hand has been used in the map re-construction process, this may be helpful.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 894 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::invertSHCoefficients | ( | void | ) |
This function computes the shell mapped data from inverting the Spherical Harmonics coefficients.
Definition at line 948 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::mapToSpheres | ( | ProSHADE_settings * | settings | ) |
This function converts the internal map onto a set of concentric spheres.
This function starts by determining the spherical harmonics values which were not supplied by the user, these may be bandwidth, taylor series cap, integration order, etc. It then proceeds to determine the optimal sphere distances, unless these were determined by the user.
Finally, the function creates a new instance of the ProSHADE_sphere class for each of the already determined sphere positions. Note: The constructor of ProSHADE_sphere is where the mapping then happens.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1499 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::maskMap | ( | ProSHADE_settings * | settings | ) |
Function for computing the map mask using blurring and X IQRs from median.
This function takes all the internal map representation information from the calling object and the internal map itself and proceeds to write all this information in MRC MAP format for visualisation and further processing by other software. It is dependent on the internal information being correct.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 995 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::normaliseEMatrixValue | ( | proshade_unsign | band, |
proshade_unsign | order1, | ||
proshade_unsign | order2, | ||
proshade_double | normF | ||
) |
This function allows normalising the E matrix value.
[in] | band | The band indice of the E matrix to which the value should be assigned. |
[in] | order1 | The first order indice of the E matrix to which the value should be assigned. |
[in] | order2 | The second order indice of the E matrix to which the value should be assigned. |
[in] | normF | The value by which the original E matrix value will be divided to normalise it. |
Definition at line 3437 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::normaliseMap | ( | ProSHADE_settings * | settings | ) |
Function for normalising the map values to mean 0 and sd 1..
This function takes the map and changes its value to have mean 0 and standard deviation of 1. This should make wo maps with very different density levels more comparable, but it remains to be seen if this causes any trouble. Can be turned off using the settings options.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 948 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::processInternalMap | ( | ProSHADE_settings * | settings | ) |
This function simply clusters several other functions which should be called together.
This function serves to cluster the map normalisation, map masking, map centering and map extra space addition into a single function. This allows for simpler code and does not take any control away, as all the decisions are ultimately driven by the settings.
This function also does some internal value saving and auto-determination of any parameters that the user did not supply. This, however, means, that this function MUST be called for every structure that is to be processed by ProSHADE. This is of importance to people whe want to use only a perticular functions.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 1398 of file ProSHADE_data.cpp.
|
protected |
Function for reading map data using gemmi library.
This function reads in the map data using the information from the settings object and saves all the results into the structure calling it.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 501 of file ProSHADE_data.cpp.
|
protected |
Function for reading pdb data.
This function reads in the pdb data using the information from the settings object, converts the co-ordinates onto a theoretical map and and saves all the results into the structure calling it.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 574 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::readInStructure | ( | std::string | fName, |
proshade_unsign | inputO, | ||
ProSHADE_settings * | settings | ||
) |
This function initialises the basic ProSHADE_data variables and reads in a single structure.
This function is basically the constructor for the ProSHADE_data class. It reads in a structure (independent of the structure type) and fills in all the appropriate variables of the class.
[in] | fName | The file name of the file which should be loaded. |
[in] | inputO | The order of this structure in this run's input. |
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 447 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::removePhaseInormation | ( | ProSHADE_settings * | settings | ) |
This function removes phase from the map, effectively converting it to Patterson map.
This function is called when the phase information needs to be removed from the internal map representation. It does the forward Fourier transform, removes the phase from the Fourier coefficients and then the inverse Fourier transform, thus resulting with the Patterson map. It does write over the original map.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
Definition at line 2985 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::reportOverlayResults | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double > * | rotationCentre, | ||
std::vector< proshade_double > * | eulerAngles, | ||
std::vector< proshade_double > * | finalTranslation | ||
) |
This function reports the results of the overlay mode.
[in] | settings | ProSHADE_settings object specifying the details of how the computations should be done. |
[in] | rotationCentre | Pointer to vector for saving the position of the centre of rotation about which the rotation is to be done. |
[in] | mapBoxMovement | Pointer to vector for saving the sum of all translations done internally by ProSHADE to this input map. |
[in] | eulerAngles | Pointer to vector where the three Euler angles will be saved into. |
[in] | finalTranslation | Pointer to a vector where the translation required to move structure from origin to optimal overlay with static structure will be saved into. |
Definition at line 3809 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::reportSymmetryResults | ( | ProSHADE_settings * | settings | ) |
This function takes prints the report for symmetry detection.
This is a very simple function which provides the basic textual output for the symmetry detection task.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection reporting. |
Definition at line 2781 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::reSampleMap | ( | ProSHADE_settings * | settings | ) |
This function changes the internal map sampling to conform to particular resolution value.
This function will take the requested resolution value from the settings object and will proceed to change the internal map sampling to conform to requested resolution / 2 and therefore to the requested resolution map.
[in] | settings | A pointer to settings class containing all the information required for reading in the map. |
Definition at line 1156 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::rotateMap | ( | ProSHADE_settings * | settings, |
proshade_double | eulerAlpha, | ||
proshade_double | eulerBeta, | ||
proshade_double | eulerGamma | ||
) |
This function rotates a map based on the given Euler angles.
This function starts by computing the Wigner D matrices for the given Euler angles and then it proceeds to multiply the spherical harmonics coefficients with these, thus producing spherical harmonics coefficients of a rotated structure. Then, it computes the inverse spherical harmonics decomposition, thus obtaining the sphere mapped values for the rotated structure. Finally, it interpolates these sphere mapped values back to Cartesian grid, thus obtaining a map rotated by the given Euler angles.
[in] | settings | The settings object specifying how exactly the rotation is to be done. |
[in] | eulerAlpha | The rotation expressed as a pointer to Euler alpha angle. |
[in] | eulerBeta | The rotation expressed as a pointer to Euler beta angle. |
[in] | eulerGamma | The rotation expressed as a pointer to Euler gamma angle. |
Definition at line 736 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::saveDetectedSymmetries | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSyms, | ||
std::vector< std::vector< proshade_double > > * | allCs | ||
) |
This function takes the results of point group searches and saves then into the output variables.
This function takes the CSyms as they are returned by the findRequestedCSymmetryFromAngleAxis() or the getCyclicSymmetriesListFromAngleAxis() functions and re-saves then to the output variables of the detectSymmetryFromAngleAxisSpace() function. It also releases the memory of the CSyms argument.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | CSyms | A pointer to vector |
[in] | axes | A pointer to a vector to which all the axes of the recommended symmetry (if any) will be saved. |
[in] | allCs | A pointer to a vector to which all the detected cyclic symmetries will be saved into. |
Definition at line 1831 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::saveRecommendedSymmetry | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSym, | ||
std::vector< proshade_double * > * | DSym, | ||
std::vector< proshade_double * > * | TSym, | ||
std::vector< proshade_double * > * | OSym, | ||
std::vector< proshade_double * > * | ISym, | ||
std::vector< proshade_double * > * | axes | ||
) |
This function takes all the detected symmetry results and decides on which are to be recommended for this structure.
This function starts by obtaining the scores (fold weighted height averages) for each of the detectable symmetry types. Then, it proceeds to compute which of these should be recommended by ProSHADE based on a little shaky combination of axes number and score. This part needs to be improved by using ML estimation, when I get the time.
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | CSym | A vector of pointers to double arrays, each array being a single Cyclic symmetry entry. |
[in] | DSym | A vector of pointers to double arrays, each array being a single Dihedral symmetry entry. |
[in] | TSym | A vector of pointers to double arrays, all of which together form the axes of tetrahedral symmetry. |
[in] | OSym | A vector of pointers to double arrays, all of which together form the axes of octahedral symmetry. |
[in] | ISym | A vector of pointers to double arrays, all of which together form the axes of icosahedral symmetry. |
[in] | axes | A vector to which all the axes of the recommended symmetry (if any) will be saved. |
Definition at line 2070 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::saveRequestedSymmetryC | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | CSym, | ||
std::vector< proshade_double * > * | axes | ||
) |
This function takes the C symmetries and searched for the requested symmetry.
This is a simple search function, which searches the symmetry results for the requested symmetry fold, and if more such symmetries are found, takes the one with the highest average peak height. If the requested fold was found, it will save it to the settings object, while it will set the object to fold 0 if the requested symmetry was not found (although there may be other symmetries present).
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | CSym | A vector of pointers to double arrays, each array being a single Cyclic symmetry entry. |
[in] | axes | A vector to which all the axes of the requested symmetry (if any) will be saved. |
Definition at line 2164 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::saveRequestedSymmetryD | ( | ProSHADE_settings * | settings, |
std::vector< proshade_double * > * | DSym, | ||
std::vector< proshade_double * > * | axes | ||
) |
This function takes the D symmetries and searched for the requested symmetry.
This is a simple search function, which searches the symmetry results for the requested symmetry fold, and if more such symmetries are found, takes the one with the highest average peak height sum. If the requested fold was found, it will save it to the settings object, while it will set the object to fold 0 if the requested symmetry was not found (albeit there may be other symmetries present).
[in] | settings | A pointer to settings class containing all the information required for map symmetry detection. |
[in] | DSym | A vector of pointers to double arrays, each array being a single Dihedral symmetry entry. |
[in] | axes | A vector to which all the axes of the requested symmetry (if any) will be saved. |
Definition at line 2215 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::setEMatrixValue | ( | proshade_unsign | band, |
proshade_unsign | order1, | ||
proshade_unsign | order2, | ||
proshade_complex | val | ||
) |
This function allows setting the E matrix value.
[in] | band | The band indice of the E matrix to which the value should be assigned. |
[in] | order1 | The first order indice of the E matrix to which the value should be assigned. |
[in] | order2 | The second order indice of the E matrix to which the value should be assigned. |
[in] | val | The value which should be saved. |
Definition at line 3419 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::setIntegrationWeight | ( | proshade_double | intW | ) |
This function allows setting the integration weight for the object.
[in] | intW | The integration weight to be set for this object. |
Definition at line 3388 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::setIntegrationWeightCumul | ( | proshade_double | intW | ) |
This function allows setting the cumulative integration weight for the object.
[in] | intW | The integration weight to be added to the current value for this object. |
Definition at line 3402 of file ProSHADE_data.cpp.
|
protected |
Function for determining iterator start and stop positions.
This function is called to set the xFrom, yFrom, ..., yTo and zTo iterator values for easier further calculations.
Definition at line 678 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::setSO3CoeffValue | ( | proshade_unsign | position, |
proshade_complex | val | ||
) |
This function allows setting the SOFT coefficient values using array position and value.
[in] | position | The 1D array position at which the new value should be saved. |
[in] | val | Complex value to be saved into the array. |
Definition at line 3453 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::setWignerMatrixValue | ( | proshade_complex | val, |
proshade_unsign | band, | ||
proshade_unsign | order1, | ||
proshade_unsign | order2 | ||
) |
This function allows setting the Wigner D matrix value by its band, order1 and order2 co-ordinate.
[in] | val | proshade_complex value of the Wigner D matrix at position band, order1, order2. |
[in] | band | The band of the Wigner D matrix value. |
[in] | order1 | The first order of the Wigner D matrix value. |
[in] | order2 | The second order of the Wigner D matrix value. |
Definition at line 3471 of file ProSHADE_data.cpp.
bool ProSHADE_internal_data::ProSHADE_data::shellBandExists | ( | proshade_unsign | shell, |
proshade_unsign | bandVal | ||
) |
This function checks if particular shell has a particular band.
This function is useful for the progressive shell mapping, where it may not be clear in one part of the code whether a particular shell does or does not have a particular band value. Therefore, this function allows simple check.
[in] | shell | The index (number) of the shell for which the check should be done. |
[in] | bandVal | The band value which should be sought for the shell. |
[out] | X | True if the shell has the band, false otherwise. |
Definition at line 2965 of file ProSHADE_data.cpp.
int ProSHADE_internal_data::ProSHADE_data::so3CoeffsArrayIndex | ( | proshade_signed | order1, |
proshade_signed | order2, | ||
proshade_signed | band | ||
) |
This function gets the SO(3) coefficients array index for a particular so(3) band, order1 and order2 position.
It should be noted that this function assumes that the orders are in the format -l < 0 < l and NOT 0 < 2l + 1.
[in] | order1 | The first order for which the SO(3) value index is requested. |
[in] | order2 | The second order for which the SO(3) value index is requested. |
[in] | band | The band for which the SO(3) value index is requested. |
[out] | val | Index position of the SO(3) value. |
Definition at line 3567 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::translateMap | ( | ProSHADE_settings * | settings, |
proshade_double | trsX, | ||
proshade_double | trsY, | ||
proshade_double | trsZ | ||
) |
This function simply translates the map by a given number of Angstroms along the three axes.
This function calls the internal functions to first provide the maximum possible movement by changing the frame of the map and secondly, it make the precise movement within this new frame using the Fourier translation approach.
[in] | settings | The settings object specifying how exactly the rotation is to be done. |
[in] | trsX | The translation expressed as a number of angstroms to move by along the x-axis. |
[in] | trsY | The translation expressed as a number of angstroms to move by along the y-axis. |
[in] | trsZ | The translation expressed as a number of angstroms to move by along the z-axis. |
Definition at line 795 of file ProSHADE_overlay.cpp.
void ProSHADE_internal_data::ProSHADE_data::writeMap | ( | std::string | fName, |
std::string | title = "Created by ProSHADE and written by GEMMI" , |
||
int | mode = 2 |
||
) |
Function for writing out the internal structure representation in MRC MAP format.
This function takes all the internal map representation information from the calling object and proceeds to write all this information in MRC MAP format for visualisation and possibly further processing by other software. This function will write out axis order XYZ and spacegroup P1 irrespective of the input axis order and spacegroup.
[in] | fName | The filename (including path) to where the output MAP file should be saved. |
[in] | title | String with the map title to be written into the header - default value is "Created by ProSHADE and written by GEMMI" |
[in] | mode | The type of the data, leave at default 2 (mean float type) unless you specifically required other types. |
Definition at line 741 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::writeMask | ( | std::string | fName, |
proshade_double * | mask | ||
) |
Function for writing out a mask in MRC MAP format.
This function takes a mask map and the filename and proceeds to write out the mask into the requested file name in th MRC MAP format. It assumes that the mask has the same dimmensions as the map.
[in] | fileName | The filename (including path) to where the output should be saved. |
[in] | mask | Pointer to the mask map array. |
Definition at line 857 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::writeOutOverlayFiles | ( | ProSHADE_settings * | settings, |
proshade_double | eulA, | ||
proshade_double | eulB, | ||
proshade_double | eulG, | ||
std::vector< proshade_double > * | rotCentre, | ||
std::vector< proshade_double > * | ultimateTranslation | ||
) |
This function writes out the rotated map, co-ordinates and transformation JSON file.
This function takes basically all the results of the overlay mode and appropriately applies them to write out the moved density map, if possible the moved co-ordinates and also the overlay operations listing JSON file.
[in] | settings | A pointer to settings class containing all the information required for map manipulation. |
[in] | eulA | The Euler alpha angle value, by which the moving structure is to be rotated by. |
[in] | eulB | The Euler beta angle value, by which the moving structure is to be rotated by. |
[in] | eulG | The Euler gamma angle value, by which the moving structure is to be rotated by. |
[in] | rotCentre | The rotation centre position. |
[in] | ultimateTranslation | The final translation as determined by the translation function. |
Definition at line 3775 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::writePdb | ( | std::string | fName, |
proshade_double | euA = 0.0 , |
||
proshade_double | euB = 0.0 , |
||
proshade_double | euG = 0.0 , |
||
proshade_double | trsX = 0.0 , |
||
proshade_double | trsY = 0.0 , |
||
proshade_double | trsZ = 0.0 , |
||
bool | firstModel = true |
||
) |
This function writes out the PDB formatted file coresponding to the structure so that its COM is at specific position.
This function first checks if this internal structure originated from co-ordinate file (only if co-ordinates are provided can they be written out). If so, it will proceed to read in the original co-ordinates, rotate and translate them according to the arguments and then write the resulting co-ordinates into a new file.
[in] | fName | The filename (including path) to where the output PDB file should be saved. |
[in] | euA | The Euler angle alpha by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | euB | The Euler angle beta by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | euG | The Euler angle gamma by which the co-ordinates should be rotated (leave empty if no rotation is required). |
[in] | trsX | The translation to be done along X-axis in Angstroms. |
[in] | trsY | The translation to be done along Y-axis in Angstroms. |
[in] | trsZ | The translation to be done along Z-axis in Angstroms. |
[in] | firstModel | Should only the first model, or rather all of them be used? |
Definition at line 806 of file ProSHADE_data.cpp.
void ProSHADE_internal_data::ProSHADE_data::zeroPaddToDims | ( | proshade_unsign | xDim, |
proshade_unsign | yDim, | ||
proshade_unsign | zDim | ||
) |
This function changes the size of a structure to fit the supplied new limits.
This function increases the map size by symetrically adding zeroes in each required dimension. The first zero is always added AFTER the structure, so for even size increases, there will be misplacement of centre of mass. The map position in the "real" world should not change.
[in] | xDim | The X dimension size to which this structure should be padded into. |
[in] | yDim | The Y dimension size to which this structure should be padded into. |
[in] | zDim | The Z dimension size to which this structure should be padded into. |
Definition at line 598 of file ProSHADE_overlay.cpp.