ProSHADE  0.7.6.6 (JUL 2022)
Protein Shape Detection
ProSHADE_settings Class Reference

This class stores all the settings and is passed to the executive classes instead of a multitude of parameters. More...

#include <ProSHADE_settings.hpp>

Public Member Functions

void determineBandwidthFromAngle (proshade_double uncertainty)
 This function determines the bandwidth for the spherical harmonics computation from the allowed rotation function angle uncertainty. More...
 
void determineBandwidth (proshade_unsign circumference)
 This function determines the bandwidth for the spherical harmonics computation. More...
 
void determineSphereDistances (proshade_single maxMapRange)
 This function determines the sphere distances for sphere mapping. More...
 
void determineIntegrationOrder (proshade_single maxMapRange)
 This function determines the integration order for the between spheres integration. More...
 
void determineAllSHValues (proshade_unsign xDim, proshade_unsign yDim, proshade_single xDimAngs, proshade_single yDimAngs, proshade_single zDimAngs)
 This function determines all the required values for spherical harmonics computation. More...
 
void setVariablesLeftOnAuto (void)
 Function to determine general values that the user left on auto-determination.
 
 ProSHADE_settings (void)
 Contructor for the ProSHADE_settings class. More...
 
 ProSHADE_settings (ProSHADE_settings *settings)
 Copy contructor for the ProSHADE_settings class. More...
 
 ProSHADE_settings (ProSHADE_Task task)
 Contructor for the ProSHADE_settings class for particular task. More...
 
 ~ProSHADE_settings (void)
 Destructor for the ProSHADE_settings class. More...
 
void addStructure (std::string structure)
 Adds a structure file name to the appropriate variable. More...
 
void setResolution (proshade_single resolution)
 Sets the requested resolution in the appropriate variable. More...
 
void setPDBBFactor (proshade_double newBF)
 Sets the requested B-factor value for PDB files in the appropriate variable. More...
 
void setNormalisation (bool normalise)
 Sets the requested map normalisation value in the appropriate variable. More...
 
void setMapInversion (bool mInv)
 Sets the requested map inversion value in the appropriate variable. More...
 
void setVerbosity (proshade_signed verbosity)
 Sets the requested verbosity in the appropriate variable. More...
 
void setMaskBlurFactor (proshade_single blurFac)
 Sets the requested map blurring factor in the appropriate variable. More...
 
void setMaskIQR (proshade_single noIQRs)
 Sets the requested number of IQRs for masking threshold in the appropriate variable. More...
 
void setMasking (bool mask)
 Sets the requested map masking decision value in the appropriate variable. More...
 
void setCorrelationMasking (bool corMask)
 Sets the requested map masking type in the appropriate variable. More...
 
void setTypicalNoiseSize (proshade_single typNoi)
 Sets the requested "fake" half-map kernel in the appropriate variable. More...
 
void setMinimumMaskSize (proshade_single minMS)
 Sets the requested minimum mask size. More...
 
void setMaskSaving (bool savMsk)
 Sets whether the mask should be saved. More...
 
void setMaskFilename (std::string mskFln)
 Sets where the mask should be saved. More...
 
void setAppliedMaskFilename (std::string mskFln)
 Sets the filename of the mask data that should be applied to the input map. More...
 
void setFourierWeightsFilename (std::string fWgFln)
 Sets the filename of the mask data that should be applied to the input map. More...
 
void setMapReboxing (bool reBx)
 Sets whether re-boxing needs to be done in the appropriate variable. More...
 
void setBoundsSpace (proshade_single boundsExSp)
 Sets the requested number of angstroms for extra space in re-boxing in the appropriate variable. More...
 
void setBoundsThreshold (proshade_signed boundsThres)
 Sets the threshold for number of indices difference acceptable to make index sizes same in the appropriate variable. More...
 
void setSameBoundaries (bool sameB)
 Sets whether same boundaries should be used in the appropriate variable. More...
 
void setOutputFilename (std::string oFileName)
 Sets the requested output file name in the appropriate variable. More...
 
void setMapResolutionChange (bool mrChange)
 Sets the requested map resolution change decision in the appropriate variable. More...
 
void setMapResolutionChangeTriLinear (bool mrChange)
 Sets the requested map resolution change decision using tri-linear interpolation in the appropriate variable. More...
 
void setMapResolutionOverSampling (proshade_single overS)
 Sets the requested map resolution over-sampling. More...
 
void setMapCentering (bool com)
 Sets the requested map centering decision value in the appropriate variable. More...
 
void setExtraSpace (proshade_single exSpace)
 Sets the requested map extra space value in the appropriate variable. More...
 
void setCoordExtraSpace (proshade_single exSpace)
 Sets the requested co-ordinates extra space value in the appropriate variable. More...
 
void setBoxCentering (proshade_double xPos, proshade_double yPos, proshade_double zPos)
 Sets the requested centre of box to be at the real space co-ordinates supplied. More...
 
void setBandwidth (proshade_unsign band)
 Sets the requested spherical harmonics bandwidth in the appropriate variable. More...
 
void setSphereDistances (proshade_single sphDist)
 Sets the requested distance between spheres in the appropriate variable. More...
 
void setIntegrationOrder (proshade_unsign intOrd)
 Sets the requested order for the Gauss-Legendre integration in the appropriate variable. More...
 
void setIntegrationApproxSteps (proshade_unsign noSteps)
 Sets the requested number of steps used in approximating Legendre polynomial decomposition to steps in the appropriate variable. More...
 
void setIntegrationSpeedUp (bool speedup)
 Sets the variable deciding if integration speedup should be used or not. More...
 
void setProgressiveSphereMapping (bool progSphMap)
 Sets the requested sphere mapping value settings approach in the appropriate variable. More...
 
void setEnergyLevelsComputation (bool enLevDesc)
 Sets whether the energy level distance descriptor should be computed. More...
 
void setTraceSigmaComputation (bool trSigVal)
 Sets whether the trace sigma distance descriptor should be computed. More...
 
void setRotationFunctionComputation (bool rotfVal)
 Sets whether the rotation function distance descriptor should be computed. More...
 
void setPeakNeighboursNumber (proshade_unsign pkS)
 Sets the number of neighbour values that have to be smaller for an index to be considered a peak. More...
 
void setPeakNaiveNoIQR (proshade_double noIQRs)
 Sets the number of IQRs from the median for threshold height a peak needs to be considered a peak. More...
 
void setPhaseUsage (bool phaseUsage)
 Sets whether the phase information will be used. More...
 
void setEnLevShellWeight (proshade_double mPower)
 Sets the weight of shell position for the energy levels computation. More...
 
void setGroupingSmoothingFactor (proshade_double smFact)
 Sets the grouping smoothing factor into the proper variable. More...
 
void setMissingPeakThreshold (proshade_double mpThres)
 Sets the threshold for starting the missing peaks procedure. More...
 
void setSymmetryCentreSearch (bool sCen)
 Sets the symmetry centre search on or off. More...
 
void setAxisComparisonThreshold (proshade_double axThres)
 Sets the threshold for matching symmetry axes. More...
 
void setAxisComparisonThresholdBehaviour (bool behav)
 Sets the automatic symmetry axis tolerance decreasing. More...
 
void setMinimumPeakForAxis (proshade_double minSP)
 Sets the minimum peak height for symmetry axis to be considered. More...
 
void setRequestedSymmetry (std::string val)
 Sets the user requested symmetry type. More...
 
void setRequestedFold (proshade_unsign val)
 Sets the user requested symmetry fold. More...
 
void setOverlaySaveFile (std::string filename)
 Sets the filename to which the overlay structure is to be save into. More...
 
void setOverlayJsonFile (std::string filename)
 Sets the filename to which the overlay operations are to be save into. More...
 
void setBicubicInterpolationSearch (bool bicubPeaks)
 Sets the bicubic interpolation on peaks. More...
 
void setMaxSymmetryFold (proshade_unsign maxFold)
 Sets the maximum symmetry fold (well, the maximum prime symmetry fold). More...
 
void setFSCThreshold (proshade_double fscThr)
 Sets the minimum FSC threshold for axis to be considered detected. More...
 
void setPeakThreshold (proshade_double peakThr)
 Sets the minimum peak height threshold for axis to be considered possible. More...
 
void setNegativeDensity (bool nDens)
 Sets the internal variable deciding whether input files negative density should be removed. More...
 
void getCommandLineParams (int argc, char **argv)
 This function parses the command line arguments into the settings object. More...
 
void printSettings (void)
 This function prints the current values in the settings object. More...
 

Public Attributes

ProSHADE_Task task
 This custom type variable determines which task to perfom (i.e. symmetry detection, distances computation, etc.).
 
std::vector< std::string > inputFiles
 This vector contains the filenames of all input structure files.
 
bool forceP1
 Should the P1 spacegroup be forced on the input PDB files?
 
bool removeWaters
 Should all waters be removed from input PDB files?
 
bool firstModelOnly
 Shoud only the first PDB model be used, or should all models be used?
 
bool removeNegativeDensity
 Should the negative density be removed from input files?
 
proshade_single requestedResolution
 The resolution to which the calculations are to be done.
 
bool changeMapResolution
 Should maps be re-sampled to obtain the required resolution?
 
bool changeMapResolutionTriLinear
 Should maps be re-sampled to obtain the required resolution?
 
proshade_single resolutionOversampling
 How much (%) should the requested resolution be over-sampled by map re-sampling?
 
proshade_double pdbBFactorNewVal
 Change all PDB B-factors to this value (for smooth maps).
 
proshade_unsign maxBandwidth
 The bandwidth of spherical harmonics decomposition for the largest sphere.
 
proshade_double rotationUncertainty
 Alternative to bandwidth - the angle in degrees to which the rotation function accuracy should be computed.
 
proshade_double maxRadius
 The maximum distance from centre in Angstroms for a map value to still be used.
 
bool usePhase
 If true, the full data will be used, if false, Patterson maps will be used instead and phased data will be converted to them. Also, only half of the spherical harmonics bands will be necessary as odd bands have to be 0 for Patterson maps.
 
proshade_single maxSphereDists
 The distance between spheres in spherical mapping for the largest sphere.
 
proshade_unsign integOrder
 The order required for full Gauss-Legendre integration between the spheres.
 
proshade_unsign integApproxSteps
 The number of steps taken in the approximation of Legendre polynomial decomposition to terms.
 
bool noIntegrationSpeedup
 This option turns off the integration speedup (only using abscissas and weights up to appropriate l for each E matrix index).
 
bool normaliseMap
 Should the map be normalised to mean 0 sd 1?
 
bool invertMap
 Should the map be inverted? Only use this if you think you have the wrong hand in your map.
 
proshade_single blurFactor
 This is the amount by which B-factors should be increased to create the blurred map for masking.
 
proshade_single maskingThresholdIQRs
 Number of inter-quartile ranges from the median to be used for thresholding the blurred map for masking.
 
bool maskMap
 Should the map be masked from noise?
 
bool useCorrelationMasking
 Should the blurring masking (false) or the correlation masking (true) be used?
 
proshade_single halfMapKernel
 This value in Angstrom will be used as the kernel for the "fake half-map" computation.
 
proshade_single correlationKernel
 This value in Angstrom will be used as the kernel for the map-FHM correlation computation.
 
bool saveMask
 Should the mask be saved?
 
std::string maskFileName
 The filename to which mask should be saved.
 
std::string appliedMaskFileName
 The filename from which mask data will be read from.
 
std::vector< proshade_double > calcBounds
 The boundaries to be used for deciding the calculation thresholds (band, integration order, etc.)
 
std::string fourierWeightsFileName
 The filename from which Fourier weights data will be read from.
 
bool reBoxMap
 This switch decides whether re-boxing is needed.
 
proshade_single boundsExtraSpace
 The number of extra angstroms to be added to all re-boxing bounds just for safety.
 
proshade_signed boundsSimilarityThreshold
 Number of indices which can be added just to make sure same size in indices is achieved.
 
bool useSameBounds
 Switch to say that the same boundaries as used for the first should be used for all input maps.
 
proshade_signed * forceBounds
 These will be the boundaries to be forced upon the map.
 
bool moveToCOM
 Logical value stating whether the structure should be moved to have its Centre Of Mass (COM) in the middle.
 
std::vector< proshade_double > boxCentre
 If box centre is to be in any other location, this variable will hold the real space location that should be it.
 
proshade_single addExtraSpace
 If this value is non-zero, this many angstroms of empty space will be added to the internal map.
 
proshade_single coOrdsExtraSpace
 This number of Angstroms will be added before and any co-ordinates to make sure there is no atom directly at the edge of the map.
 
bool progressiveSphereMapping
 If true, each shell will have its own angular resolution dependent on the actual number of map points which are available to it. If false, all shells will have the same settings.
 
std::string outName
 The file name where the output structure(s) should be saved.
 
bool computeEnergyLevelsDesc
 If true, the energy levels descriptor will be computed, otherwise all its computations will be omitted.
 
proshade_double enLevMatrixPowerWeight
 If RRP matrices shell position is to be weighted by putting the position as an exponent, this variable sets the exponent. Set to 0 for no weighting.
 
bool computeTraceSigmaDesc
 If true, the trace sigma descriptor will be computed, otherwise all its computations will be omitted.
 
bool computeRotationFuncDesc
 If true, the rotation function descriptor will be computed, otherwise all its computations will be omitted.
 
proshade_unsign peakNeighbours
 Number of points in any direction that have to be lower than the considered index in order to consider this index a peak.
 
proshade_double noIQRsFromMedianNaivePeak
 When doing peak searching, how many IQRs from the median the threshold for peak height should be (in terms of median of non-peak values).
 
proshade_double smoothingFactor
 This factor decides how small the group sizes should be - larger factor means more smaller groups.
 
bool findSymCentre
 Should phase-less map be used to determine centre of symmetry?
 
proshade_double symMissPeakThres
 Percentage of peaks that could be missing that would warrant starting the missing peaks search procedure.
 
proshade_double axisErrTolerance
 Allowed error on vector axis in in dot product ( acos ( 1 - axErr ) is the allowed difference in radians ).
 
bool axisErrToleranceDefault
 
proshade_double minSymPeak
 Minimum average peak for symmetry axis to be considered as "real".
 
std::string requestedSymmetryType
 The symmetry type requested by the user. Allowed values are C, D, T, O and I.
 
proshade_unsign requestedSymmetryFold
 The fold of the requested symmetry (only applicable to C and D symmetry types).
 
bool useBiCubicInterpolationOnPeaks
 This variable switch decides whether best symmetry is detected from peak indices, or whether bicubic interpolation is done to seatch for better axis between indices.
 
proshade_unsign maxSymmetryFold
 The highest symmetry fold to search for.
 
proshade_unsign supportedSymmetryFold
 Maximum supported fold by the map.
 
proshade_double fscThreshold
 The threshold for FSC value under which the axis is considered to be likely noise.
 
proshade_double peakThresholdMin
 The threshold for peak height above which axes are considered possible.
 
bool fastISearch
 Should FSC be computed for all possible I matches, or just for the best one according to FR?
 
std::vector< proshade_double > centrePosition
 The position of the centre of the map in "real space" co-ordinates.
 
std::string overlayStructureName
 The filename to which the rotated and translated moving structure is to be saved.
 
std::string rotTrsJSONFile
 The filename to which the rotation and translation operations are to be saved into.
 
proshade_signed verbose
 Should the software report on the progress, or just be quiet? Value between -1 (nothing) and 4 (loud)
 
proshade_signed messageShift
 This value allows shifting the messages to create more readable log for sub-processes.
 

Detailed Description

This class stores all the settings and is passed to the executive classes instead of a multitude of parameters.

The ProSHADE_settings class is a simple way of keeping all the settings together and easy to set by the user. Its constructor sets it to the default settings, so that if the user does not want to change these, he just needs to pass the object to the executing class and all is done.

Definition at line 36 of file ProSHADE_settings.hpp.

Constructor & Destructor Documentation

◆ ProSHADE_settings() [1/3]

ProSHADE_settings::ProSHADE_settings ( void  )

Contructor for the ProSHADE_settings class.

This is the generic constructor used in cases where the settings object will be filled based on run-time determined values. If you know the specific task to be done, it is recommended to use the constructor which takes the task as argument, so that the default values are set specifically for the task at hand.

Definition at line 37 of file ProSHADE.cpp.

