26 #ifndef PROSHADE_MAPMANIP
27 #define PROSHADE_MAPMANIP
39 proshade_signed
myRound ( proshade_double x );
40 proshade_signed
myRound ( proshade_single x );
41 void determinePDBRanges ( gemmi::Structure pdbFile, proshade_single* xFrom, proshade_single* xTo, proshade_single* yFrom,
42 proshade_single* yTo, proshade_single* zFrom, proshade_single* zTo,
bool firstModel );
43 void findPDBCOMValues ( gemmi::Structure pdbFile, proshade_double *xCom, proshade_double *yCom, proshade_double *zCom,
bool firstModel );
44 void findMAPCOMValues ( proshade_double* map, proshade_double *xCom, proshade_double *yCom, proshade_double *zCom,
45 proshade_single xAngs, proshade_single yAngs, proshade_single zAngs, proshade_signed xFrom,
46 proshade_signed xTo, proshade_signed yFrom, proshade_signed yTo, proshade_signed zFrom,
47 proshade_signed zTo );
48 void rotatePDBCoordinates ( gemmi::Structure *pdbFile, proshade_double euA, proshade_double euB, proshade_double euG, proshade_double xCom,
49 proshade_double yCom, proshade_double zCom,
bool firstModel );
50 void translatePDBCoordinates ( gemmi::Structure *pdbFile, proshade_double transX, proshade_double transY, proshade_double transZ,
bool firstModel );
51 void changePDBBFactors ( gemmi::Structure *pdbFile, proshade_double newBFactorValue,
bool firstModel );
52 void removeWaters ( gemmi::Structure *pdbFile,
bool firstModel );
53 void movePDBForMapCalc ( gemmi::Structure *pdbFile, proshade_single xMov, proshade_single yMov, proshade_single zMov,
bool firstModel );
54 void generateMapFromPDB ( gemmi::Structure pdbFile, proshade_double*& map, proshade_single requestedResolution,
55 proshade_single xCell, proshade_single yCell, proshade_single zCell, proshade_signed* xTo,
56 proshade_signed* yTo, proshade_signed* zTo,
bool forceP1,
bool firstModel );
57 void moveMapByIndices ( proshade_single* xMov, proshade_single* yMov, proshade_single* zMov, proshade_single xAngs, proshade_single yAngs,
58 proshade_single zAngs, proshade_signed* xFrom, proshade_signed* xTo, proshade_signed* yFrom, proshade_signed* yTo,
59 proshade_signed* zFrom, proshade_signed* zTo, proshade_signed* xOrigin, proshade_signed* yOrigin,
60 proshade_signed* zOrigin );
61 void moveMapByFourier ( proshade_double*& map, proshade_single xMov, proshade_single yMov, proshade_single zMov, proshade_single xAngs,
62 proshade_single yAngs, proshade_single zAngs, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim );
63 void blurSharpenMap ( proshade_double*& map, proshade_double*& maskedMap, proshade_unsign xDimS, proshade_unsign yDimS,
64 proshade_unsign zDimS, proshade_single xAngs, proshade_single yAngs, proshade_single zAngs, proshade_single blurringFactor );
65 void getMaskFromBlurr ( proshade_double*& blurMap, proshade_double*& outMap, proshade_unsign xDimS, proshade_unsign yDimS,
66 proshade_unsign zDimS, proshade_single noIQRs );
67 void getNonZeroBounds ( proshade_double* map, proshade_signed xDim, proshade_signed yDim, proshade_signed zDim, 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, proshade_signed boundsDiffThres );
96 void distributeSpaceToBoundaries ( proshade_signed& minBound, proshade_signed& maxBound, proshade_signed oldBoundRange, proshade_signed newBoundRange );
97 void copyMapByBounds ( proshade_signed xFrom, proshade_signed xTo, proshade_signed yFrom, proshade_signed yTo, proshade_signed zFrom,
98 proshade_signed zTo, proshade_signed origXFrom, proshade_signed origYFrom, proshade_signed origZFrom,
99 proshade_unsign yDimIndices, proshade_unsign zDimIndices, proshade_unsign origXDimIndices,
100 proshade_unsign origYDimIndices, proshade_unsign origZDimIndices, proshade_double*& newMap,
101 proshade_double* origMap );