26 #ifndef __PROSHADE_MAPMANIP__
27 #define __PROSHADE_MAPMANIP__
39 proshade_signed
myRound ( proshade_double x );
40 void determinePDBRanges ( gemmi::Structure pdbFile, proshade_single* xFrom, proshade_single* xTo, proshade_single* yFrom,
41 proshade_single* yTo, proshade_single* zFrom, proshade_single* zTo,
bool firstModel );
42 void findPDBCOMValues ( gemmi::Structure pdbFile, proshade_double *xCom, proshade_double *yCom, proshade_double *zCom,
bool firstModel );
43 void findMAPCOMValues ( proshade_double* map, proshade_double *xCom, proshade_double *yCom, proshade_double *zCom,
44 proshade_single xAngs, proshade_single yAngs, proshade_single zAngs, proshade_signed xFrom,
45 proshade_signed xTo, proshade_signed yFrom, proshade_signed yTo, proshade_signed zFrom,
46 proshade_signed zTo );
47 void rotatePDBCoordinates ( gemmi::Structure *pdbFile, proshade_double euA, proshade_double euB, proshade_double euG, proshade_double xCom,
48 proshade_double yCom, proshade_double zCom,
bool firstModel );
49 void translatePDBCoordinates ( gemmi::Structure *pdbFile, proshade_double transX, proshade_double transY, proshade_double transZ,
bool firstModel );
50 void changePDBBFactors ( gemmi::Structure *pdbFile, proshade_double newBFactorValue,
bool firstModel );
51 void removeWaters ( gemmi::Structure *pdbFile,
bool firstModel );
52 void movePDBForMapCalc ( gemmi::Structure *pdbFile, proshade_single xMov, proshade_single yMov, proshade_single zMov,
bool firstModel );
53 void generateMapFromPDB ( gemmi::Structure pdbFile, proshade_double*& map, proshade_single requestedResolution,
54 proshade_single xCell, proshade_single yCell, proshade_single zCell, proshade_signed* xTo,
55 proshade_signed* yTo, proshade_signed* zTo,
bool forceP1,
bool firstModel );
56 void moveMapByIndices ( proshade_single* xMov, proshade_single* yMov, proshade_single* zMov, proshade_single xAngs, proshade_single yAngs,
57 proshade_single zAngs, proshade_signed* xFrom, proshade_signed* xTo, proshade_signed* yFrom, proshade_signed* yTo,
58 proshade_signed* zFrom, proshade_signed* zTo, proshade_signed* xOrigin, proshade_signed* yOrigin,
59 proshade_signed* zOrigin );
60 void moveMapByFourier ( proshade_double*& map, proshade_single xMov, proshade_single yMov, proshade_single zMov, proshade_single xAngs,
61 proshade_single yAngs, proshade_single zAngs, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim );
62 void blurSharpenMap ( proshade_double*& map, proshade_double*& maskedMap, proshade_unsign xDimS, proshade_unsign yDimS,
63 proshade_unsign zDimS, proshade_single xAngs, proshade_single yAngs, proshade_single zAngs, proshade_single blurringFactor );
64 void getMaskFromBlurr ( proshade_double*& blurMap, proshade_double*& outMap, proshade_unsign xDimS, proshade_unsign yDimS,
65 proshade_unsign zDimS, proshade_single noIQRs );
66 void getNonZeroBounds ( proshade_double* map, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim, proshade_single xAngs,
67 proshade_single yAngs, proshade_single zAngs, proshade_signed*& ret );
68 void addExtraBoundSpace ( proshade_unsign xDim, proshade_unsign yDim, proshade_unsign zDim, proshade_single xAngs, proshade_single yAngs,
69 proshade_single zAngs, proshade_signed*& bounds, proshade_single extraSpace );
71 proshade_unsign zDimS, proshade_single xAngs, proshade_single yAngs, proshade_single zAngs,
72 proshade_single*& corrs );
74 proshade_unsign zDimS, proshade_single xAngs, proshade_single yAngs, proshade_single zAngs,
75 proshade_single*& corrs );
76 void allocateResolutionFourierMemory ( fftw_complex*& origMap, fftw_complex*& fCoeffs, fftw_complex*& newFCoeffs, fftw_complex*& newMap, fftw_plan& planForwardFourier,
77 fftw_plan& planBackwardRescaledFourier, proshade_unsign xDimOld, proshade_unsign yDimOld, proshade_unsign zDimOld,
78 proshade_unsign xDimNew, proshade_unsign yDimNew, proshade_unsign zDimNew );
79 void releaseResolutionFourierMemory ( fftw_complex*& origMap, fftw_complex*& fCoeffs, fftw_complex*& newFCoeffs, fftw_complex*& newMap, fftw_plan& planForwardFourier,
80 fftw_plan& planBackwardRescaledFourier );
81 void changeFourierOrder ( fftw_complex*& fCoeffs, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim,
bool negativeFirst );
82 void removeMapPhase ( fftw_complex*& mapCoeffs, proshade_unsign xDim, proshade_unsign yDim, proshade_unsign zDim );
83 void getFakeHalfMap ( proshade_double*& map, proshade_double*& fakeHalfMap, proshade_unsign xDimS, proshade_unsign yDimS,
84 proshade_unsign zDimS, proshade_signed fakeMapKernel );
85 void getCorrelationMapMask ( proshade_double*& map, proshade_double*& fakeHalfMap, proshade_double*& correlationMask,
86 proshade_unsign xDimS, proshade_unsign yDimS,
87 proshade_unsign zDimS, proshade_signed corrMaskKernel );
89 proshade_single xAngs, proshade_single yAngs, proshade_single zAngs,
90 proshade_single dist );
91 void connectMaskBlobs ( proshade_double*& mask, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim,
92 proshade_single xAngs, proshade_single yAngs,
93 proshade_single zAngs, proshade_single maskThres );
94 void beautifyBoundaries ( proshade_signed*& bounds, proshade_unsign xDim, proshade_unsign yDim, proshade_unsign zDim,
95 proshade_signed boundsDiffThres, proshade_signed verbose );
97 void distributeSpaceToBoundaries ( proshade_signed& minBound, proshade_signed& maxBound, proshade_signed oldBoundRange, proshade_signed newBoundRange );
98 void copyMapByBounds ( proshade_signed xFrom, proshade_signed xTo, proshade_signed yFrom, proshade_signed yTo, proshade_signed zFrom,
99 proshade_signed zTo, proshade_signed origXFrom, proshade_signed origYFrom, proshade_signed origZFrom,
100 proshade_signed yDimIndices, proshade_signed zDimIndices, proshade_signed origXDimIndices,
101 proshade_signed origYDimIndices, proshade_signed origZDimIndices, proshade_double*& newMap,
102 proshade_double* origMap );