39 {
40  //================================================ Settings regarding the task at hand
41  this->task = NA;
42 
43  //================================================ Settings regarding input files
44  this->forceP1 = true;
45  this->removeWaters = true;
46  this->firstModelOnly = true;
47  this->removeNegativeDensity = true;
48 
49  //================================================ Settings regarding the resolution of calculations
50  this->requestedResolution = -1.0;
51  this->changeMapResolution = false;
52  this->changeMapResolutionTriLinear = false;
53  this->resolutionOversampling = 0.5;
54 
55  //================================================ Settings regarding the PDB B-factor change
56  this->pdbBFactorNewVal = -1.0;
57 
58  //================================================ Settings regarding the bandwidth of calculations
59  this->maxBandwidth = 0;
60  this->rotationUncertainty = 0;
61  this->maxRadius = -1.0;
62 
63  //================================================ Settings regarding the phase
64  this->usePhase = true;
65 
66  //================================================ Settings regarding the spheres
67  this->maxSphereDists = 0.0;
68 
69  //================================================ Settings regarding the Gauss-Legendre integration
70  this->integOrder = 0;
71  this->integApproxSteps = 5;
72  this->noIntegrationSpeedup = false;
73 
74  //================================================ Settings regarding map normalisation
75  this->normaliseMap = false;
76 
77  //================================================ Settings regarding map inversion
78  this->invertMap = false;
79 
80  //================================================ Settings regarding map masking
81  this->blurFactor = 350.0;
82  this->maskingThresholdIQRs = 3.0;
83  this->maskMap = false;
84  this->useCorrelationMasking = false;
85  this->halfMapKernel = 0.0;
86  this->correlationKernel = 0.0;
87  this->saveMask = false;
88  this->maskFileName = "maskFile";
89  this->appliedMaskFileName = "";
90  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
91  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
92  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
93 
94  //================================================ Settings regarding Fourier weights
95  this->fourierWeightsFileName = "";
96 
97  //================================================ Settings regarding re-boxing
98  this->reBoxMap = false;
99  this->boundsExtraSpace = 3.0;
100  this->boundsSimilarityThreshold = 0;
101  this->useSameBounds = false;
102  this->forceBounds = new proshade_signed [6];
103 
104  //================================================ Settings regarding COM
105  this->moveToCOM = false;
106  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
107  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
108  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
109 
110  //================================================ Settings regarding extra cell space
111  this->addExtraSpace = 10.0;
112  this->coOrdsExtraSpace = 10.0;
113 
114  //================================================ Settings regarding shell settings
115  this->progressiveSphereMapping = true;
116 
117  //================================================ Settings regarding output file name
118  this->outName = "reBoxed";
119 
120  //================================================ Settings regarding distances computation
121  this->computeEnergyLevelsDesc = true;
122  this->computeTraceSigmaDesc = true;
123  this->computeRotationFuncDesc = true;
124  this->enLevMatrixPowerWeight = 1.0;
125 
126  //================================================ Settings regarding peak searching
127  this->peakNeighbours = 1;
128  this->noIQRsFromMedianNaivePeak = -999.9;
129 
130  //================================================ Settings regarding 1D grouping
131  this->smoothingFactor = 15.0;
132 
133  //================================================ Settings regarding the symmetry detection
134  this->findSymCentre = false;
135  this->useBiCubicInterpolationOnPeaks = true;
136  this->maxSymmetryFold = 30;
137  this->supportedSymmetryFold = 5;
138  this->fscThreshold = 0.3;
139  this->peakThresholdMin = 0.75;
140  this->fastISearch = true;
141  this->symMissPeakThres = 0.3;
142  this->axisErrTolerance = 0.01;
143  this->axisErrToleranceDefault = true;
144  this->minSymPeak = 0.5;
145  this->requestedSymmetryType = "";
146  this->requestedSymmetryFold = 0;
147 
148  //================================================ Settings regarding centre of map
149  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
150  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
151  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
152 
153  //================================================ Settings regarding the structure overlay
154  this->overlayStructureName = "movedStructure";
155  this->rotTrsJSONFile = "movedStructureOperations.json";
156 
157  //================================================ Settings regarding verbosity of the program
158  this->verbose = 1;
159  this->messageShift = 0;
160 
161  //================================================ Done
162 
163 }

◆ ProSHADE_settings() [2/3]

ProSHADE_settings::ProSHADE_settings ( ProSHADE_settings settings)

Copy contructor for the ProSHADE_settings class.

This is the constructor used to create a copy of supplied ProSHADE_settings object.

Parameters
[in]settingsThe ProSHADE_settings object that should be copied from.

Definition at line 174 of file ProSHADE.cpp.

176 {
177  //================================================ Settings regarding the task at hand
178  this->task = settings->task;
179 
180  //================================================ Settings regarding input files
181  for ( size_t fIt = 0; fIt < settings->inputFiles.size(); fIt++ ) { this->inputFiles.push_back ( settings->inputFiles.at(fIt) ); }
182  this->forceP1 = settings->forceP1;
183  this->removeWaters = settings->removeWaters;
184  this->firstModelOnly = settings->firstModelOnly;
186 
187  //================================================ Settings regarding the resolution of calculations
188  this->requestedResolution = settings->requestedResolution;
189  this->changeMapResolution = settings->changeMapResolution;
192 
193  //================================================ Settings regarding the PDB B-factor change
194  this->pdbBFactorNewVal = settings->pdbBFactorNewVal;
195 
196  //================================================ Settings regarding the bandwidth of calculations
197  this->maxBandwidth = settings->maxBandwidth;
198  this->rotationUncertainty = settings->rotationUncertainty;
199  this->maxRadius = settings->maxRadius;
200 
201  //================================================ Settings regarding the phase
202  this->usePhase = settings->usePhase;
203 
204  //================================================ Settings regarding the spheres
205  this->maxSphereDists = settings->maxSphereDists;
206 
207  //================================================ Settings regarding the Gauss-Legendre integration
208  this->integOrder = settings->integOrder;
209  this->integApproxSteps = settings->integApproxSteps;
210  this->noIntegrationSpeedup = settings->noIntegrationSpeedup;
211 
212  //================================================ Settings regarding map normalisation
213  this->normaliseMap = settings->normaliseMap;
214 
215  //================================================ Settings regarding map inversion
216  this->invertMap = settings->invertMap;
217 
218  //================================================ Settings regarding map masking
219  this->blurFactor = settings->blurFactor;
220  this->maskingThresholdIQRs = settings->maskingThresholdIQRs;
221  this->maskMap = settings->maskMap;
223  this->halfMapKernel = settings->halfMapKernel;
224  this->correlationKernel = settings->correlationKernel;
225  this->saveMask = settings->saveMask;
226  this->maskFileName = settings->maskFileName;
227  this->appliedMaskFileName = settings->appliedMaskFileName;
231 
232  //================================================ Settings regarding Fourier weights
234 
235  //================================================ Settings regarding re-boxing
236  this->reBoxMap = settings->reBoxMap;
237  this->boundsExtraSpace = settings->boundsExtraSpace;
239  this->useSameBounds = settings->useSameBounds;
240  this->forceBounds = new proshade_signed [6];
241  for ( size_t fbIt = 0; fbIt < 6; fbIt++ ) { this->forceBounds[fbIt] = settings->forceBounds[fbIt]; }
242 
243  //================================================ Settings regarding COM
244  this->moveToCOM = settings->moveToCOM;
248 
249  //================================================ Settings regarding extra cell space
250  this->addExtraSpace = settings->addExtraSpace;
251  this->coOrdsExtraSpace = settings->coOrdsExtraSpace;
252 
253  //================================================ Settings regarding shell settings
255 
256  //================================================ Settings regarding output file name
257  this->outName = settings->outName;
258 
259  //================================================ Settings regarding distances computation
264 
265  //================================================ Settings regarding peak searching
266  this->peakNeighbours = settings->peakNeighbours;
268 
269  //================================================ Settings regarding 1D grouping
270  this->smoothingFactor = settings->smoothingFactor;
271 
272  //================================================ Settings regarding the symmetry detection
273  this->findSymCentre = settings->findSymCentre;
275  this->maxSymmetryFold = settings->maxSymmetryFold;
277  this->fscThreshold = settings->fscThreshold;
278  this->peakThresholdMin = settings->peakThresholdMin;
279  this->fastISearch = settings->fastISearch;
280  this->symMissPeakThres = settings->symMissPeakThres;
281  this->axisErrTolerance = settings->axisErrTolerance;
282  this->axisErrToleranceDefault = settings->axisErrToleranceDefault;
283  this->minSymPeak = settings->minSymPeak;
286 
287  //================================================ Settings regarding centre of map
288  this->centrePosition.clear ( );
289  for ( size_t cpIt = 0; cpIt < settings->centrePosition.size(); cpIt++ )
290  {
292  }
293 
294  //================================================ Settings regarding the structure overlay
295  this->overlayStructureName = settings->overlayStructureName;
296  this->rotTrsJSONFile = settings->rotTrsJSONFile;
297 
298  //================================================ Settings regarding verbosity of the program
299  this->verbose = settings->verbose;
300  this->messageShift = settings->messageShift;
301 }

◆ ProSHADE_settings() [3/3]

ProSHADE_settings::ProSHADE_settings ( ProSHADE_Task  taskToPerform)

Contructor for the ProSHADE_settings class for particular task.

This is the generic constructor used in cases where the settings object will be filled based on run-time determined values. If you know the specific task to be done, it is recommended to use the constructor which takes the task as argument, so that the default values are set specifically for the task at hand.

Parameters
[in]taskToPerformThe task that should be performed by ProSHADE.

Definition at line 314 of file ProSHADE.cpp.

316 {
317  //================================================ Settings regarding the task at hand
318  this->task = taskToPerform;
319 
320  //================================================ Settings regarding input files
321  this->forceP1 = true;
322  this->removeWaters = true;
323  this->firstModelOnly = true;
324  this->removeNegativeDensity = true;
325 
326  //================================================ Settings regarding the resolution of calculations
327  this->requestedResolution = -1.0;
328  this->changeMapResolution = false;
329  this->changeMapResolutionTriLinear = false;
330  this->resolutionOversampling = 0.5;
331 
332  //================================================ Settings regarding the PDB B-factor change
333  this->pdbBFactorNewVal = -1.0;
334 
335  //================================================ Settings regarding the bandwidth of calculations
336  this->maxBandwidth = 0;
337  this->rotationUncertainty = 0;
338  this->maxRadius = -1.0;
339 
340  //================================================ Settings regarding the phase
341  this->usePhase = true;
342 
343  //================================================ Settings regarding the spheres
344  this->maxSphereDists = 0.0;
345 
346  //================================================ Settings regarding the Gauss-Legendre integration
347  this->integOrder = 0;
348  this->integApproxSteps = 5;
349  this->noIntegrationSpeedup = false;
350 
351  //================================================ Settings regarding map normalisation
352  this->normaliseMap = false;
353 
354  //================================================ Settings regarding map inversion
355  this->invertMap = false;
356 
357  //================================================ Settings regarding map masking
358  this->blurFactor = 350.0;
359  this->maskingThresholdIQRs = 3.0;
360  this->maskMap = false;
361  this->useCorrelationMasking = false;
362  this->halfMapKernel = 0.0;
363  this->correlationKernel = 0.0;
364  this->saveMask = false;
365  this->maskFileName = "maskFile";
366  this->appliedMaskFileName = "";
367  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
368  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
369  ProSHADE_internal_misc::addToDoubleVector ( &this->calcBounds, std::numeric_limits< proshade_double >::infinity() );
370 
371  //================================================ Settings regarding Fourier weights
372  this->fourierWeightsFileName = "";
373 
374  //================================================ Settings regarding COM
375  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
376  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
377  ProSHADE_internal_misc::addToDoubleVector ( &this->boxCentre, std::numeric_limits< proshade_double >::infinity() );
378 
379  //================================================ Settings regarding re-boxing
380  this->reBoxMap = false;
381  this->boundsExtraSpace = 3.0;
382  this->boundsSimilarityThreshold = 0;
383  this->useSameBounds = false;
384  this->forceBounds = new proshade_signed [6];
385 
386  //================================================ Settings regarding extra cell space
387  this->addExtraSpace = 10.0;
388  this->coOrdsExtraSpace = 10.0;
389 
390  //================================================ Settings regarding shell settings
391  this->progressiveSphereMapping = true;
392 
393  //================================================ Settings regarding output file name
394  this->outName = "reBoxed";
395 
396  //================================================ Settings regarding distances computation
397  this->computeEnergyLevelsDesc = true;
398  this->computeTraceSigmaDesc = true;
399  this->computeRotationFuncDesc = true;
400  this->enLevMatrixPowerWeight = 1.0;
401 
402  //================================================ Settings regarding peak searching
403  this->peakNeighbours = 1;
404  this->noIQRsFromMedianNaivePeak = -999.9;
405 
406  //================================================ Settings regarding 1D grouping
407  this->smoothingFactor = 15.0;
408 
409  //================================================ Settings regarding the symmetry detection
410  this->findSymCentre = false;
411  this->useBiCubicInterpolationOnPeaks = true;
412  this->maxSymmetryFold = 30;
413  this->supportedSymmetryFold = 5;
414  this->fscThreshold = 0.3;
415  this->peakThresholdMin = 0.75;
416  this->fastISearch = true;
417  this->symMissPeakThres = 0.3;
418  this->axisErrTolerance = 0.01;
419  this->axisErrToleranceDefault = true;
420  this->minSymPeak = 0.5;
421  this->requestedSymmetryType = "";
422  this->requestedSymmetryFold = 0;
423 
424  //================================================ Settings regarding centre of map
425  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
426  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
427  ProSHADE_internal_misc::addToDoubleVector ( &this->centrePosition, std::numeric_limits< proshade_double >::infinity() );
428 
429  //================================================ Settings regarding the structure overlay
430  this->overlayStructureName = "movedStructure";
431  this->rotTrsJSONFile = "movedStructureOperations.json";
432 
433  //================================================ Settings regarding verbosity of the program
434  this->verbose = 1;
435  this->messageShift = 0;
436 
437  //================================================ Task specific settings
438  switch ( this->task )
439  {
440  case NA:
441  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
442  std::cerr << "Error Code : " << "E000014" << std::endl << std::flush;
443  std::cerr << "ProSHADE version : " << PROSHADE_VERSION << std::endl << std::flush;
444  std::cerr << "File : " << "ProSHADE.cpp" << std::endl << std::flush;
445  std::cerr << "Line : " << 97 << std::endl << std::flush;
446  std::cerr << "Function : " << "ProSHADE_settings (Task) constructor" << std::endl << std::flush;
447  std::cerr << "Message : " << "No task has been specified for task specific constructor." << std::endl << std::flush;
448  std::cerr << "Further information : " << "This ProSHADE_settings class constructor is intended to\n : set the internal variables to default value given a\n : particular taks. By supplying this task as NA, this beats\n : the purpose of the constructor. Please use the\n : non-argumental constructor if task is not yet known." << std::endl << std::endl << std::flush;
450  exit ( EXIT_FAILURE );
451 
452  case Symmetry:
453  this->requestedResolution = 6.0;
454  this->pdbBFactorNewVal = 80.0;
455  this->changeMapResolution = true;
456  this->maskMap = false;
457  this->moveToCOM = true;
458  this->reBoxMap = false;
459  break;
460 
461  case Distances:
462  this->changeMapResolution = false;
463  this->maskMap = false;
464  this->moveToCOM = true;
465  this->reBoxMap = false;
466  break;
467 
468  case OverlayMap:
469  this->requestedResolution = 8.0;
470  this->changeMapResolution = true;
471  this->maskMap = false;
472  this->moveToCOM = false;
473  this->reBoxMap = false;
474  break;
475 
476  case MapManip:
477  this->changeMapResolution = false;
478  this->maskMap = true;
479  this->moveToCOM = false;
480  break;
481  }
482 
483  //================================================ Done
484 
485 }

◆ ~ProSHADE_settings()

ProSHADE_settings::~ProSHADE_settings ( void  )

Destructor for the ProSHADE_settings class.

This destructor is responsible for releasing all memory used by the settings object

Definition at line 494 of file ProSHADE.cpp.

496 {
497  //================================================ Release boundaries variable
498  delete[] this->forceBounds;
499 
500  //================================================ Done
501 
502 }

Member Function Documentation

◆ addStructure()

void ProSHADE_settings::addStructure ( std::string  structure)

Adds a structure file name to the appropriate variable.

This function takes a string defining the filename of a structure to be processed and adds it to the list of structures to be processed.

Parameters
[in]structureString file name to be added to the list of structures to process.

Definition at line 532 of file ProSHADE.cpp.

534 {
535  //================================================ Use C++ version independent vector processing
536  ProSHADE_internal_misc::addToStringVector ( &( this->inputFiles ), structure );
537 
538  //================================================ Done
539  return ;
540 
541 }

◆ determineAllSHValues()

void ProSHADE_settings::determineAllSHValues ( proshade_unsign  xDim,
proshade_unsign  yDim,
proshade_single  xDimAngs,
proshade_single  yDimAngs,
proshade_single  zDimAngs 
)

This function determines all the required values for spherical harmonics computation.

This function takes the maximum dimension size (in indices) and uses the settings pre-set by the user to set up the sphherical harmonics bandwidth, sphere sampling, sphere placement and spacing as well as the Gauss-Legendre integration order. This is either done using the user set values (if given), or using automated algorithm which only requires the resolution and max dimension.

Note that this function will use the resolution value to modify the values to be appropriate for the resolution supplied and not necessarily for the map sampling given.

Parameters
[in]xDimThe size of the x axis dimension in indices.
[in]yDimThe size of the y axis dimension in indices.
[in]xDimAngsThe size of the x-axis in Angstroms.
[in]yDimAngsThe size of the y-axis in Angstroms.
[in]zDimAngsThe size of the z-axis in Angstroms.
Warning
Because the automated algorithm decides the values based on the first structure size, by using it one gives up on the idea that DIST(A,B) == DIST(B,A). If this is important, then the user should set all of these values manually to the settings object to avoid this issue.

Definition at line 1817 of file ProSHADE.cpp.

1818 {
1819  //================================================ Print progress message
1820  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 1, "Preparing spherical harmonics environment.", this->messageShift );
1821 
1822  //================================================ Modify dims by resolution
1823  proshade_unsign theoXDim = static_cast< proshade_unsign > ( std::ceil ( xDimAngs / ( this->requestedResolution / 2.0f ) ) );
1824  proshade_unsign theoYDim = static_cast< proshade_unsign > ( std::ceil ( yDimAngs / ( this->requestedResolution / 2.0f ) ) );
1825  proshade_unsign theoZDim = static_cast< proshade_unsign > ( std::ceil ( zDimAngs / ( this->requestedResolution / 2.0f ) ) );
1826 
1827  //================================================ If max radius is given, use it for speed up
1828  if ( this->maxRadius > 0.0 )
1829  {
1830  //============================================ Sanity check
1831  if ( static_cast< proshade_single > ( this->maxRadius * 2.0 ) > std::max ( xDimAngs, std::max( yDimAngs, zDimAngs ) ) )
1832  {
1833  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested maximum radius is larger than the maximum map dimension. Using the maximum map dimension instead.", "WM00074" );
1834  }
1835 
1836  //============================================ Reasonable radius
1837  else
1838  {
1839  theoXDim = static_cast< proshade_unsign > ( std::ceil ( ( this->maxRadius * 2.0 ) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1840  theoYDim = static_cast< proshade_unsign > ( std::ceil ( ( this->maxRadius * 2.0 ) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1841  theoZDim = static_cast< proshade_unsign > ( std::ceil ( ( this->maxRadius * 2.0 ) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1842  }
1843  }
1844 
1845  //================================================ Reduce calculation cost by using only density filled map part instead of the whole box
1846  if ( ( std::isinf ( this->calcBounds.at(0) ) || std::isinf ( this->calcBounds.at(1) ) || std::isinf ( this->calcBounds.at(2) ) ) && ( this->maxRadius < 0.0 ) )
1847  {
1848  //== Determine from sphere variance
1849  }
1850  else
1851  {
1852  //============================================ Data from mask are available - use them!
1853  theoXDim = static_cast< proshade_unsign > ( std::ceil ( this->calcBounds.at(0) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1854  theoYDim = static_cast< proshade_unsign > ( std::ceil ( this->calcBounds.at(1) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1855  theoZDim = static_cast< proshade_unsign > ( std::ceil ( this->calcBounds.at(2) / static_cast< proshade_double > ( this->requestedResolution / 2.0f ) ) );
1856  }
1857 
1858  //================================================ Find maximum circumference
1859  proshade_unsign maxDim = std::max ( theoXDim, std::max ( theoYDim, theoZDim ) );
1860  proshade_unsign minDim = std::min ( theoXDim, std::min ( theoYDim, theoZDim ) );
1861  proshade_unsign midDim = 0;
1862  if ( ( xDim < maxDim ) && ( xDim > minDim ) ) { midDim = theoXDim; }
1863  else if ( ( yDim < maxDim ) && ( yDim > minDim ) ) { midDim = theoYDim; }
1864  else { midDim = theoZDim; }
1865 
1866  proshade_unsign circ = ( maxDim ) + ( midDim );
1867 
1868  //================================================ Bandwidth
1869  if ( this->rotationUncertainty > 0.0 ) { this->determineBandwidthFromAngle ( this->rotationUncertainty ); }
1870  else { this->determineBandwidth ( circ ); }
1871 
1872  //================================================ Find maximum diagonal in Angstroms
1873  proshade_single maxDiag = static_cast< proshade_single > ( std::sqrt ( std::pow ( static_cast<proshade_single> ( maxDim ) * ( this->requestedResolution / 2.0f ), 2.0f ) +
1874  std::pow ( static_cast<proshade_single> ( midDim ) * ( this->requestedResolution / 2.0f ), 2.0f ) ) );
1875 
1876  //================================================ Sphere distances
1877  this->determineSphereDistances ( maxDiag );
1878 
1879  //================================================ Integration order
1880  this->determineIntegrationOrder ( maxDiag );
1881 
1882  //================================================ Report function completion
1883  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 2, "Spherical harmonics environment prepared.", this->messageShift );
1884 
1885  //================================================ Done
1886  return ;
1887 
1888 }

◆ determineBandwidth()

void ProSHADE_settings::determineBandwidth ( proshade_unsign  circumference)

This function determines the bandwidth for the spherical harmonics computation.

This function is here to automstically determine the bandwidth to which the spherical harmonics computations should be done. It accomplishes this by checking if value is already set, and if not (value is 0), then it sets it to half of the maximum circumference of the map, in indices as recommended by Kostelec and Rockmore (2007).

Parameters
[in]circumferenceThe maximum circumference of the map.

Definition at line 1673 of file ProSHADE.cpp.

1674 {
1675  //================================================ Check the current settings value is set to auto
1676  if ( this->maxBandwidth != 0 )
1677  {
1678  std::stringstream hlpSS;
1679  hlpSS << "The bandwidth was determined as: " << this->maxBandwidth;
1680  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1681  return ;
1682  }
1683 
1684  //================================================ Determine automatically
1686 
1687  //================================================ Determine max detectable fold for symmetry detection ( 2.0 - we want the fold detectable not only on the surface, but also on the inside of the structure and 2.0 means 3/4 depth
1688  //================================================ 5.0 - we want at least 3 points between any two members of the same fold to make sure the fold it detected correctly )
1689  this->supportedSymmetryFold = static_cast< proshade_unsign > ( ( static_cast< proshade_double > ( circumference ) / 2.0 ) / 5.0 );
1690  if ( this->supportedSymmetryFold < 5 ) { this->supportedSymmetryFold = 5; }
1691 
1692  //================================================ Report progress
1693  std::stringstream hlpSS;
1694  hlpSS << "The bandwidth was determined as: " << this->maxBandwidth;
1695  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1696 
1697  //================================================ Done
1698  return ;
1699 
1700 }

◆ determineBandwidthFromAngle()

void ProSHADE_settings::determineBandwidthFromAngle ( proshade_double  uncertainty)

This function determines the bandwidth for the spherical harmonics computation from the allowed rotation function angle uncertainty.

This function makes use of the fact that the rotation function dimensions will be 2 * bandwidth and that the dimensions will be covering full 360 degrees rotation space. Therefore, by saying what is the maximum allowed angle uncertainty, the minimum required bandwidth value can be determined.

Parameters
[in]uncertaintyThe maximum allowed uncertainty on the rotation function.

Definition at line 1710 of file ProSHADE.cpp.

1711 {
1712  //================================================ Determine bandwidth
1713  if ( static_cast<proshade_unsign> ( std::ceil ( ( 360.0 / uncertainty ) / 2 ) ) % 2 == 0 )
1714  {
1715  this->maxBandwidth = static_cast<proshade_unsign> ( std::ceil ( ( 360.0 / uncertainty ) / 2.0 ) );
1716  }
1717  else
1718  {
1719  this->maxBandwidth = static_cast<proshade_unsign> ( std::ceil ( ( 360.0 / uncertainty ) / 2.0 ) ) + 1;
1720  }
1721 
1722  //================================================ Report progress
1723  std::stringstream hlpSS;
1724  hlpSS << "The bandwidth was determined from uncertainty " << uncertainty << " degrees as: " << this->maxBandwidth;
1725  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1726 
1727  //================================================ Done
1728  return ;
1729 
1730 }

◆ determineIntegrationOrder()

void ProSHADE_settings::determineIntegrationOrder ( proshade_single  maxMapRange)

This function determines the integration order for the between spheres integration.

This function determines the order of the Gauss-Legendre integration which needs to be done between the spheres. To do this, it uses the pre-coputed values of maxium distance between integration points for each order and the maxium distance between spheres expressed as a fraction of the total.

Parameters
[in]maxMapRangeThe maximum diagonal distance of the map in Angstroms.

Definition at line 1773 of file ProSHADE.cpp.

1774 {
1775  //================================================ Check the current settings value is set to auto
1776  if ( this->integOrder != 0 )
1777  {
1778  std::stringstream hlpSS;
1779  hlpSS << "The integration order was determined as " << this->integOrder;
1780  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1781  return ;
1782  }
1783 
1784  //================================================ Determine automatically
1786 
1787  //================================================ Report progress
1788  std::stringstream hlpSS;
1789  hlpSS << "The integration order was determined as " << this->integOrder;
1790  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1791 
1792  //================================================ Done
1793  return ;
1794 
1795 }

◆ determineSphereDistances()

void ProSHADE_settings::determineSphereDistances ( proshade_single  maxMapRange)

This function determines the sphere distances for sphere mapping.

This function determines the distance between two consecutive spheres in the sphere mappin galgorithm. It checks if this values has not been already set and if not, it sets it as the sampling rate (distance between any two map points). It then checks that there will be at least 10 spheres and if not, it changes the sphere distance until at least 10 spheres are to be produced.

Parameters
[in]maxMapRangeThe maximum diagonal distance of the map in Angstroms.

Definition at line 1741 of file ProSHADE.cpp.

1742 {
1743  //================================================ Check the current settings value is set to auto
1744  if ( this->maxSphereDists != 0.0f )
1745  {
1746  std::stringstream hlpSS;
1747  hlpSS << "The sphere distances were determined as " << this->maxSphereDists << " Angstroms.";
1748  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1749  return ;
1750  }
1751 
1752  //================================================ Determine automatically
1754 
1755  //================================================ Report progress
1756  std::stringstream hlpSS;
1757  hlpSS << "The sphere distances were determined as " << this->maxSphereDists << " Angstroms.";
1758  ProSHADE_internal_messages::printProgressMessage ( this->verbose, 3, hlpSS.str(), this->messageShift );
1759 
1760  //================================================ Done
1761  return ;
1762 
1763 }

◆ getCommandLineParams()

void ProSHADE_settings::getCommandLineParams ( int  argc,
char **  argv 
)

This function parses the command line arguments into the settings object.

Parameters
[in]argcThe count of the command line arguments (as passed to main function by the system).
[in]argvThe string containing the command line arguments (as passed to main function by the system).

Definition at line 2112 of file ProSHADE.cpp.

2114 {
2115  //================================================ If no command line arguments, print help
2116  if ( argc == 1 ) { ProSHADE_internal_messages::printHelp ( ); }
2117 
2118  //================================================ Long options struct
2119  const struct option_port longopts[] =
2120  {
2121  { "version", no_argument, nullptr, 'v' },
2122  { "help", no_argument, nullptr, 'h' },
2123  { "verbose", required_argument, nullptr, '!' },
2124  { "distances", no_argument, nullptr, 'D' },
2125  { "mapManip", no_argument, nullptr, 'M' },
2126  { "symmetry", no_argument, nullptr, 'S' },
2127  { "symCentre", no_argument, nullptr, 'I' },
2128  { "overlay", no_argument, nullptr, 'O' },
2129  { "file", required_argument, nullptr, 'f' },
2130  { "forceSpgP1", no_argument, nullptr, 'u' },
2131  { "removeWaters", no_argument, nullptr, 'w' },
2132  { "firstModel", no_argument, nullptr, 'x' },
2133  { "resolution", required_argument, nullptr, 'r' },
2134  { "bandwidth", required_argument, nullptr, 'b' },
2135  { "sphereDists", required_argument, nullptr, 's' },
2136  { "extraSpace", required_argument, nullptr, 'e' },
2137  { "integOrder", required_argument, nullptr, 'i' },
2138  { "integApprox", required_argument, nullptr, 't' },
2139  { "invertMap", no_argument, nullptr, '@' },
2140  { "normalise", no_argument, nullptr, '#' },
2141  { "mask", no_argument, nullptr, '$' },
2142  { "saveMask", no_argument, nullptr, '%' },
2143  { "maskFile", required_argument, nullptr, '^' },
2144  { "applyMask", required_argument, nullptr, 'G' },
2145  { "maskBlurring", required_argument, nullptr, '&' },
2146  { "maskThreshold", required_argument, nullptr, '*' },
2147  { "mapReboxing", no_argument, nullptr, 'R' },
2148  { "boundsSpace", required_argument, nullptr, '(' },
2149  { "boundsThreshold", required_argument, nullptr, ')' },
2150  { "sameBoundaries", no_argument, nullptr, '-' },
2151  { "reBoxedFilename", required_argument, nullptr, 'g' },
2152  { "pdbTempFact", required_argument, nullptr, 'd' },
2153  { "center", no_argument, nullptr, 'c' },
2154  { "changeMapResol", no_argument, nullptr, 'j' },
2155  { "changeMapTriLin", no_argument, nullptr, 'a' },
2156  { "oversamplRate", required_argument, nullptr, 'K' },
2157  { "noPhase", no_argument, nullptr, 'p' },
2158  { "progressive", no_argument, nullptr, 'k' },
2159  { "noEnL", no_argument, nullptr, 'l' },
2160  { "noTrS", no_argument, nullptr, 'm' },
2161  { "noFRF", no_argument, nullptr, 'n' },
2162  { "EnLWeight", required_argument, nullptr, '_' },
2163  { "peakNeigh", required_argument, nullptr, '=' },
2164  { "peakThres", required_argument, nullptr, '+' },
2165  { "missAxThres", required_argument, nullptr, '[' },
2166  { "sameAxComp", required_argument, nullptr, ']' },
2167  { "axisComBeh", no_argument, nullptr, 'q' },
2168  { "bicubSearch", no_argument, nullptr, 'A' },
2169  { "maxSymPrime", required_argument, nullptr, 'B' },
2170  { "minPeakHeight", required_argument, nullptr, 'o' },
2171  { "fscThres", required_argument, nullptr, 'C' },
2172  { "peakMinThres", required_argument, nullptr, 'E' },
2173  { "reqSym", required_argument, nullptr, '{' },
2174  { "overlayFile", required_argument, nullptr, '}' },
2175  { "overlayJSONFile", required_argument, nullptr, 'y' },
2176  { "angUncertain", required_argument, nullptr, ';' },
2177  { "maxRadius", required_argument, nullptr, 'J' },
2178  { "fourierWeights", required_argument, nullptr, 'z' },
2179  { "keepNegDens", no_argument, nullptr, 'F' },
2180  { "coordExtraSpace", required_argument, nullptr, 'H' },
2181  { nullptr, 0, nullptr, 0 }
2182  };
2183 
2184  //================================================ Short options string
2185  const char* const shortopts = "AaB:b:C:cDd:E:e:Ff:G:g:H:hIi:J:jK:klmMno:Opqr:Rs:St:uvwxy:z:!:@#$%^:&:*:(:):-_:=:+:[:]:{:}:;:";
2186 
2187  //================================================ Parsing the options
2188  while ( true )
2189  {
2190  //============================================ Read the next option
2191  int opt = getopt_long_port ( argc, argv, shortopts, longopts, nullptr );
2192 
2193  //============================================ Done parsing
2194  if ( opt == -1 )
2195  {
2196  break;
2197  }
2198 
2199  //============================================ For each option, set the internal values appropriately
2200  switch ( opt )
2201  {
2202  //======================================= Print version info
2203  case 'v':
2204  {
2206  exit ( EXIT_SUCCESS );
2207  }
2208 
2209  //======================================= User needs help
2210  case 'h':
2211  {
2213  }
2214 
2215  //======================================= Save the argument as the verbosity value, or if no value given, just set to 3
2216  case '!':
2217  {
2218  this->setVerbosity ( static_cast<proshade_signed> ( atoi ( optarg ) ) );
2219  continue;
2220  }
2221 
2222  //======================================= Set task to distances
2223  case 'D':
2224  {
2225  this->task = Distances;
2226  continue;
2227  }
2228 
2229  //======================================= Set task to map manipulation
2230  case 'M':
2231  {
2232  this->task = MapManip;
2233  continue;
2234  }
2235 
2236  //======================================= Set task to symmetry detection
2237  case 'S':
2238  {
2239  this->task = Symmetry;
2240 
2241  //=================================== Force default unless changed already by the user
2242  const FloatingPoint< proshade_single > lhs1 ( this->requestedResolution ), rhs1 ( -1.0f );
2243  if ( lhs1.AlmostEquals ( rhs1 ) ) { this->requestedResolution = 6.0; }
2244 
2245  const FloatingPoint< proshade_double > lhs2 ( this->pdbBFactorNewVal ), rhs2 ( -1.0 );
2246  if ( lhs2.AlmostEquals ( rhs2 ) ) { this->pdbBFactorNewVal = 80.0; }
2247  this->changeMapResolution = !this->changeMapResolution; // Switch value. This can be over-ridden by the user by using -j
2248  this->moveToCOM = !this->moveToCOM; // Switch value. This can be over-ridden by the user by using -c.
2249 
2250  continue;
2251  }
2252 
2253  //======================================= Set task to map overlay
2254  case 'O':
2255  {
2256  this->task = OverlayMap;
2257  continue;
2258  }
2259 
2260  //======================================= Save the argument as a file to read in
2261  case 'f':
2262  {
2263  this->addStructure ( std::string ( optarg ) );
2264  continue;
2265  }
2266 
2267  //======================================= Force the input PDB files to have P1 spacegroup
2268  case 'u':
2269  {
2270  this->forceP1 = !this->forceP1;
2271  continue;
2272  }
2273 
2274  //======================================= Remove waters from PDB input files?
2275  case 'w':
2276  {
2277  this->removeWaters = !this->removeWaters;
2278  continue;
2279  }
2280 
2281  //======================================= Use all models, or just the first one?
2282  case 'x':
2283  {
2284  this->firstModelOnly = !this->firstModelOnly;
2285  continue;
2286  }
2287 
2288  //======================================= Save the argument as the resolution value
2289  case 'r':
2290  {
2291  this->setResolution ( static_cast<proshade_single> ( atof ( optarg ) ) );
2292  continue;
2293  }
2294 
2295  //======================================= Save the argument as the bandwidth value
2296  case 'b':
2297  {
2298  this->setBandwidth ( static_cast<proshade_unsign> ( atoi ( optarg ) ) );
2299  continue;
2300  }
2301 
2302  //======================================= Save the argument as the extra space value
2303  case 'e':
2304  {
2305  this->setExtraSpace ( static_cast<proshade_single> ( atof ( optarg ) ) );
2306  continue;
2307  }
2308 
2309  //======================================= Save the argument as the co-ordinate extra space value
2310  case 'H':
2311  {
2312  this->setCoordExtraSpace ( static_cast<proshade_single> ( atof ( optarg ) ) );
2313  continue;
2314  }
2315 
2316  //======================================= Save the argument as the intaggration order value
2317  case 'i':
2318  {
2319  this->setIntegrationOrder ( static_cast<proshade_unsign> ( atof ( optarg ) ) );
2320  continue;
2321  }
2322 
2323  //======================================= Save the argument as the sphere distance value
2324  case 's':
2325  {
2326  this->setSphereDistances ( static_cast<proshade_single> ( atof ( optarg ) ) );
2327  continue;
2328  }
2329 
2330  //======================================= Save the argument as the number of steps for Legendre polynomial decomposition onto terms approximation
2331  case 't':
2332  {
2333  this->setIntegrationApproxSteps ( static_cast<proshade_unsign> ( atof ( optarg ) ) );
2334  continue;
2335  }
2336 
2337  //======================================= Set map inversion to true
2338  case '@':
2339  {
2340  this->setMapInversion ( true );
2341  continue;
2342  }
2343 
2344  //======================================= Set map normalisation to true
2345  case '#':
2346  {
2347  this->setNormalisation ( true );
2348  continue;
2349  }
2350 
2351  //======================================= Set map masking to true
2352  case '$':
2353  {
2354  this->setMasking ( true );
2355  continue;
2356  }
2357 
2358  //======================================= Set map masking to true and mask map saving to true as well
2359  case '%':
2360  {
2361  this->setMasking ( true );
2362  this->setMaskSaving ( true );
2363  continue;
2364  }
2365 
2366  //======================================= Save the argument as the mask filename value
2367  case '^':
2368  {
2369  this->setMaskFilename ( static_cast<std::string> ( optarg ) );
2370  continue;
2371  }
2372 
2373  //======================================= Save the argument as the mask filename value
2374  case 'G':
2375  {
2376  this->setAppliedMaskFilename ( static_cast<std::string> ( optarg ) );
2377  continue;
2378  }
2379 
2380  //======================================= Save the argument as the Fourier weights filename value
2381  case 'z':
2382  {
2383  this->setFourierWeightsFilename ( static_cast<std::string> ( optarg ) );
2384  continue;
2385  }
2386 
2387  //======================================= Save the argument as the mask blurring factor value
2388  case '&':
2389  {
2390  this->setMaskBlurFactor ( static_cast<proshade_single> ( atof ( optarg ) ) );
2391  continue;
2392  }
2393 
2394  //======================================= Save the argument as the mask threshold (IQR) value
2395  case '*':
2396  {
2397  this->setMaskIQR ( static_cast<proshade_single> ( atof ( optarg ) ) );
2398  continue;
2399  }
2400 
2401  //======================================= Set map reboxing to true
2402  case 'R':
2403  {
2404  this->setMasking ( true );
2405  this->setMapReboxing ( true );
2406  continue;
2407  }
2408 
2409  //======================================= Save the argument as the bounds extra space value
2410  case '(':
2411  {
2412  this->setBoundsSpace ( static_cast<proshade_single> ( atof ( optarg ) ) );
2413  continue;
2414  }
2415 
2416  //======================================= Save the argument as the bounds similarity threshold value
2417  case ')':
2418  {
2419  this->setBoundsThreshold ( static_cast<proshade_signed> ( atoi ( optarg ) ) );
2420  continue;
2421  }
2422 
2423  //======================================= Set same boundaries to true
2424  case '-':
2425  {
2426  this->setSameBoundaries ( true );
2427  continue;
2428  }
2429 
2430  //======================================= Save the argument as the re-boxed structure filename value
2431  case 'g':
2432  {
2433  this->setOutputFilename ( static_cast<std::string> ( optarg ) );
2434  continue;
2435  }
2436 
2437  //======================================= Save the argument as the PDB B-factor new constant value
2438  case 'd':
2439  {
2440  this->setPDBBFactor ( static_cast<proshade_double> ( atof ( optarg ) ) );
2441  continue;
2442  }
2443 
2444  //======================================= Set map centering to true
2445  case 'c':
2446  {
2447  this->moveToCOM = !this->moveToCOM;
2448  continue;
2449  }
2450 
2451  //======================================= Set map resolution change using Fourier transforms to true
2452  case 'j':
2453  {
2455  continue;
2456  }
2457 
2458  //======================================= Set map resolution change using real-space tri-linear interpolation to true
2459  case 'a':
2460  {
2461  this->setMapResolutionChangeTriLinear ( true );
2462  continue;
2463  }
2464 
2465  //======================================= Set map resolution over-sampling rate
2466  case 'K':
2467  {
2468  this->setMapResolutionOverSampling ( static_cast< proshade_single > ( atof ( optarg ) ) );
2469  continue;
2470  }
2471 
2472  //======================================= Set map phase removal to true
2473  case 'p':
2474  {
2475  this->setPhaseUsage ( false );
2476  continue;
2477  }
2478 
2479  //======================================= Set progressive shell mapping to true
2480  case 'k':
2481  {
2482  this->setProgressiveSphereMapping ( false );
2483  continue;
2484  }
2485 
2486  //======================================= Set energy level descriptor computation to false
2487  case 'l':
2488  {
2489  this->setEnergyLevelsComputation ( false );
2490  continue;
2491  }
2492 
2493  //======================================= Set trace sigma descriptor computation to false
2494  case 'm':
2495  {
2496  this->setTraceSigmaComputation ( false );
2497  continue;
2498  }
2499 
2500  //======================================= Set full rotation function descriptor computation to false
2501  case 'n':
2502  {
2503  this->setRotationFunctionComputation ( false );
2504  continue;
2505  }
2506 
2507  //======================================= Save the argument as the energy levels descriptor weight value
2508  case '_':
2509  {
2510  this->setEnLevShellWeight ( static_cast<proshade_double> ( atof ( optarg ) ) );
2511  continue;
2512  }
2513 
2514  //======================================= Save the argument as the peak neighbours minimum value
2515  case '=':
2516  {
2517  this->setPeakNeighboursNumber ( static_cast<proshade_unsign> ( atoi ( optarg ) ) );
2518  continue;
2519  }
2520 
2521  //======================================= Save the argument as the peak IQR from median naive small peaks removal value
2522  case '+':
2523  {
2524  this->setPeakNaiveNoIQR ( static_cast<proshade_double> ( atof ( optarg ) ) );
2525  continue;
2526  }
2527 
2528  //======================================= Save the argument as the symmetry centre search required value
2529  case 'I':
2530  {
2531  this->setSymmetryCentreSearch ( true );
2532  continue;
2533  }
2534 
2535  //======================================= Save the argument as the missing axis threshold value
2536  case '[':
2537  {
2538  this->setMissingPeakThreshold ( static_cast<proshade_double> ( atof ( optarg ) ) );
2539  continue;
2540  }
2541 
2542  //======================================= Save the argument as the missing axis threshold value
2543  case ']':
2544  {
2545  setAxisComparisonThreshold ( static_cast<proshade_double> ( atof ( optarg ) ) );
2546  continue;
2547  }
2548 
2549  //======================================= Save the argument as the missing axis threshold value
2550  case 'q':
2551  {
2552  this->setAxisComparisonThresholdBehaviour ( !this->axisErrToleranceDefault );
2553  continue;
2554  }
2555 
2556  //======================================= Save the argument as the bicubic interpolation search requirement value
2557  case 'A':
2558  {
2560  continue;
2561  }
2562 
2563  //======================================= Save the argument as the bicubic interpolation search requirement value
2564  case 'B':
2565  {
2566  setMaxSymmetryFold ( static_cast<proshade_unsign> ( atoi ( optarg ) ) );
2567  continue;
2568  }
2569 
2570  //======================================= Minimum peak height for axis
2571  case 'o':
2572  {
2573  this->minSymPeak = static_cast<proshade_double> ( atof ( optarg ) );
2574  continue;
2575  }
2576 
2577  //======================================= Minimum FSC value for axis to be detected
2578  case 'C':
2579  {
2580  this->setFSCThreshold ( static_cast<proshade_double> ( atof ( optarg ) ) );
2581  continue;
2582  }
2583 
2584  //======================================= Minimum peak height value for axis to be considered possible
2585  case 'E':
2586  {
2587  this->setPeakThreshold ( static_cast<proshade_double> ( atof ( optarg ) ) );
2588  continue;
2589  }
2590 
2591  //======================================= Save the argument as the requested symmetry and potentially fold value
2592  case '{':
2593  {
2594  std::string input = static_cast<std::string> ( optarg );
2595 
2596  if ( input.at(0) == 'C' )
2597  {
2598  this->setRequestedSymmetry ( "C" );
2599 
2600  std::string numHlp ( input.begin()+1, input.end() );
2601  if ( numHlp.length() > 0 ) { this->setRequestedFold ( static_cast< proshade_unsign > ( atoi ( numHlp.c_str() ) ) ); }
2602  else { std::cerr << "!!! ProSHADE ERROR !!! The input argument requests search for Cyclic/Dihedral symmetry, but does not specify the requested fold." << std::endl; exit ( EXIT_FAILURE ); }
2603  }
2604  else
2605  {
2606  if ( input.at(0) == 'D' )
2607  {
2608  this->setRequestedSymmetry ( "D" );
2609 
2610  std::string numHlp ( input.begin()+1, input.end() );
2611  if ( numHlp.length() > 0 ) { this->setRequestedFold ( static_cast< proshade_unsign > ( atoi ( numHlp.c_str() ) ) ); }
2612  else { std::cerr << "!!! ProSHADE ERROR !!! The input argument requests search for Cyclic/Dihedral symmetry, but does not specify the requested fold." << std::endl; exit ( EXIT_FAILURE ); }
2613  }
2614  else
2615  {
2616  if ( input.at(0) == 'T' )
2617  {
2618  this->setRequestedSymmetry ( "T" );
2619  }
2620  else
2621  {
2622  if ( input.at(0) == 'O' )
2623  {
2624  this->setRequestedSymmetry ( "O" );
2625  }
2626  else
2627  {
2628  if ( input.at(0) == 'I' )
2629  {
2630  this->setRequestedSymmetry ( "I" );
2631  }
2632  else
2633  {
2634  std::cerr << "!!! ProSHADE ERROR !!! Failed to parse the requested symmetry type. Allowed types are C, D, T, O and I, with C and D requiring to be followed by a number specifying the fold." << std::endl; exit ( EXIT_FAILURE );
2635  }
2636  }
2637  }
2638  }
2639  }
2640 
2641  continue;
2642  }
2643 
2644  //======================================= Save the argument as filename to save the overlay moved structure to value
2645  case '}':
2646  {
2647  this->setOverlaySaveFile ( static_cast<std::string> ( optarg ) );
2648  continue;
2649  }
2650 
2651  //======================================= Save the argument as filename to save the overlay operations to value
2652  case 'y':
2653  {
2654  this->setOverlayJsonFile ( static_cast<std::string> ( optarg ) );
2655  continue;
2656  }
2657 
2658  //======================================= Save the argument as angular uncertainty for bandwidth determination
2659  case ';':
2660  {
2661  this->rotationUncertainty = static_cast<proshade_double> ( atof ( optarg ) );
2662  continue;
2663  }
2664 
2665  //======================================= Save the argument as maximum map radius to be used
2666  case 'J':
2667  {
2668  this->maxRadius = static_cast< proshade_double > ( atof ( optarg ) );
2669  continue;
2670  }
2671 
2672  //======================================= Should the negative density from input files be removed?
2673  case 'F':
2674  {
2675  this->setNegativeDensity ( false );
2676  continue;
2677  }
2678 
2679  //======================================= Unknown option
2680  case '?':
2681  {
2682  //=================================== Save the argument as angular uncertainty for bandwidth determination
2683  if ( optopt )
2684  {
2685  std::cout << "!!! ProSHADE ERROR !!! Unrecognised short option -" << static_cast<char> ( optopt ) << " . Please use -h for help on the command line options." << std::endl;
2686  }
2687  else
2688  {
2689  std::cout << "!!! ProSHADE ERROR !!! Unrecognised long option " << argv[static_cast<int> (optind)-1] << " . Please use -h for help on the command line options." << std::endl;
2690  }
2691 
2692  //=================================== This case is handled by getopt_long, nothing more needed.
2693  exit ( EXIT_SUCCESS );
2694  }
2695 
2696  //======================================= Fallback option
2697  default:
2698  {
2700  }
2701  }
2702  }
2703 
2704  //================================================ Done
2705  return ;
2706 
2707 }

◆ printSettings()

void ProSHADE_settings::printSettings ( void  )

This function prints the current values in the settings object.

Warning
This is a debugging function of no real utility to the user.

Definition at line 2716 of file ProSHADE.cpp.

2718 {
2719  //================================================ Print the currest values in the settings object
2720  //== Settings regarding the task at hand
2721  std::stringstream strstr;
2722  strstr.str(std::string());
2723  if ( this->task == NA ) { strstr << "NA"; }
2724  if ( this->task == Distances ) { strstr << "DISTANCES COMPUTATION"; }
2725  if ( this->task == MapManip ) { strstr << "MAP MANIPULATION"; }
2726  if ( this->task == Symmetry ) { strstr << "SYMMETRY DETECTION"; }
2727  if ( this->task == OverlayMap ) { strstr << "MAP OVERLAY"; }
2728  printf ( "Task to perform : %37s\n", strstr.str().c_str() );
2729 
2730  //== Settings regarding the input files
2731  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->inputFiles.size() ); iter++ )
2732  {
2733  strstr.str(std::string());
2734  strstr << this->inputFiles.at(iter);
2735  printf ( "File(s) to process : %37s\n", strstr.str().c_str() );
2736  }
2737 
2738  strstr.str(std::string());
2739  if ( this->forceP1 ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2740  printf ( "Force P1 spacegroup : %37s\n", strstr.str().c_str() );
2741 
2742  strstr.str(std::string());
2743  if ( this->removeWaters ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2744  printf ( "Waters removed : %37s\n", strstr.str().c_str() );
2745 
2746  strstr.str(std::string());
2747  if ( this->firstModelOnly ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2748  printf ( "Only 1st model : %37s\n", strstr.str().c_str() );
2749 
2750  strstr.str(std::string());
2751  if ( this->removeNegativeDensity ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2752  printf ( "Remove neg. dens. : %37s\n", strstr.str().c_str() );
2753 
2754  //== Settings regarding the resolution of calculations
2755  strstr.str(std::string());
2756  strstr << this->requestedResolution;
2757  printf ( "Resolution (comp) : %37s\n", strstr.str().c_str() );
2758 
2759  strstr.str(std::string());
2760  if ( this->changeMapResolution ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2761  printf ( "Change map resol : %37s\n", strstr.str().c_str() );
2762 
2763  strstr.str(std::string());
2764  if ( this->changeMapResolutionTriLinear ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2765  printf ( "Change map tri-lin : %37s\n", strstr.str().c_str() );
2766 
2767  strstr.str(std::string());
2768  strstr << this->resolutionOversampling;
2769  printf ( "Resolution oversampl: %37s\n", strstr.str().c_str() );
2770 
2771  //== Settings regarding the PDB B-factor change
2772  strstr.str(std::string());
2773  strstr << this->pdbBFactorNewVal;
2774  printf ( "PDB B-factor const : %37s\n", strstr.str().c_str() );
2775 
2776  //== Settings regarding the bandwidth of calculations
2777  strstr.str(std::string());
2778  strstr << this->maxBandwidth;
2779  printf ( "Bandwidth : %37s\n", strstr.str().c_str() );
2780 
2781  strstr.str(std::string());
2782  strstr << this->rotationUncertainty;
2783  printf ( "Rotation doubt : %37s\n", strstr.str().c_str() );
2784 
2785  //== Settings regarding the phase
2786  strstr.str(std::string());
2787  if ( this->usePhase ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2788  printf ( "Use phase info : %37s\n", strstr.str().c_str() );
2789 
2790  //== Settings regarding the spheres
2791  strstr.str(std::string());
2792  strstr << this->maxSphereDists;
2793  printf ( "Sphere distances : %37s\n", strstr.str().c_str() );
2794 
2795  //== Settings regarding the Gauss-Legendre integration
2796  strstr.str(std::string());
2797  strstr << this->integOrder;
2798  printf ( "Integration order : %37s\n", strstr.str().c_str() );
2799 
2800  //== Settings regarding integration approximation steps
2801  strstr.str(std::string());
2802  strstr << this->integApproxSteps;
2803  printf ( "Integ. approx. steps: %37s\n", strstr.str().c_str() );
2804 
2805  //== Settings regarding integration speedup
2806  strstr.str(std::string());
2807  if ( this->noIntegrationSpeedup ) { strstr << "FALSE"; } else { strstr << "TRUE"; }
2808  printf ( "Integration speedup : %37s\n", strstr.str().c_str() );
2809 
2810  //== Settings regarding map normalisation
2811  strstr.str(std::string());
2812  if ( this->normaliseMap ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2813  printf ( "Map normalisation : %37s\n", strstr.str().c_str() );
2814 
2815  //== Settings regarding map inversion
2816  strstr.str(std::string());
2817  if ( this->invertMap ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2818  printf ( "Map inversion : %37s\n", strstr.str().c_str() );
2819 
2820  //== Settings regarding map masking
2821  strstr.str(std::string());
2822  strstr << this->blurFactor;
2823  printf ( "Map blurring : %37s\n", strstr.str().c_str() );
2824 
2825  strstr.str(std::string());
2826  strstr << this->maskingThresholdIQRs;
2827  printf ( "Masking threshold : %37s\n", strstr.str().c_str() );
2828 
2829  strstr.str(std::string());
2830  if ( this->maskMap ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2831  printf ( "Map masking : %37s\n", strstr.str().c_str() );
2832 
2833  strstr.str(std::string());
2834  if ( this->useCorrelationMasking ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2835  printf ( "Correlation mask : %37s\n", strstr.str().c_str() );
2836 
2837  strstr.str(std::string());
2838  strstr << this->halfMapKernel;
2839  printf ( "Half-map kernel : %37s\n", strstr.str().c_str() );
2840 
2841  strstr.str(std::string());
2842  strstr << this->correlationKernel;
2843  printf ( "Correlation kernel : %37s\n", strstr.str().c_str() );
2844 
2845  strstr.str(std::string());
2846  if ( this->saveMask ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2847  printf ( "Saving mask : %37s\n", strstr.str().c_str() );
2848 
2849  strstr.str(std::string());
2850  strstr << this->maskFileName;
2851  printf ( "Map mask filename : %37s\n", strstr.str().c_str() );
2852 
2853  strstr.str(std::string());
2854  strstr << this->calcBounds.at(0) << " | " << this->calcBounds.at(1) << " | " << this->calcBounds.at(2);
2855  printf ( "Calculation bounds : %37s\n", strstr.str().c_str() );
2856 
2857  //== Settings regarding re-boxing
2858  strstr.str(std::string());
2859  if ( this->reBoxMap ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2860  printf ( "Map re-boxing : %37s\n", strstr.str().c_str() );
2861 
2862  strstr.str(std::string());
2863  strstr << this->boundsExtraSpace;
2864  printf ( "Bounds extra space : %37s\n", strstr.str().c_str() );
2865 
2866  strstr.str(std::string());
2867  strstr << this->boundsSimilarityThreshold;
2868  printf ( "Bounds similarity : %37s\n", strstr.str().c_str() );
2869 
2870  strstr.str(std::string());
2871  if ( this->useSameBounds ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2872  printf ( "Same boundaries : %37s\n", strstr.str().c_str() );
2873 
2874  strstr.str(std::string());
2875  if ( this->forceBounds != nullptr )
2876  {
2877  strstr << this->forceBounds[0] << " - " << this->forceBounds[1] << " | " << this->forceBounds[2] << " - " << this->forceBounds[3] << " | " << this->forceBounds[4] << " - " << this->forceBounds[5];
2878  printf ( "Bounds similarity : %37s\n", strstr.str().c_str() );
2879  }
2880  else
2881  {
2882  strstr << "Not allocated";
2883  printf ( "Bounds similarity : %37s\n", strstr.str().c_str() );
2884  }
2885 
2886  //== Settings regarding COM
2887  strstr.str(std::string());
2888  if ( this->moveToCOM ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2889  printf ( "Map COM centering : %37s\n", strstr.str().c_str() );
2890 
2891  strstr.str(std::string());
2892  strstr << this->boxCentre.at(0) << " ; " << this->boxCentre.at(1) << " ; " << this->boxCentre.at(2);
2893  printf ( "BOX centering : %37s\n", strstr.str().c_str() );
2894 
2895  //== Settings regarding extra cell space
2896  strstr.str(std::string());
2897  strstr << this->addExtraSpace;
2898  printf ( "Extra space : %37s\n", strstr.str().c_str() );
2899 
2900  strstr.str(std::string());
2901  strstr << this->coOrdsExtraSpace;
2902  printf ( "Extra co-ord space : %37s\n", strstr.str().c_str() );
2903 
2904  //== Settings regarding shell settings
2905  strstr.str(std::string());
2906  if ( this->progressiveSphereMapping ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2907  printf ( "Progressive spheres : %37s\n", strstr.str().c_str() );
2908 
2909  //== Settings regarding output file name
2910  strstr.str(std::string());
2911  strstr << this->outName;
2912  printf ( "Re-boxed filename : %37s\n", strstr.str().c_str() );
2913 
2914  //== Settings regarding distances computation
2915  strstr.str(std::string());
2916  if ( this->computeEnergyLevelsDesc ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2917  printf ( "Energy lvl desc : %37s\n", strstr.str().c_str() );
2918 
2919  strstr.str(std::string());
2920  strstr << this->enLevMatrixPowerWeight;
2921  printf ( "Energy lvl weight : %37s\n", strstr.str().c_str() );
2922 
2923  strstr.str(std::string());
2924  if ( this->findSymCentre ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2925  printf ( "Symmetry centre : %37s\n", strstr.str().c_str() );
2926 
2927  strstr.str(std::string());
2928  if ( this->computeTraceSigmaDesc ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2929  printf ( "Tr sigma desc : %37s\n", strstr.str().c_str() );
2930 
2931  strstr.str(std::string());
2932  if ( this->computeRotationFuncDesc ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2933  printf ( "Full RF desc : %37s\n", strstr.str().c_str() );
2934 
2935  //== Settings regarding peak searching
2936  strstr.str(std::string());
2937  strstr << this->peakNeighbours;
2938  printf ( "Neightbours to peak : %37s\n", strstr.str().c_str() );
2939 
2940  strstr.str(std::string());
2941  strstr << this->noIQRsFromMedianNaivePeak;
2942  printf ( "Peak IQR threshold : %37s\n", strstr.str().c_str() );
2943 
2944  //== Settings regarding 1D grouping
2945  strstr.str(std::string());
2946  strstr << this->smoothingFactor;
2947  printf ( "Smoothing factor : %37s\n", strstr.str().c_str() );
2948 
2949  //== Settings regarding the symmetry detection
2950  strstr.str(std::string());
2951  strstr << this->symMissPeakThres;
2952  printf ( "Missing ax. thres : %37s\n", strstr.str().c_str() );
2953 
2954  strstr.str(std::string());
2955  strstr << this->axisErrTolerance;
2956  printf ( "Same ax. threshold : %37s\n", strstr.str().c_str() );
2957 
2958  strstr.str(std::string());
2959  if ( this->axisErrToleranceDefault ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2960  printf ( "Same ax. thre. decr.: %37s\n", strstr.str().c_str() );
2961 
2962  strstr.str(std::string());
2963  strstr << this->minSymPeak;
2964  printf ( "Min. sym. peak size : %37s\n", strstr.str().c_str() );
2965 
2966  strstr.str(std::string());
2967  strstr << this->requestedSymmetryType << "-" << this->requestedSymmetryFold;
2968  printf ( "Requested symm. : %37s\n", strstr.str().c_str() );
2969 
2970  strstr.str(std::string());
2971  if ( this->useBiCubicInterpolationOnPeaks ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2972  printf ( "Use bicubic interp. : %37s\n", strstr.str().c_str() );
2973 
2974  strstr.str(std::string());
2975  strstr << this->maxSymmetryFold;
2976  printf ( "Max symmetry fold : %37s\n", strstr.str().c_str() );
2977 
2978  strstr.str(std::string());
2979  strstr << this->fscThreshold;
2980  printf ( "FSC Threshold : %37s\n", strstr.str().c_str() );
2981 
2982  strstr.str(std::string());
2983  strstr << this->peakThresholdMin;
2984  printf ( "Peak Threshold : %37s\n", strstr.str().c_str() );
2985 
2986  strstr.str(std::string());
2987  if ( this->fastISearch ) { strstr << "TRUE"; } else { strstr << "FALSE"; }
2988  printf ( "Fast I Search : %37s\n", strstr.str().c_str() );
2989 
2990  //== Settings regarding the structure overlay
2991  strstr.str(std::string());
2992  strstr << this->overlayStructureName;
2993  printf ( "Overlay file : %37s\n", strstr.str().c_str() );
2994 
2995  strstr.str(std::string());
2996  strstr << this->rotTrsJSONFile;
2997  printf ( "JSON overlay file : %37s\n", strstr.str().c_str() );
2998 
2999  //== Settings regarding verbosity of the program
3000  strstr.str(std::string());
3001  strstr << this->verbose;
3002  printf ( "Verbosity : %37s\n", strstr.str().c_str() );
3003 
3004  //================================================ Done
3005  return ;
3006 
3007 }

◆ setAppliedMaskFilename()

void ProSHADE_settings::setAppliedMaskFilename ( std::string  mskFln)

Sets the filename of the mask data that should be applied to the input map.

This function sets the the filename from which mask should be read from.

Parameters
[in]mskFlnThe filename where the mask should be read from.

Definition at line 816 of file ProSHADE.cpp.

818 {
819  //================================================ Set the value
820  this->appliedMaskFileName = mskFln;
821 
822  //================================================ Done
823  return ;
824 
825 }

◆ setAxisComparisonThreshold()

void ProSHADE_settings::setAxisComparisonThreshold ( proshade_double  axThres)

Sets the threshold for matching symmetry axes.

When comparing symmetry axes, there needs to be a threshold allowing for some small error comming from the numberical inaccuracies. This is where you set this threshold.

Parameters
[in]axThresThe requested value for the axes comparison threshold.

Definition at line 1444 of file ProSHADE.cpp.

1446 {
1447  //================================================ Set the value
1448  this->axisErrTolerance = axThres;
1449 
1450  //================================================ Done
1451  return ;
1452 
1453 }

◆ setAxisComparisonThresholdBehaviour()

void ProSHADE_settings::setAxisComparisonThresholdBehaviour ( bool  behav)

Sets the automatic symmetry axis tolerance decreasing.

When comparing symmetry axes, there needs to be a threshold allowing for some small error comming from the numberical inaccuracies. It turns out that this threshold should take into account the ratio to the next symmetry angles, otherwise it would strongly prefer larger symmetries. This variable decides whether the threshold should be decreased based on the fold of sought åsymmetry or not.

Parameters
[in]behavThe requested value for the axes comparison threshold decreasing.

Definition at line 1467 of file ProSHADE.cpp.

1469 {
1470  //================================================ Set the value
1471  this->axisErrToleranceDefault = behav;
1472 
1473  //================================================ Done
1474  return ;
1475 
1476 }

◆ setBandwidth()

void ProSHADE_settings::setBandwidth ( proshade_unsign  band)

Sets the requested spherical harmonics bandwidth in the appropriate variable.

This function sets the bandwidth limit for the spherical harmonics computations in the appropriate variable.

Parameters
[in]bandThe requested value for spherical harmonics bandwidth (0 = AUTOMATIC DETERMINATION).

Definition at line 1110 of file ProSHADE.cpp.

1112 {
1113  //================================================ Set the value
1114  this->maxBandwidth = band;
1115 
1116  //================================================ Done
1117  return ;
1118 
1119 }

◆ setBicubicInterpolationSearch()

void ProSHADE_settings::setBicubicInterpolationSearch ( bool  bicubPeaks)

Sets the bicubic interpolation on peaks.

Parameters
[in]bicubPeaksShould bicubic interpolation be done to search for improved axis in between peak index values (DEFAULT - TRUE)?

Definition at line 1582 of file ProSHADE.cpp.

1584 {
1585  //================================================ Set the value
1586  this->useBiCubicInterpolationOnPeaks = bicubPeaks;
1587 
1588  //================================================ Done
1589  return ;
1590 
1591 }

◆ setBoundsSpace()

void ProSHADE_settings::setBoundsSpace ( proshade_single  boundsExSp)

Sets the requested number of angstroms for extra space in re-boxing in the appropriate variable.

This function sets the number of angstroms to be added both before and after the absolute bounds for re-boxing to the correct variable.

Parameters
[in]boundsExSpThe requested value for the extra re-boxing space in angstroms.

Definition at line 877 of file ProSHADE.cpp.

879 {
880  //================================================ Set the value
881  this->boundsExtraSpace = boundsExSp;
882 
883  //================================================ Done
884  return ;
885 
886 }

◆ setBoundsThreshold()

void ProSHADE_settings::setBoundsThreshold ( proshade_signed  boundsThres)

Sets the threshold for number of indices difference acceptable to make index sizes same in the appropriate variable.

This function sets the number of indices by which two dimensions can differ for them to be still made the same size.

Parameters
[in]boundsThresThe requested value for the bouds difference threhshold.

Definition at line 897 of file ProSHADE.cpp.

899 {
900  //================================================ Set the value
901  this->boundsSimilarityThreshold = boundsThres;
902 
903  //================================================ Done
904  return ;
905 
906 }

◆ setBoxCentering()

void ProSHADE_settings::setBoxCentering ( proshade_double  xPos,
proshade_double  yPos,
proshade_double  zPos 
)

Sets the requested centre of box to be at the real space co-ordinates supplied.

This function sets the real space co-ordinates that should become the centre of the map box.

Parameters
[in]xPosThe requested value for the x-axis real-world position of the centre of the map box.
[in]xPosThe requested value for the x-axis real-world position of the centre of the map box.
[in]xPosThe requested value for the x-axis real-world position of the centre of the map box.

Definition at line 1041 of file ProSHADE.cpp.

1043 {
1044  //================================================ If COM is on, issue warning!
1045  if ( this->moveToCOM )
1046  {
1047  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested specific map box centre and also centre of mass centring. These are mutually exclusive - turning COM centring off.", "WP00067" );
1048  this->moveToCOM = false;
1049  }
1050 
1051  //================================================ Set the values
1052  this->boxCentre.at(0) = xPos;
1053  this->boxCentre.at(1) = yPos;
1054  this->boxCentre.at(2) = zPos;
1055 
1056  //================================================ Done
1057  return ;
1058 
1059 }

◆ setCoordExtraSpace()

void ProSHADE_settings::setCoordExtraSpace ( proshade_single  exSpace)

Sets the requested co-ordinates extra space value in the appropriate variable.

This function sets the amount of extra space to be added when co-ordinates are converted to map to make sure atoms are not at the boundary the appropriate variable.

Parameters
[in]exSpaceThe requested amount of extra space.

Definition at line 1090 of file ProSHADE.cpp.

1092 {
1093  //================================================ Set the value
1094  this->coOrdsExtraSpace = exSpace;
1095 
1096  //================================================ Done
1097  return ;
1098 
1099 }

◆ setCorrelationMasking()

void ProSHADE_settings::setCorrelationMasking ( bool  corMask)

Sets the requested map masking type in the appropriate variable.

This function sets the map masking type. If false, the standard map blurring masking will be used, while if true, the new "fake" half-map correlation mask will be used.

Parameters
[in]corMaskThe requested value for the map masking type.

Definition at line 714 of file ProSHADE.cpp.

716 {
717  //================================================ Set the value
718  this->useCorrelationMasking = corMask;
719 
720  //================================================ Done
721  return ;
722 
723 }

◆ setEnergyLevelsComputation()

void ProSHADE_settings::setEnergyLevelsComputation ( bool  enLevDesc)

Sets whether the energy level distance descriptor should be computed.

This function sets the boolean variable deciding whether the RRP matrices and the energy levels descriptor should be computed or not.

Parameters
[in]enLevDescThe requested value for the energy levels descriptor computation switch.

Definition at line 1230 of file ProSHADE.cpp.

1232 {
1233  //======================================== Set the value
1234  this->computeEnergyLevelsDesc = enLevDesc;
1235 
1236  //======================================== Done
1237  return ;
1238 
1239 }

◆ setEnLevShellWeight()

void ProSHADE_settings::setEnLevShellWeight ( proshade_double  mPower)

Sets the weight of shell position for the energy levels computation.

During the computation of the energy levels descriptor, Pearson's correlation coefficient is computed between different shells with the same band. The shell index can by expanded to its mPower exponential to give higher shells more weight, or vice versa. To do this, set the mPower value as you see fit.

Parameters
[in]mPowerThe requested value for the shell position exponential.

Definition at line 1359 of file ProSHADE.cpp.

1361 {
1362  //================================================ Set the value
1363  this->enLevMatrixPowerWeight = mPower;
1364 
1365  //================================================ Done
1366  return ;
1367 
1368 }

◆ setExtraSpace()

void ProSHADE_settings::setExtraSpace ( proshade_single  exSpace)

Sets the requested map extra space value in the appropriate variable.

This function sets the amount of extra space to be added to internal maps in the appropriate variable.

Parameters
[in]exSpaceThe requested amount of extra space.

Definition at line 1070 of file ProSHADE.cpp.

1072 {
1073  //================================================ Set the value
1074  this->addExtraSpace = exSpace;
1075 
1076  //================================================ Done
1077  return ;
1078 
1079 }

◆ setFourierWeightsFilename()

void ProSHADE_settings::setFourierWeightsFilename ( std::string  fWgFln)

Sets the filename of the mask data that should be applied to the input map.

This function sets the the filename from which mask should be read from.

Parameters
[in]mskFlnThe filename where the mask should be read from.

Definition at line 836 of file ProSHADE.cpp.

838 {
839  //================================================ Set the value
840  this->fourierWeightsFileName = fWgFln;
841 
842  //================================================ Done
843  return ;
844 
845 }

◆ setFSCThreshold()

void ProSHADE_settings::setFSCThreshold ( proshade_double  fscThr)

Sets the minimum FSC threshold for axis to be considered detected.

Parameters
[in]fscThrThe minimum axis FSC threshold for the axis to be considered detected.

Definition at line 1618 of file ProSHADE.cpp.

1620 {
1621  //================================================ Set the value
1622  this->fscThreshold = fscThr;
1623 
1624  //================================================ Done
1625  return ;
1626 
1627 }

◆ setGroupingSmoothingFactor()

void ProSHADE_settings::setGroupingSmoothingFactor ( proshade_double  smFact)

Sets the grouping smoothing factor into the proper variable.

When detecting symmetry, it is worth grouping the possible rotations by their self-rotation function peak heights. In this process, the distribution of peak heights needs to be smoothen over and this factor decides how smooth it should be. Small value leads to all peaks being in the same group, while large number means each peak will be in its own group.

Parameters
[in]smFactThe requested value for the grouping smoothing factor.

Definition at line 1381 of file ProSHADE.cpp.

1383 {
1384  //================================================ Set the value
1385  this->smoothingFactor = smFact;
1386 
1387  //================================================ Done
1388  return ;
1389 
1390 }

◆ setIntegrationApproxSteps()

void ProSHADE_settings::setIntegrationApproxSteps ( proshade_unsign  noSteps)

Sets the requested number of steps used in approximating Legendre polynomial decomposition to steps in the appropriate variable.

This function sets the number of steps that will be used by the Gauss-Legendre quadrature preparation, mor specifically when the Legendre polynomials are being decomposed into terms.

Parameters
[in]noStepsThe requested value for the number of steps to be used.

Definition at line 1171 of file ProSHADE.cpp.

1173 {
1174  //================================================ Set the value
1175  this->integApproxSteps = noSteps;
1176 
1177  //================================================ Done
1178  return ;
1179 
1180 }

◆ setIntegrationOrder()

void ProSHADE_settings::setIntegrationOrder ( proshade_unsign  intOrd)

Sets the requested order for the Gauss-Legendre integration in the appropriate variable.

This function sets the Gauss-Legendre integration between the spheres order value in the appropriate variable.

Parameters
[in]intOrdThe requested value for the Gauss-Legendre integration order (0 = AUTOMATIC DETERMINATION).

Definition at line 1150 of file ProSHADE.cpp.

1152 {
1153  //================================================ Set the value
1154  this->integOrder = intOrd;
1155 
1156  //================================================ Done
1157  return ;
1158 
1159 }

◆ setIntegrationSpeedUp()

void ProSHADE_settings::setIntegrationSpeedUp ( bool  speedup)

Sets the variable deciding if integration speedup should be used or not.

Parameters
[in]speedupShould the speedup be used?

Definition at line 1189 of file ProSHADE.cpp.

1191 {
1192  //================================================ Set the value
1193  this->noIntegrationSpeedup = !speedup;
1194 
1195  //================================================ Done
1196  return ;
1197 
1198 }

◆ setMapCentering()

void ProSHADE_settings::setMapCentering ( bool  com)

Sets the requested map centering decision value in the appropriate variable.

This function sets the map centering using COM between on and off.

Parameters
[in]comThe requested value for the map centering (on = true, off = false).

Definition at line 1019 of file ProSHADE.cpp.

1021 {
1022  //================================================ Set the value
1023  this->moveToCOM = com;
1024 
1025  //================================================ Done
1026  return ;
1027 
1028 }

◆ setMapInversion()

void ProSHADE_settings::setMapInversion ( bool  mInv)

Sets the requested map inversion value in the appropriate variable.

This function sets the map inversion between on and off.

Parameters
[in]mInvShould the map be inverted? (on = true, off = false).

Definition at line 612 of file ProSHADE.cpp.

614 {
615  //================================================ Set the value
616  this->invertMap = mInv;
617 
618  //================================================ Done
619  return ;
620 
621 }

◆ setMapReboxing()

void ProSHADE_settings::setMapReboxing ( bool  reBx)

Sets whether re-boxing needs to be done in the appropriate variable.

This function sets the switch as to whether re-boxing needs to be done to the correct variable.

Parameters
[in]reBxThe requested value for the re-boxing switch variable.

Definition at line 856 of file ProSHADE.cpp.

858 {
859  //================================================ Set the value
860  this->reBoxMap = reBx;
861 
862  //================================================ Done
863  return ;
864 
865 }

◆ setMapResolutionChange()

void ProSHADE_settings::setMapResolutionChange ( bool  mrChange)

Sets the requested map resolution change decision in the appropriate variable.

This function sets the map resolution change between on and off.

Parameters
[in]mrChangeThe requested value for the map resolution change (on = true, off = false).

Definition at line 959 of file ProSHADE.cpp.

961 {
962  //================================================ Set the value
963  this->changeMapResolution = mrChange;
964 
965  //================================================ Done
966  return ;
967 
968 }

◆ setMapResolutionChangeTriLinear()

void ProSHADE_settings::setMapResolutionChangeTriLinear ( bool  mrChange)

Sets the requested map resolution change decision using tri-linear interpolation in the appropriate variable.

This function sets the tri-linear interpolation map resolution change between on and off.

Parameters
[in]mrChangeThe requested value for the map resolution change (on = true, off = false).

Definition at line 979 of file ProSHADE.cpp.

981 {
982  //================================================ Set the value
983  this->changeMapResolutionTriLinear = mrChange;
984 
985  //================================================ Done
986  return ;
987 
988 }

◆ setMapResolutionOverSampling()

void ProSHADE_settings::setMapResolutionOverSampling ( proshade_single  overS)

Sets the requested map resolution over-sampling.

This function sets the over-sampling to be applied to the requested resolution.

Parameters
[in]overSThe requested value for the resolution over-sampling.

Definition at line 999 of file ProSHADE.cpp.

1001 {
1002  //================================================ Set the value
1003  this->resolutionOversampling = overS;
1004 
1005  //================================================ Done
1006  return ;
1007 
1008 }

◆ setMaskBlurFactor()

void ProSHADE_settings::setMaskBlurFactor ( proshade_single  blurFac)

Sets the requested map blurring factor in the appropriate variable.

This function sets the blurring / sharpening factor for map masking in the appropriate variable.

Parameters
[in]blurFacThe requested value for the blurring factor.

Definition at line 652 of file ProSHADE.cpp.

654 {
655  //================================================ Set the value
656  this->blurFactor = blurFac;
657 
658  //================================================ Done
659  return ;
660 
661 }

◆ setMaskFilename()

void ProSHADE_settings::setMaskFilename ( std::string  mskFln)

Sets where the mask should be saved.

This function sets the the filename to which mask should be saved.

Parameters
[in]mskFlnThe filename where the mask should be saved.

Definition at line 796 of file ProSHADE.cpp.

798 {
799  //================================================ Set the value
800  this->maskFileName = mskFln;
801 
802  //================================================ Done
803  return ;
804 
805 }

◆ setMasking()

void ProSHADE_settings::setMasking ( bool  mask)

Sets the requested map masking decision value in the appropriate variable.

This function sets the map masking between on and off.

Parameters
[in]maskThe requested value for the map masking (on = true, off = false).

Definition at line 693 of file ProSHADE.cpp.

695 {
696  //================================================ Set the value
697  this->maskMap = mask;
698 
699  //================================================ Done
700  return ;
701 
702 }

◆ setMaskIQR()

void ProSHADE_settings::setMaskIQR ( proshade_single  noIQRs)

Sets the requested number of IQRs for masking threshold in the appropriate variable.

This function sets the number of interquartile ranges from the median to be used for map masking in the correct variable.

Parameters
[in]noIQRsThe requested value for the number of IQRs from the median to be used for masking threshold.

Definition at line 673 of file ProSHADE.cpp.

675 {
676  //================================================ Set the value
677  this->maskingThresholdIQRs = noIQRs;
678 
679  //================================================ Done
680  return ;
681 
682 }

◆ setMaskSaving()

void ProSHADE_settings::setMaskSaving ( bool  savMsk)

Sets whether the mask should be saved.

This function sets the switch variable to whether mask should be saved.

Parameters
[in]savMskIf true, mask will be saved, otherwise it will not be.

Definition at line 776 of file ProSHADE.cpp.

778 {
779  //================================================ Set the value
780  this->saveMask = savMsk;
781 
782  //================================================ Done
783  return ;
784 
785 }

◆ setMaxSymmetryFold()

void ProSHADE_settings::setMaxSymmetryFold ( proshade_unsign  maxFold)

Sets the maximum symmetry fold (well, the maximum prime symmetry fold).

Parameters
[in]maxFoldMaximum prime number fold that will be searched for. Still its multiples may also be found.

Definition at line 1600 of file ProSHADE.cpp.

1602 {
1603  //================================================ Set the value
1604  this->maxSymmetryFold = maxFold;
1605 
1606  //================================================ Done
1607  return ;
1608 
1609 }

◆ setMinimumMaskSize()

void ProSHADE_settings::setMinimumMaskSize ( proshade_single  minMS)

Sets the requested minimum mask size.

This function sets the kernel for the local correlation computation between the "fake half-map" and the original map.

Parameters
[in]minMSThe requested value for the minimum mask size in Angstrom.

Definition at line 756 of file ProSHADE.cpp.

758 {
759  //================================================ Set the value
760  this->correlationKernel = minMS;
761 
762  //================================================ Done
763  return ;
764 
765 }

◆ setMinimumPeakForAxis()

void ProSHADE_settings::setMinimumPeakForAxis ( proshade_double  minSP)

Sets the minimum peak height for symmetry axis to be considered.

When considering if a symmetry axis is "real" and should be acted upon, its average peak height will need to be higher than this value.

Parameters
[in]minSPThe requested value for the minimum peak height.

Definition at line 1488 of file ProSHADE.cpp.

1490 {
1491  //================================================ Set the value
1492  this->minSymPeak = minSP;
1493 
1494  //================================================ Done
1495  return ;
1496 
1497 }

◆ setMissingPeakThreshold()

void ProSHADE_settings::setMissingPeakThreshold ( proshade_double  mpThres)

Sets the threshold for starting the missing peaks procedure.

When only mpThres percentage of peaks are missing during symmetry detection, the full missing peak detection procedure will be started. Otherwise, the symmetry will not be detected at all.

Parameters
[in]mpThresThe requested value for the missing peaks procedure starting threshold.

Definition at line 1402 of file ProSHADE.cpp.

1404 {
1405  //================================================ Set the value
1406  this->symMissPeakThres = mpThres;
1407 
1408  //================================================ Done
1409  return ;
1410 
1411 }

◆ setNegativeDensity()

void ProSHADE_settings::setNegativeDensity ( bool  nDens)

Sets the internal variable deciding whether input files negative density should be removed.

Parameters
[in]nDensShould the negative density be removed from input files?

Definition at line 1654 of file ProSHADE.cpp.

1656 {
1657  //================================================ Set the value
1658  this->removeNegativeDensity = nDens;
1659 
1660  //================================================ Done
1661  return ;
1662 
1663 }

◆ setNormalisation()

void ProSHADE_settings::setNormalisation ( bool  normalise)

Sets the requested map normalisation value in the appropriate variable.

This function sets the map normalisation between on and off.

Parameters
[in]normaliseThe requested value for the map normalisation (on = true, off = false).

Definition at line 592 of file ProSHADE.cpp.

594 {
595  //================================================ Set the value
596  this->normaliseMap = normalise;
597 
598  //================================================ Done
599  return ;
600 
601 }

◆ setOutputFilename()

void ProSHADE_settings::setOutputFilename ( std::string  oFileName)

Sets the requested output file name in the appropriate variable.

This function sets the filename to which the output structure(s) should be saved. This variable is used by multiple tasks and therefore cannot be more specifically described here.

Parameters
[in]oFileNameThe requested value for the output file name variable.

Definition at line 939 of file ProSHADE.cpp.

941 {
942  //================================================ Set the value
943  this->outName = oFileName;
944 
945  //================================================ Done
946  return ;
947 
948 }

◆ setOverlayJsonFile()

void ProSHADE_settings::setOverlayJsonFile ( std::string  filename)

Sets the filename to which the overlay operations are to be save into.

Parameters
[in]filenameThe filename to which the overlay operations are to be saved to.

Definition at line 1564 of file ProSHADE.cpp.

1566 {
1567  //================================================ Set the value
1568  this->rotTrsJSONFile = filename;
1569 
1570  //================================================ Done
1571  return ;
1572 
1573 }

◆ setOverlaySaveFile()

void ProSHADE_settings::setOverlaySaveFile ( std::string  filename)

Sets the filename to which the overlay structure is to be save into.

Parameters
[in]filenameThe filename to which the overlay structure is to be saved to.

Definition at line 1546 of file ProSHADE.cpp.

1548 {
1549  //================================================ Set the value
1550  this->overlayStructureName = filename;
1551 
1552  //================================================ Done
1553  return ;
1554 
1555 }

◆ setPDBBFactor()

void ProSHADE_settings::setPDBBFactor ( proshade_double  newBF)

Sets the requested B-factor value for PDB files in the appropriate variable.

This function sets the B-factor value for PDB files in the appropriate variable.

Parameters
[in]newBFThe requested value for the B-factor value for PDB files for smooth and processible maps.

Definition at line 572 of file ProSHADE.cpp.

574 {
575  //================================================ Set the value
576  this->pdbBFactorNewVal = newBF;
577 
578  //================================================ Done
579  return ;
580 
581 }

◆ setPeakNaiveNoIQR()

void ProSHADE_settings::setPeakNaiveNoIQR ( proshade_double  noIQRs)

Sets the number of IQRs from the median for threshold height a peak needs to be considered a peak.

This function sets the number of IQRs from the median that determine the threshold used to determine if a 'naive' peak is a peak, or just a random local maxim in the background. The set from which median and IQR is computed is the non-peak values.

Parameters
[in]noIQRsThe requested number of IQRs from the median.

Definition at line 1315 of file ProSHADE.cpp.

1317 {
1318  //================================================ Set the value
1319  this->noIQRsFromMedianNaivePeak = noIQRs;
1320 
1321  //================================================ Done
1322  return ;
1323 
1324 }

◆ setPeakNeighboursNumber()

void ProSHADE_settings::setPeakNeighboursNumber ( proshade_unsign  pkS)

Sets the number of neighbour values that have to be smaller for an index to be considered a peak.

This function sets the number of neighbouring points (in all three dimensions and both positive and negative direction) that have to have lower value than the currently considered index in order for this index to be considered as a peak.

Parameters
[in]pkSThe requested value for the number of neighbours being lower for a peak.

Definition at line 1293 of file ProSHADE.cpp.

1295 {
1296  //================================================ Set the value
1297  this->peakNeighbours = pkS;
1298 
1299  //================================================ Done
1300  return ;
1301 
1302 }

◆ setPeakThreshold()

void ProSHADE_settings::setPeakThreshold ( proshade_double  peakThr)

Sets the minimum peak height threshold for axis to be considered possible.

Parameters
[in]fscThrThe minimum axis peak height threshold for the axis to be considered possible.

Definition at line 1636 of file ProSHADE.cpp.

1638 {
1639  //================================================ Set the value
1640  this->peakThresholdMin = peakThr;
1641 
1642  //================================================ Done
1643  return ;
1644 
1645 }

◆ setPhaseUsage()

void ProSHADE_settings::setPhaseUsage ( bool  phaseUsage)

Sets whether the phase information will be used.

This function sets the boolean variable deciding whether the phase information should be used. If not, Patterson maps will be used instead of density maps and the 3D data will be converted to them. Also, only even bands of the spherical harmonics decomposition will be computed as the odd bands must be 0.

Parameters
[in]phaseUsageThe requested value for the phase usage switch.

Definition at line 1337 of file ProSHADE.cpp.

1339 {
1340  //================================================ Set the value
1341  this->usePhase = phaseUsage;
1342 
1343  //================================================ Done
1344  return ;
1345 
1346 }

◆ setProgressiveSphereMapping()

void ProSHADE_settings::setProgressiveSphereMapping ( bool  progSphMap)

Sets the requested sphere mapping value settings approach in the appropriate variable.

This function sets the progressive sphere mapping approach between on and off.

Parameters
[in]comThe requested value for the progressive sphere mapping (on = true, off = false).

Definition at line 1209 of file ProSHADE.cpp.

1211 {
1212  //================================================ Set the value
1213  this->progressiveSphereMapping = progSphMap;
1214 
1215  //================================================ Done
1216  return ;
1217 
1218 }

◆ setRequestedFold()

void ProSHADE_settings::setRequestedFold ( proshade_unsign  val)

Sets the user requested symmetry fold.

When symmetry detection is started, this symmetry fold will be exclusively sought.

Parameters
[in]valThe requested symmetry fold for the structure.

Definition at line 1528 of file ProSHADE.cpp.

1530 {
1531  //================================================ Set the value
1532  this->requestedSymmetryFold = val;
1533 
1534  //================================================ Done
1535  return ;
1536 
1537 }

◆ setRequestedSymmetry()

void ProSHADE_settings::setRequestedSymmetry ( std::string  val)

Sets the user requested symmetry type.

When symmetry detection is started, this symmetry type will be exclusively sought.

Parameters
[in]valThe requested symmetry type for the structure.

Definition at line 1508 of file ProSHADE.cpp.

1510 {
1511  //================================================ Set the value
1512  this->requestedSymmetryType = val;
1513 
1514  //================================================ Done
1515  return ;
1516 
1517 }

◆ setResolution()

void ProSHADE_settings::setResolution ( proshade_single  resolution)

Sets the requested resolution in the appropriate variable.

This function sets the resolution in the appropriate variable.

Parameters
[in]resolutionThe requested value for the resolution to which the computations are to be done.

Definition at line 552 of file ProSHADE.cpp.

554 {
555  //================================================ Set the value
556  this->requestedResolution = resolution;
557 
558  //================================================ Done
559  return ;
560 
561 }

◆ setRotationFunctionComputation()

void ProSHADE_settings::setRotationFunctionComputation ( bool  rotfVal)

Sets whether the rotation function distance descriptor should be computed.

This function sets the boolean variable deciding whether the inverse SO(3) transform and the rotation function descriptor should be computed or not.

Parameters
[in]rotfValThe requested value for the rotation function descriptor computation switch.

Definition at line 1272 of file ProSHADE.cpp.

1274 {
1275  //================================================ Set the value
1276  this->computeRotationFuncDesc = rotfVal;
1277 
1278  //================================================ Done
1279  return ;
1280 
1281 }

◆ setSameBoundaries()

void ProSHADE_settings::setSameBoundaries ( bool  sameB)

Sets whether same boundaries should be used in the appropriate variable.

This function sets the switch as to whether the same boundaries as for the first map should be forced upon the rest if the input maps.

Parameters
[in]sameBThe requested value for the same boundaries as first structure switch variable.

Definition at line 918 of file ProSHADE.cpp.

920 {
921  //================================================ Set the value
922  this->useSameBounds = sameB;
923 
924  //================================================ Done
925  return ;
926 
927 }

◆ setSphereDistances()

void ProSHADE_settings::setSphereDistances ( proshade_single  sphDist)

Sets the requested distance between spheres in the appropriate variable.

This function sets the distance between any two consecutive spheres in the sphere mapping of a map in the appropriate variable.

Parameters
[in]sphDistThe requested value for distance between spheres (0 = AUTOMATIC DETERMINATION).

Definition at line 1130 of file ProSHADE.cpp.

1132 {
1133  //================================================ Set the value
1134  this->maxSphereDists = sphDist;
1135 
1136  //================================================ Done
1137  return ;
1138 
1139 }

◆ setSymmetryCentreSearch()

void ProSHADE_settings::setSymmetryCentreSearch ( bool  sCen)

Sets the symmetry centre search on or off.

This function sets the correct internal variable so that either the search for centre of symmetry using phase-less symmetry detection first is used or not. If this is on, it will take a lot more time...

Parameters
[in]sCenShould the symmetry centre be sought?.

Definition at line 1423 of file ProSHADE.cpp.

1425 {
1426  //================================================ Set the value
1427  this->findSymCentre = sCen;
1428 
1429  //================================================ Done
1430  return ;
1431 
1432 }

◆ setTraceSigmaComputation()

void ProSHADE_settings::setTraceSigmaComputation ( bool  trSigVal)

Sets whether the trace sigma distance descriptor should be computed.

This function sets the boolean variable deciding whether the E matrices and the trace sigma descriptor should be computed or not.

Parameters
[in]trSigValThe requested value for the trace sigma descriptor computation switch.

Definition at line 1251 of file ProSHADE.cpp.

1253 {
1254  //================================================ Set the value
1255  this->computeTraceSigmaDesc = trSigVal;
1256 
1257  //================================================ Done
1258  return ;
1259 
1260 }

◆ setTypicalNoiseSize()

void ProSHADE_settings::setTypicalNoiseSize ( proshade_single  typNoi)

Sets the requested "fake" half-map kernel in the appropriate variable.

This function sets the kernel for creating the "fake" half-map. What is meant here is that a new map is created as the average of neighbours from the original map - this is useful in masking. This value then sets how many neighbours.

Parameters
[in]typNoiThe requested value for the typical noise size in Angstrom.

Definition at line 736 of file ProSHADE.cpp.

738 {
739  //================================================ Set the value
740  this->halfMapKernel = typNoi;
741 
742  //================================================ Done
743  return ;
744 
745 }

◆ setVerbosity()

void ProSHADE_settings::setVerbosity ( proshade_signed  verbosity)

Sets the requested verbosity in the appropriate variable.

This function sets the varbosity of the ProSHADE run in the appropriate variable.

Parameters
[in]verboseThe requested value for verbosity. -1 means no output, while 4 means loud output

Definition at line 632 of file ProSHADE.cpp.

634 {
635  //================================================ Set the value
636  this->verbose = verbosity;
637 
638  //================================================ Done
639  return ;
640 
641 }

The documentation for this class was generated from the following files:
ProSHADE_settings::noIQRsFromMedianNaivePeak
proshade_double noIQRsFromMedianNaivePeak
When doing peak searching, how many IQRs from the median the threshold for peak height should be (in ...
Definition: ProSHADE_settings.hpp:124
ProSHADE_settings::setOverlayJsonFile
void setOverlayJsonFile(std::string filename)
Sets the filename to which the overlay operations are to be save into.
Definition: ProSHADE.cpp:1564
ProSHADE_settings::maxBandwidth
proshade_unsign maxBandwidth
The bandwidth of spherical harmonics decomposition for the largest sphere.
Definition: ProSHADE_settings.hpp:59
ProSHADE_settings::integOrder
proshade_unsign integOrder
The order required for full Gauss-Legendre integration between the spheres.
Definition: ProSHADE_settings.hpp:70
ProSHADE_settings::rotTrsJSONFile
std::string rotTrsJSONFile
The filename to which the rotation and translation operations are to be saved into.
Definition: ProSHADE_settings.hpp:149
ProSHADE_settings::setEnLevShellWeight
void setEnLevShellWeight(proshade_double mPower)
Sets the weight of shell position for the energy levels computation.
Definition: ProSHADE.cpp:1359
ProSHADE_settings::computeTraceSigmaDesc
bool computeTraceSigmaDesc
If true, the trace sigma descriptor will be computed, otherwise all its computations will be omitted.
Definition: ProSHADE_settings.hpp:119
ProSHADE_settings::findSymCentre
bool findSymCentre
Should phase-less map be used to determine centre of symmetry?
Definition: ProSHADE_settings.hpp:130
ProSHADE_settings::setTraceSigmaComputation
void setTraceSigmaComputation(bool trSigVal)
Sets whether the trace sigma distance descriptor should be computed.
Definition: ProSHADE.cpp:1251
ProSHADE_settings::computeRotationFuncDesc
bool computeRotationFuncDesc
If true, the rotation function descriptor will be computed, otherwise all its computations will be om...
Definition: ProSHADE_settings.hpp:120
ProSHADE_settings::setSameBoundaries
void setSameBoundaries(bool sameB)
Sets whether same boundaries should be used in the appropriate variable.
Definition: ProSHADE.cpp:918
ProSHADE_settings::maxSymmetryFold
proshade_unsign maxSymmetryFold
The highest symmetry fold to search for.
Definition: ProSHADE_settings.hpp:138
ProSHADE_settings::setAppliedMaskFilename
void setAppliedMaskFilename(std::string mskFln)
Sets the filename of the mask data that should be applied to the input map.
Definition: ProSHADE.cpp:816
ProSHADE_settings::boundsExtraSpace
proshade_single boundsExtraSpace
The number of extra angstroms to be added to all re-boxing bounds just for safety.
Definition: ProSHADE_settings.hpp:97
ProSHADE_settings::setBicubicInterpolationSearch
void setBicubicInterpolationSearch(bool bicubPeaks)
Sets the bicubic interpolation on peaks.
Definition: ProSHADE.cpp:1582
ProSHADE_settings::setPeakNaiveNoIQR
void setPeakNaiveNoIQR(proshade_double noIQRs)
Sets the number of IQRs from the median for threshold height a peak needs to be considered a peak.
Definition: ProSHADE.cpp:1315
ProSHADE_settings::outName
std::string outName
The file name where the output structure(s) should be saved.
Definition: ProSHADE_settings.hpp:114
ProSHADE_settings::setMapInversion
void setMapInversion(bool mInv)
Sets the requested map inversion value in the appropriate variable.
Definition: ProSHADE.cpp:612
ProSHADE_settings::setPeakNeighboursNumber
void setPeakNeighboursNumber(proshade_unsign pkS)
Sets the number of neighbour values that have to be smaller for an index to be considered a peak.
Definition: ProSHADE.cpp:1293
ProSHADE_settings::blurFactor
proshade_single blurFactor
This is the amount by which B-factors should be increased to create the blurred map for masking.
Definition: ProSHADE_settings.hpp:81
ProSHADE_settings::maskMap
bool maskMap
Should the map be masked from noise?
Definition: ProSHADE_settings.hpp:83
ProSHADE_settings::requestedSymmetryFold
proshade_unsign requestedSymmetryFold
The fold of the requested symmetry (only applicable to C and D symmetry types).
Definition: ProSHADE_settings.hpp:136
ProSHADE_settings::requestedSymmetryType
std::string requestedSymmetryType
The symmetry type requested by the user. Allowed values are C, D, T, O and I.
Definition: ProSHADE_settings.hpp:135
ProSHADE_settings::setSphereDistances
void setSphereDistances(proshade_single sphDist)
Sets the requested distance between spheres in the appropriate variable.
Definition: ProSHADE.cpp:1130
ProSHADE_settings::setVerbosity
void setVerbosity(proshade_signed verbosity)
Sets the requested verbosity in the appropriate variable.
Definition: ProSHADE.cpp:632
ProSHADE_settings::removeNegativeDensity
bool removeNegativeDensity
Should the negative density be removed from input files?
Definition: ProSHADE_settings.hpp:47
ProSHADE_settings::saveMask
bool saveMask
Should the mask be saved?
Definition: ProSHADE_settings.hpp:87
ProSHADE_settings::requestedResolution
proshade_single requestedResolution
The resolution to which the calculations are to be done.
Definition: ProSHADE_settings.hpp:50
ProSHADE_settings::minSymPeak
proshade_double minSymPeak
Minimum average peak for symmetry axis to be considered as "real".
Definition: ProSHADE_settings.hpp:134
ProSHADE_settings::setAxisComparisonThresholdBehaviour
void setAxisComparisonThresholdBehaviour(bool behav)
Sets the automatic symmetry axis tolerance decreasing.
Definition: ProSHADE.cpp:1467
ProSHADE_settings::progressiveSphereMapping
bool progressiveSphereMapping
If true, each shell will have its own angular resolution dependent on the actual number of map points...
Definition: ProSHADE_settings.hpp:111
ProSHADE_settings::maxSphereDists
proshade_single maxSphereDists
The distance between spheres in spherical mapping for the largest sphere.
Definition: ProSHADE_settings.hpp:67
ProSHADE_settings::symMissPeakThres
proshade_double symMissPeakThres
Percentage of peaks that could be missing that would warrant starting the missing peaks search proced...
Definition: ProSHADE_settings.hpp:131
ProSHADE_settings::setPDBBFactor
void setPDBBFactor(proshade_double newBF)
Sets the requested B-factor value for PDB files in the appropriate variable.
Definition: ProSHADE.cpp:572
ProSHADE_settings::addStructure
void addStructure(std::string structure)
Adds a structure file name to the appropriate variable.
Definition: ProSHADE.cpp:532
ProSHADE_settings::determineIntegrationOrder
void determineIntegrationOrder(proshade_single maxMapRange)
This function determines the integration order for the between spheres integration.
Definition: ProSHADE.cpp:1773
ProSHADE_settings::setMaskIQR
void setMaskIQR(proshade_single noIQRs)
Sets the requested number of IQRs for masking threshold in the appropriate variable.
Definition: ProSHADE.cpp:673
ProSHADE_settings::setMissingPeakThreshold
void setMissingPeakThreshold(proshade_double mpThres)
Sets the threshold for starting the missing peaks procedure.
Definition: ProSHADE.cpp:1402
ProSHADE_settings::maskingThresholdIQRs
proshade_single maskingThresholdIQRs
Number of inter-quartile ranges from the median to be used for thresholding the blurred map for maski...
Definition: ProSHADE_settings.hpp:82
ProSHADE_settings::useCorrelationMasking
bool useCorrelationMasking
Should the blurring masking (false) or the correlation masking (true) be used?
Definition: ProSHADE_settings.hpp:84
ProSHADE_settings::usePhase
bool usePhase
If true, the full data will be used, if false, Patterson maps will be used instead and phased data wi...
Definition: ProSHADE_settings.hpp:64
ProSHADE_settings::setSymmetryCentreSearch
void setSymmetryCentreSearch(bool sCen)
Sets the symmetry centre search on or off.
Definition: ProSHADE.cpp:1423
ProSHADE_settings::setMaskBlurFactor
void setMaskBlurFactor(proshade_single blurFac)
Sets the requested map blurring factor in the appropriate variable.
Definition: ProSHADE.cpp:652
ProSHADE_internal_messages::printWarningMessage
void printWarningMessage(proshade_signed verbose, std::string message, std::string warnCode)
General stderr message printing (used for warnings).
Definition: ProSHADE_messages.cpp:102
ProSHADE_settings::setPeakThreshold
void setPeakThreshold(proshade_double peakThr)
Sets the minimum peak height threshold for axis to be considered possible.
Definition: ProSHADE.cpp:1636
ProSHADE_settings::setPhaseUsage
void setPhaseUsage(bool phaseUsage)
Sets whether the phase information will be used.
Definition: ProSHADE.cpp:1337
ProSHADE_settings::maskFileName
std::string maskFileName
The filename to which mask should be saved.
Definition: ProSHADE_settings.hpp:88
ProSHADE_settings::verbose
proshade_signed verbose
Should the software report on the progress, or just be quiet? Value between -1 (nothing) and 4 (loud)
Definition: ProSHADE_settings.hpp:152
ProSHADE_settings::setFSCThreshold
void setFSCThreshold(proshade_double fscThr)
Sets the minimum FSC threshold for axis to be considered detected.
Definition: ProSHADE.cpp:1618
ProSHADE_settings::setBandwidth
void setBandwidth(proshade_unsign band)
Sets the requested spherical harmonics bandwidth in the appropriate variable.
Definition: ProSHADE.cpp:1110
ProSHADE_settings::messageShift
proshade_signed messageShift
This value allows shifting the messages to create more readable log for sub-processes.
Definition: ProSHADE_settings.hpp:153
ProSHADE_settings::setBoundsSpace
void setBoundsSpace(proshade_single boundsExSp)
Sets the requested number of angstroms for extra space in re-boxing in the appropriate variable.
Definition: ProSHADE.cpp:877
ProSHADE_settings::changeMapResolutionTriLinear
bool changeMapResolutionTriLinear
Should maps be re-sampled to obtain the required resolution?
Definition: ProSHADE_settings.hpp:52
ProSHADE_settings::setOutputFilename
void setOutputFilename(std::string oFileName)
Sets the requested output file name in the appropriate variable.
Definition: ProSHADE.cpp:939
ProSHADE_internal_misc::addToDoubleVector
void addToDoubleVector(std::vector< proshade_double > *vecToAddTo, proshade_double elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:77
ProSHADE_settings::useBiCubicInterpolationOnPeaks
bool useBiCubicInterpolationOnPeaks
This variable switch decides whether best symmetry is detected from peak indices, or whether bicubic ...
Definition: ProSHADE_settings.hpp:137
ProSHADE_internal_spheres::autoDetermineSphereDistances
proshade_single autoDetermineSphereDistances(proshade_single maxMapRange, proshade_single resolution)
This function determines the sphere distances for sphere mapping.
Definition: ProSHADE_spheres.cpp:538
ProSHADE_settings::setAxisComparisonThreshold
void setAxisComparisonThreshold(proshade_double axThres)
Sets the threshold for matching symmetry axes.
Definition: ProSHADE.cpp:1444
ProSHADE_settings::peakThresholdMin
proshade_double peakThresholdMin
The threshold for peak height above which axes are considered possible.
Definition: ProSHADE_settings.hpp:141
ProSHADE_settings::forceP1
bool forceP1
Should the P1 spacegroup be forced on the input PDB files?
Definition: ProSHADE_settings.hpp:44
ProSHADE_settings::calcBounds
std::vector< proshade_double > calcBounds
The boundaries to be used for deciding the calculation thresholds (band, integration order,...
Definition: ProSHADE_settings.hpp:90
ProSHADE_settings::task
ProSHADE_Task task
This custom type variable determines which task to perfom (i.e. symmetry detection,...
Definition: ProSHADE_settings.hpp:40
ProSHADE_settings::setMaskFilename
void setMaskFilename(std::string mskFln)
Sets where the mask should be saved.
Definition: ProSHADE.cpp:796
ProSHADE_settings::setCoordExtraSpace
void setCoordExtraSpace(proshade_single exSpace)
Sets the requested co-ordinates extra space value in the appropriate variable.
Definition: ProSHADE.cpp:1090
ProSHADE_settings::reBoxMap
bool reBoxMap
This switch decides whether re-boxing is needed.
Definition: ProSHADE_settings.hpp:96
ProSHADE_settings::appliedMaskFileName
std::string appliedMaskFileName
The filename from which mask data will be read from.
Definition: ProSHADE_settings.hpp:89
ProSHADE_settings::resolutionOversampling
proshade_single resolutionOversampling
How much (%) should the requested resolution be over-sampled by map re-sampling?
Definition: ProSHADE_settings.hpp:53
ProSHADE_settings::coOrdsExtraSpace
proshade_single coOrdsExtraSpace
This number of Angstroms will be added before and any co-ordinates to make sure there is no atom dire...
Definition: ProSHADE_settings.hpp:108
ProSHADE_settings::normaliseMap
bool normaliseMap
Should the map be normalised to mean 0 sd 1?
Definition: ProSHADE_settings.hpp:75
ProSHADE_settings::addExtraSpace
proshade_single addExtraSpace
If this value is non-zero, this many angstroms of empty space will be added to the internal map.
Definition: ProSHADE_settings.hpp:107
ProSHADE_settings::setRequestedFold
void setRequestedFold(proshade_unsign val)
Sets the user requested symmetry fold.
Definition: ProSHADE.cpp:1528
ProSHADE_settings::fscThreshold
proshade_double fscThreshold
The threshold for FSC value under which the axis is considered to be likely noise.
Definition: ProSHADE_settings.hpp:140
ProSHADE_settings::determineBandwidthFromAngle
void determineBandwidthFromAngle(proshade_double uncertainty)
This function determines the bandwidth for the spherical harmonics computation from the allowed rotat...
Definition: ProSHADE.cpp:1710
ProSHADE_settings::integApproxSteps
proshade_unsign integApproxSteps
The number of steps taken in the approximation of Legendre polynomial decomposition to terms.
Definition: ProSHADE_settings.hpp:71
ProSHADE_settings::supportedSymmetryFold
proshade_unsign supportedSymmetryFold
Maximum supported fold by the map.
Definition: ProSHADE_settings.hpp:139
ProSHADE_internal_messages::printWellcomeMessage
void printWellcomeMessage(proshade_signed verbose)
Wellcome message printing.
Definition: ProSHADE_messages.cpp:31
ProSHADE_internal_messages::printTerminateMessage
void printTerminateMessage(proshade_signed verbose)
Final message printing.
Definition: ProSHADE_messages.cpp:49
ProSHADE_settings::setMapReboxing
void setMapReboxing(bool reBx)
Sets whether re-boxing needs to be done in the appropriate variable.
Definition: ProSHADE.cpp:856
ProSHADE_settings::setMaxSymmetryFold
void setMaxSymmetryFold(proshade_unsign maxFold)
Sets the maximum symmetry fold (well, the maximum prime symmetry fold).
Definition: ProSHADE.cpp:1600
ProSHADE_settings::correlationKernel
proshade_single correlationKernel
This value in Angstrom will be used as the kernel for the map-FHM correlation computation.
Definition: ProSHADE_settings.hpp:86
ProSHADE_settings::setNegativeDensity
void setNegativeDensity(bool nDens)
Sets the internal variable deciding whether input files negative density should be removed.
Definition: ProSHADE.cpp:1654
ProSHADE_settings::invertMap
bool invertMap
Should the map be inverted? Only use this if you think you have the wrong hand in your map.
Definition: ProSHADE_settings.hpp:78
ProSHADE_settings::centrePosition
std::vector< proshade_double > centrePosition
The position of the centre of the map in "real space" co-ordinates.
Definition: ProSHADE_settings.hpp:145
ProSHADE_settings::boundsSimilarityThreshold
proshade_signed boundsSimilarityThreshold
Number of indices which can be added just to make sure same size in indices is achieved.
Definition: ProSHADE_settings.hpp:98
ProSHADE_settings::setProgressiveSphereMapping
void setProgressiveSphereMapping(bool progSphMap)
Sets the requested sphere mapping value settings approach in the appropriate variable.
Definition: ProSHADE.cpp:1209
ProSHADE_settings::setIntegrationApproxSteps
void setIntegrationApproxSteps(proshade_unsign noSteps)
Sets the requested number of steps used in approximating Legendre polynomial decomposition to steps i...
Definition: ProSHADE.cpp:1171
ProSHADE_settings::changeMapResolution
bool changeMapResolution
Should maps be re-sampled to obtain the required resolution?
Definition: ProSHADE_settings.hpp:51
ProSHADE_settings::setIntegrationOrder
void setIntegrationOrder(proshade_unsign intOrd)
Sets the requested order for the Gauss-Legendre integration in the appropriate variable.
Definition: ProSHADE.cpp:1150
ProSHADE_settings::setRotationFunctionComputation
void setRotationFunctionComputation(bool rotfVal)
Sets whether the rotation function distance descriptor should be computed.
Definition: ProSHADE.cpp:1272
ProSHADE_settings::rotationUncertainty
proshade_double rotationUncertainty
Alternative to bandwidth - the angle in degrees to which the rotation function accuracy should be com...
Definition: ProSHADE_settings.hpp:60
ProSHADE_settings::setOverlaySaveFile
void setOverlaySaveFile(std::string filename)
Sets the filename to which the overlay structure is to be save into.
Definition: ProSHADE.cpp:1546
ProSHADE_settings::overlayStructureName
std::string overlayStructureName
The filename to which the rotated and translated moving structure is to be saved.
Definition: ProSHADE_settings.hpp:148
ProSHADE_settings::determineBandwidth
void determineBandwidth(proshade_unsign circumference)
This function determines the bandwidth for the spherical harmonics computation.
Definition: ProSHADE.cpp:1673
ProSHADE_settings::moveToCOM
bool moveToCOM
Logical value stating whether the structure should be moved to have its Centre Of Mass (COM) in the m...
Definition: ProSHADE_settings.hpp:103
ProSHADE_settings::peakNeighbours
proshade_unsign peakNeighbours
Number of points in any direction that have to be lower than the considered index in order to conside...
Definition: ProSHADE_settings.hpp:123
ProSHADE_settings::maxRadius
proshade_double maxRadius
The maximum distance from centre in Angstroms for a map value to still be used.
Definition: ProSHADE_settings.hpp:61
ProSHADE_internal_spheres::autoDetermineIntegrationOrder
proshade_unsign autoDetermineIntegrationOrder(proshade_single maxMapRange, proshade_single sphereDist)
This function determines the integration order for the between spheres integration.
Definition: ProSHADE_spheres.cpp:562
ProSHADE_settings::smoothingFactor
proshade_double smoothingFactor
This factor decides how small the group sizes should be - larger factor means more smaller groups.
Definition: ProSHADE_settings.hpp:127
ProSHADE_settings::setMapResolutionOverSampling
void setMapResolutionOverSampling(proshade_single overS)
Sets the requested map resolution over-sampling.
Definition: ProSHADE.cpp:999
ProSHADE_settings::setFourierWeightsFilename
void setFourierWeightsFilename(std::string fWgFln)
Sets the filename of the mask data that should be applied to the input map.
Definition: ProSHADE.cpp:836
ProSHADE_settings::halfMapKernel
proshade_single halfMapKernel
This value in Angstrom will be used as the kernel for the "fake half-map" computation.
Definition: ProSHADE_settings.hpp:85
ProSHADE_settings::boxCentre
std::vector< proshade_double > boxCentre
If box centre is to be in any other location, this variable will hold the real space location that sh...
Definition: ProSHADE_settings.hpp:104
ProSHADE_settings::determineSphereDistances
void determineSphereDistances(proshade_single maxMapRange)
This function determines the sphere distances for sphere mapping.
Definition: ProSHADE.cpp:1741
ProSHADE_internal_spheres::autoDetermineBandwidth
proshade_unsign autoDetermineBandwidth(proshade_unsign circumference)
This function determines the bandwidth for the spherical harmonics computation.
Definition: ProSHADE_spheres.cpp:516
ProSHADE_settings::setRequestedSymmetry
void setRequestedSymmetry(std::string val)
Sets the user requested symmetry type.
Definition: ProSHADE.cpp:1508
ProSHADE_settings::setExtraSpace
void setExtraSpace(proshade_single exSpace)
Sets the requested map extra space value in the appropriate variable.
Definition: ProSHADE.cpp:1070
ProSHADE_settings::forceBounds
proshade_signed * forceBounds
These will be the boundaries to be forced upon the map.
Definition: ProSHADE_settings.hpp:100
ProSHADE_settings::fourierWeightsFileName
std::string fourierWeightsFileName
The filename from which Fourier weights data will be read from.
Definition: ProSHADE_settings.hpp:93
ProSHADE_settings::inputFiles
std::vector< std::string > inputFiles
This vector contains the filenames of all input structure files.
Definition: ProSHADE_settings.hpp:43
ProSHADE_settings::setMapResolutionChangeTriLinear
void setMapResolutionChangeTriLinear(bool mrChange)
Sets the requested map resolution change decision using tri-linear interpolation in the appropriate v...
Definition: ProSHADE.cpp:979
ProSHADE_settings::setMaskSaving
void setMaskSaving(bool savMsk)
Sets whether the mask should be saved.
Definition: ProSHADE.cpp:776
ProSHADE_settings::firstModelOnly
bool firstModelOnly
Shoud only the first PDB model be used, or should all models be used?
Definition: ProSHADE_settings.hpp:46
ProSHADE_settings::setBoundsThreshold
void setBoundsThreshold(proshade_signed boundsThres)
Sets the threshold for number of indices difference acceptable to make index sizes same in the approp...
Definition: ProSHADE.cpp:897
ProSHADE_settings::axisErrTolerance
proshade_double axisErrTolerance
Allowed error on vector axis in in dot product ( acos ( 1 - axErr ) is the allowed difference in radi...
Definition: ProSHADE_settings.hpp:132
ProSHADE_settings::useSameBounds
bool useSameBounds
Switch to say that the same boundaries as used for the first should be used for all input maps.
Definition: ProSHADE_settings.hpp:99
ProSHADE_settings::setMasking
void setMasking(bool mask)
Sets the requested map masking decision value in the appropriate variable.
Definition: ProSHADE.cpp:693
ProSHADE_settings::pdbBFactorNewVal
proshade_double pdbBFactorNewVal
Change all PDB B-factors to this value (for smooth maps).
Definition: ProSHADE_settings.hpp:56
ProSHADE_settings::noIntegrationSpeedup
bool noIntegrationSpeedup
This option turns off the integration speedup (only using abscissas and weights up to appropriate l f...
Definition: ProSHADE_settings.hpp:72
ProSHADE_settings::removeWaters
bool removeWaters
Should all waters be removed from input PDB files?
Definition: ProSHADE_settings.hpp:45
ProSHADE_internal_messages::printHelp
void printHelp(void)
This function prints the help screen in the case -h is called, or if command line arguments cannot be...
Definition: ProSHADE_messages.cpp:119
ProSHADE_internal_messages::printProgressMessage
void printProgressMessage(proshade_signed verbose, proshade_signed messageLevel, std::string message, proshade_signed messageShift=0)
General stdout message printing.
Definition: ProSHADE_messages.cpp:71
ProSHADE_settings::setResolution
void setResolution(proshade_single resolution)
Sets the requested resolution in the appropriate variable.
Definition: ProSHADE.cpp:552
ProSHADE_settings::fastISearch
bool fastISearch
Should FSC be computed for all possible I matches, or just for the best one according to FR?
Definition: ProSHADE_settings.hpp:142
ProSHADE_internal_misc::addToStringVector
void addToStringVector(std::vector< std::string > *vecToAddTo, std::string elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:33
ProSHADE_settings::enLevMatrixPowerWeight
proshade_double enLevMatrixPowerWeight
If RRP matrices shell position is to be weighted by putting the position as an exponent,...
Definition: ProSHADE_settings.hpp:118
ProSHADE_settings::setNormalisation
void setNormalisation(bool normalise)
Sets the requested map normalisation value in the appropriate variable.
Definition: ProSHADE.cpp:592
ProSHADE_settings::setEnergyLevelsComputation
void setEnergyLevelsComputation(bool enLevDesc)
Sets whether the energy level distance descriptor should be computed.
Definition: ProSHADE.cpp:1230
ProSHADE_settings::computeEnergyLevelsDesc
bool computeEnergyLevelsDesc
If true, the energy levels descriptor will be computed, otherwise all its computations will be omitte...
Definition: ProSHADE_settings.hpp:117