 |
ProSHADE
0.7.6.6 (JUL 2022)
Protein Shape Detection
|
Go to the documentation of this file.
23 #include <pybind11/pybind11.h>
24 #include <pybind11/stl.h>
25 #include <pybind11/numpy.h>
28 void add_settingsClass ( pybind11::module& pyProSHADE )
31 pybind11::class_ < ProSHADE_settings > ( pyProSHADE,
"ProSHADE_settings" )
34 .def ( pybind11::init < > ( ) )
35 .def ( pybind11::init < ProSHADE_Task > ( ), pybind11::arg (
"task" ) )
36 .def ( pybind11::init < ProSHADE_settings* > ( ), pybind11::arg (
"settings" ) )
109 .def_readwrite (
"axisErrToleranceDefault", &ProSHADE_settings::axisErrToleranceDefault )
129 .def (
"setResolution", &
ProSHADE_settings::setResolution,
"This function sets the resolution in the appropriate variable.", pybind11::arg (
"resolution" ) )
130 .def (
"setPDBBFactor", &
ProSHADE_settings::setPDBBFactor,
"Sets the requested B-factor value for PDB files in the appropriate variable.", pybind11::arg (
"newBF" ) )
131 .def (
"setNormalisation", &
ProSHADE_settings::setNormalisation,
"Sets the requested map normalisation value in the appropriate variable.", pybind11::arg (
"normalise" ) )
135 .def (
"setMaskIQR", &
ProSHADE_settings::setMaskIQR,
"Sets the requested number of IQRs for masking threshold in the appropriate variable.", pybind11::arg (
"noIQRs" ) )
136 .def (
"setMasking", &
ProSHADE_settings::setMasking,
"Sets the requested map masking decision value in the appropriate variable.", pybind11::arg (
"mask" ) )
145 .def (
"setBoundsSpace", &
ProSHADE_settings::setBoundsSpace,
"Sets the requested number of angstroms for extra space in re-boxing in the appropriate variable.", pybind11::arg (
"boundsExSp" ) )
146 .def (
"setBoundsThreshold", &
ProSHADE_settings::setBoundsThreshold,
"Sets the threshold for number of indices difference acceptable to make index sizes same in the appropriate variable.", pybind11::arg (
"boundsThres" ) )
152 .def (
"setMapCentering", &
ProSHADE_settings::setMapCentering,
"Sets the requested map centering decision value in the appropriate variable.", pybind11::arg (
"com" ) )
153 .def (
"setExtraSpace", &
ProSHADE_settings::setExtraSpace,
"Sets the requested map extra space value in the appropriate variable.", pybind11::arg (
"exSpace" ) )
155 .def (
"setBoxCentering", &
ProSHADE_settings::setBoxCentering,
"Sets the requested centre of box to be at the real space co-ordinates supplied.", pybind11::arg (
"xPos" ), pybind11::arg (
"yPos" ), pybind11::arg (
"zPos" ) )
156 .def (
"setBandwidth", &
ProSHADE_settings::setBandwidth,
"Sets the requested spherical harmonics bandwidth in the appropriate variable.", pybind11::arg (
"band" ) )
159 .def (
"setIntegrationOrder", &
ProSHADE_settings::setIntegrationOrder,
"Sets the requested order for the Gauss-Legendre integration in the appropriate variable.", pybind11::arg (
"intOrd" ) )
160 .def (
"setIntegrationApproxSteps", &
ProSHADE_settings::setIntegrationApproxSteps,
"Sets the requested number of steps used in approximating Legendre polynomial decomposition to steps in the appropriate variable.", pybind11::arg (
"noSteps" ) )
166 .def (
"setPeakNaiveNoIQR", &
ProSHADE_settings::setPeakNaiveNoIQR,
"Sets the number of IQRs from the median for threshold height a peak needs to be considered a peak.", pybind11::arg (
"noIQRs" ) )
182 .def (
"setPeakThreshold", &
ProSHADE_settings::setPeakThreshold,
"Sets the minimum peak height threshold for axis to be considered possible.", pybind11::arg (
"peakThr" ) )
183 .def (
"setNegativeDensity", &
ProSHADE_settings::setNegativeDensity,
"Sets the internal variable deciding whether input files negative density should be removed.", pybind11::arg (
"nDens" ) )
185 .def (
"setSymmetryCentrePosition",
189 pybind11::buffer_info pos_buf = pos.request();
190 if ( pos_buf.ndim != 1 ) { std::cerr <<
"!!! ProSHADE PYTHON MODULE ERROR !!! The second argument to setSymmetryCentrePosition() must be a 1D numpy array!" << std::endl; exit ( EXIT_FAILURE ); }
191 if ( pos_buf.shape.at(0) != 3 ) { std::cerr <<
"!!! ProSHADE PYTHON MODULE ERROR !!! The second argument to setSymmetryCentrePosition() must be an array of length 3!" << std::endl; exit ( EXIT_FAILURE ); }
194 proshade_double* arrStart =
static_cast< proshade_double*
> ( pos_buf.ptr );
195 self.centrePosition.at(0) = arrStart[0];
196 self.centrePosition.at(1) = arrStart[1];
197 self.centrePosition.at(2) = arrStart[2];
201 },
"This function sets the symmetry rotation centre values from numpy vector.", pybind11::arg (
"pos" ) )
204 .def (
"getCommandLineParams",
207 std::vector < char * > cstrs; cstrs.reserve ( args.size() );
209 for (
auto &s : args )
210 cstrs.push_back (
const_cast < char *
> ( s.c_str ( ) ) );
212 return self.getCommandLineParams (
static_cast< int > ( cstrs.size ( ) ), cstrs.data ( ) );
213 },
"This function takes a VectorOfStrings and parses it as if it were command line arguments, filling in the calling ProSHADE_settings class with the values." )
219 .def (
"__repr__", [] ( ) {
return "<ProSHADE_settings class object> (Settings class is used to set all settings values in a single place)"; } );
222 pybind11::class_ < ProSHADE_run > ( pyProSHADE,
"ProSHADE_run" )
225 .def ( pybind11::init < ProSHADE_settings* > ( ) )
232 .def (
"getEnergyLevelsVector",
233 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
236 std::vector< proshade_double > vals =
self.getEnergyLevelsVector ();
239 float* npVals =
new float[
static_cast<unsigned int> (vals.size())];
243 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
246 pybind11::capsule pyCapsuleEnLevs ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
249 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<unsigned int> (vals.size()) },
256 },
"This function returns the energy level distances vector from the first to all other structures." )
258 .def (
"getTraceSigmaVector",
259 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
262 std::vector< proshade_double > vals =
self.getTraceSigmaVector ();
265 float* npVals =
new float[
static_cast<unsigned int> (vals.size())];
269 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
272 pybind11::capsule pyCapsuleTrSigs ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
275 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<unsigned int> (vals.size()) },
282 },
"This function returns the trace sigma distances vector from the first to all other structures." )
284 .def (
"getRotationFunctionVector",
285 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
288 std::vector< proshade_double > vals =
self.getRotationFunctionVector ();
291 float* npVals =
new float[
static_cast<unsigned int> (vals.size())];
295 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
298 pybind11::capsule pyCapsuleRotFun ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
301 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<unsigned int> (vals.size()) },
308 },
"This function returns the full rotation function distances vector from the first to all other structures." )
311 .def (
"getSymmetryType", &
ProSHADE_run::getSymmetryType,
"This is the main accessor function for the user to get to know what symmetry type ProSHADE has detected and recommends." )
312 .def (
"getSymmetryFold", &
ProSHADE_run::getSymmetryFold,
"This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detected and recommends." )
313 .def (
"getSymmetryAxis", &
ProSHADE_run::getSymmetryAxis,
"This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list.", pybind11::arg (
"axisNo" ) )
314 .def (
"getAllCSyms",
315 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
318 std::vector< std::vector< proshade_double > > vals =
self.getAllCSyms ();
321 float* npVals =
new float[
static_cast<unsigned int> ( vals.size() * 7 )];
325 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) {
for ( proshade_unsign it = 0; it < 7; it++ ) { npVals[(iter*7)+it] =
static_cast< float > ( vals.at(iter).at(it) ); } }
328 pybind11::capsule pyCapsuleSymList ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
331 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<int> ( vals.size() ),
static_cast<int> ( 7 ) },
332 { 7 *
sizeof(float),
sizeof(
float) },
338 },
"This function returns a all symmetry axes as a 2D numpy array." )
339 .def (
"getMapCOMProcessChange",
340 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
343 std::vector< proshade_double > vals =
self.getMapCOMProcessChange ();
346 float* npVals =
new float[
static_cast<unsigned int> ( 3 )];
350 for ( proshade_unsign iter = 0; iter < 3; iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
353 pybind11::capsule pyCapsuleSymShift ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
356 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<int> ( vals.size() ) },
363 },
"This function returns the shift in Angstrom applied to the internal map representation in order to align its COM with the centre of box." )
366 .def (
"getOriginalBounds",
367 [] (
ProSHADE_run &
self, proshade_unsign strNo ) -> pybind11::array_t < float >
370 std::vector< proshade_signed > vals =
self.getOriginalBounds ( strNo );
373 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
377 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] = vals.at(iter); }
380 pybind11::capsule pyCapsuleOrigBnds ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
383 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<proshade_unsign
> ( vals.size() ) },
390 },
"This function returns the original structure boundaries as numpy array." )
392 .def (
"getReBoxedBounds",
393 [] (
ProSHADE_run &
self, proshade_unsign strNo ) -> pybind11::array_t < float >
396 std::vector< proshade_signed > vals =
self.getReBoxedBounds ( strNo );
399 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
403 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] = vals.at(iter); }
406 pybind11::capsule pyCapsuleReBoBnds ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
409 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<proshade_unsign
> ( vals.size() ) },
416 },
"This function returns the re-boxed structure boundaries as numpy array." )
419 .def (
"getReBoxedMap",
420 [] (
ProSHADE_run &
self, proshade_unsign strNo ) -> pybind11::array_t < float >
423 std::vector< proshade_signed > vals =
self.getReBoxedBounds ( strNo );
426 proshade_unsign xDim =
static_cast< proshade_unsign
> ( vals.at(1) ) -
static_cast< proshade_unsign
> ( vals.at(0) ) + 1;
427 proshade_unsign yDim =
static_cast< proshade_unsign
> ( vals.at(3) ) -
static_cast< proshade_unsign
> ( vals.at(2) ) + 1;
428 proshade_unsign zDim =
static_cast< proshade_unsign
> ( vals.at(5) ) -
static_cast< proshade_unsign
> ( vals.at(4) ) + 1;
431 float* npVals =
new float[xDim * yDim * zDim];
435 for ( proshade_unsign iter = 0; iter < (xDim * yDim * zDim); iter++ ) { npVals[iter] =
static_cast< float > (
self.getMapValue ( strNo, iter ) ); }
438 pybind11::capsule pyCapsuleRebMap ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
441 pybind11::array_t < float > retArr = pybind11::array_t<float> ( { xDim, yDim, zDim },
442 { yDim * zDim *
sizeof(float), zDim *
sizeof(
float),
sizeof(float) },
448 },
"This function returns the re-boxed structure map as a numpy 3D array." )
451 .def (
"getEulerAngles",
452 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
455 std::vector< proshade_double > vals =
self.getEulerAngles ( );
458 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
462 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
465 pybind11::capsule pyCapsuleEulAngs ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
468 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<proshade_unsign
> ( vals.size() ) },
475 },
"This function returns the vector of Euler angles with best overlay correlation." )
477 .def (
"getOptimalRotMat",
478 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
481 std::vector< proshade_double > vals =
self.getOptimalRotMat ( );
484 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
488 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
491 pybind11::capsule pyCapsuleRotMat ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
494 pybind11::array_t < float > retArr = pybind11::array_t<float> ( { 3, 3 },
495 { 3 *
sizeof(float),
sizeof(
float) },
501 },
"This function returns the vector of Euler angles with best overlay correlation." )
503 .def (
"getTranslationToOrigin",
504 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
507 std::vector< proshade_double > vals =
self.getTranslationToOrigin ( );
510 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
514 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
517 pybind11::capsule pyCapsuleTTO ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
520 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<proshade_unsign
> ( vals.size() ) },
527 },
"This function returns the negative values of the position of the rotation centre (the point about which the rotation should be done)." )
528 .def (
"getOriginToOverlayTranslation",
529 [] (
ProSHADE_run &
self ) -> pybind11::array_t < float >
532 std::vector< proshade_double > vals =
self.getOriginToOverlayTranslation ( );
535 float* npVals =
new float[
static_cast<proshade_unsign
> ( vals.size() )];
539 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( vals.size() ); iter++ ) { npVals[iter] =
static_cast< float > ( vals.at(iter) ); }
542 pybind11::capsule pyCapsuleOTOT ( npVals, [](
void *f ) {
float* foo =
reinterpret_cast< float*
> ( f );
delete foo; } );
545 pybind11::array_t < float > retArr = pybind11::array_t<float> ( {
static_cast<proshade_unsign
> ( vals.size() ) },
552 },
"This function returns the translation required to move the structure from origin to optimal overlay." )
556 .def (
"__repr__", [] ( ) {
return "<ProSHADE_run class object> (Run class constructor takes a ProSHADE_settings object and completes a single run according to the settings object information)"; } );
proshade_double noIQRsFromMedianNaivePeak
When doing peak searching, how many IQRs from the median the threshold for peak height should be (in ...
void setOverlayJsonFile(std::string filename)
Sets the filename to which the overlay operations are to be save into.
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.
proshade_unsign maxBandwidth
The bandwidth of spherical harmonics decomposition for the largest sphere.
proshade_unsign integOrder
The order required for full Gauss-Legendre integration between the spheres.
std::string rotTrsJSONFile
The filename to which the rotation and translation operations are to be saved into.
void setEnLevShellWeight(proshade_double mPower)
Sets the weight of shell position for the energy levels computation.
bool computeTraceSigmaDesc
If true, the trace sigma descriptor will be computed, otherwise all its computations will be omitted.
bool findSymCentre
Should phase-less map be used to determine centre of symmetry?
void setTraceSigmaComputation(bool trSigVal)
Sets whether the trace sigma distance descriptor should be computed.
bool computeRotationFuncDesc
If true, the rotation function descriptor will be computed, otherwise all its computations will be om...
void setSameBoundaries(bool sameB)
Sets whether same boundaries should be used in the appropriate variable.
proshade_unsign maxSymmetryFold
The highest symmetry fold to search for.
void setMinimumMaskSize(proshade_single minMS)
Sets the requested minimum mask size.
void setAppliedMaskFilename(std::string mskFln)
Sets the filename of the mask data that should be applied to the input map.
proshade_single boundsExtraSpace
The number of extra angstroms to be added to all re-boxing bounds just for safety.
void setBicubicInterpolationSearch(bool bicubPeaks)
Sets the bicubic interpolation on peaks.
void setPeakNaiveNoIQR(proshade_double noIQRs)
Sets the number of IQRs from the median for threshold height a peak needs to be considered a peak.
std::string outName
The file name where the output structure(s) should be saved.
void setMapInversion(bool mInv)
Sets the requested map inversion value in the appropriate variable.
void setMapResolutionChange(bool mrChange)
Sets the requested map resolution change decision in the appropriate variable.
void setPeakNeighboursNumber(proshade_unsign pkS)
Sets the number of neighbour values that have to be smaller for an index to be considered a peak.
proshade_single blurFactor
This is the amount by which B-factors should be increased to create the blurred map for masking.
bool maskMap
Should the map be masked from noise?
proshade_unsign requestedSymmetryFold
The fold of the requested symmetry (only applicable to C and D symmetry types).
std::string requestedSymmetryType
The symmetry type requested by the user. Allowed values are C, D, T, O and I.
void setSphereDistances(proshade_single sphDist)
Sets the requested distance between spheres in the appropriate variable.
void setVerbosity(proshade_signed verbosity)
Sets the requested verbosity in the appropriate variable.
bool removeNegativeDensity
Should the negative density be removed from input files?
void setMinimumPeakForAxis(proshade_double minSP)
Sets the minimum peak height for symmetry axis to be considered.
bool saveMask
Should the mask be saved?
proshade_single requestedResolution
The resolution to which the calculations are to be done.
proshade_double minSymPeak
Minimum average peak for symmetry axis to be considered as "real".
void setAxisComparisonThresholdBehaviour(bool behav)
Sets the automatic symmetry axis tolerance decreasing.
bool progressiveSphereMapping
If true, each shell will have its own angular resolution dependent on the actual number of map points...
proshade_single maxSphereDists
The distance between spheres in spherical mapping for the largest sphere.
proshade_double symMissPeakThres
Percentage of peaks that could be missing that would warrant starting the missing peaks search proced...
void setPDBBFactor(proshade_double newBF)
Sets the requested B-factor value for PDB files in the appropriate variable.
void addStructure(std::string structure)
Adds a structure file name to the appropriate variable.
void setMaskIQR(proshade_single noIQRs)
Sets the requested number of IQRs for masking threshold in the appropriate variable.
void setMissingPeakThreshold(proshade_double mpThres)
Sets the threshold for starting the missing peaks procedure.
proshade_signed getVerbose(void)
This function returns the verbose value.
proshade_single maskingThresholdIQRs
Number of inter-quartile ranges from the median to be used for thresholding the blurred map for maski...
bool useCorrelationMasking
Should the blurring masking (false) or the correlation masking (true) be used?
bool usePhase
If true, the full data will be used, if false, Patterson maps will be used instead and phased data wi...
void setSymmetryCentreSearch(bool sCen)
Sets the symmetry centre search on or off.
void setMapCentering(bool com)
Sets the requested map centering decision value in the appropriate variable.
void setMaskBlurFactor(proshade_single blurFac)
Sets the requested map blurring factor in the appropriate variable.
void setPeakThreshold(proshade_double peakThr)
Sets the minimum peak height threshold for axis to be considered possible.
void setPhaseUsage(bool phaseUsage)
Sets whether the phase information will be used.
std::string maskFileName
The filename to which mask should be saved.
proshade_signed verbose
Should the software report on the progress, or just be quiet? Value between -1 (nothing) and 4 (loud)
void setFSCThreshold(proshade_double fscThr)
Sets the minimum FSC threshold for axis to be considered detected.
void setBandwidth(proshade_unsign band)
Sets the requested spherical harmonics bandwidth in the appropriate variable.
proshade_signed messageShift
This value allows shifting the messages to create more readable log for sub-processes.
void setBoundsSpace(proshade_single boundsExSp)
Sets the requested number of angstroms for extra space in re-boxing in the appropriate variable.
bool changeMapResolutionTriLinear
Should maps be re-sampled to obtain the required resolution?
void setOutputFilename(std::string oFileName)
Sets the requested output file name in the appropriate variable.
bool useBiCubicInterpolationOnPeaks
This variable switch decides whether best symmetry is detected from peak indices, or whether bicubic ...
std::vector< std::string > getSymmetryAxis(proshade_unsign axisNo)
This function returns a single symmetry axis as a vector of strings from the recommended symmetry axe...
void setAxisComparisonThreshold(proshade_double axThres)
Sets the threshold for matching symmetry axes.
proshade_double peakThresholdMin
The threshold for peak height above which axes are considered possible.
bool forceP1
Should the P1 spacegroup be forced on the input PDB files?
void setTypicalNoiseSize(proshade_single typNoi)
Sets the requested "fake" half-map kernel in the appropriate variable.
This class provides the access point to the library.
ProSHADE_Task task
This custom type variable determines which task to perfom (i.e. symmetry detection,...
void setMaskFilename(std::string mskFln)
Sets where the mask should be saved.
proshade_unsign getSymmetryFold(void)
This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detect...
void setCoordExtraSpace(proshade_single exSpace)
Sets the requested co-ordinates extra space value in the appropriate variable.
bool reBoxMap
This switch decides whether re-boxing is needed.
std::string appliedMaskFileName
The filename from which mask data will be read from.
proshade_single resolutionOversampling
How much (%) should the requested resolution be over-sampled by map re-sampling?
proshade_single coOrdsExtraSpace
This number of Angstroms will be added before and any co-ordinates to make sure there is no atom dire...
bool normaliseMap
Should the map be normalised to mean 0 sd 1?
proshade_single addExtraSpace
If this value is non-zero, this many angstroms of empty space will be added to the internal map.
void setRequestedFold(proshade_unsign val)
Sets the user requested symmetry fold.
This class stores all the settings and is passed to the executive classes instead of a multitude of p...
proshade_double fscThreshold
The threshold for FSC value under which the axis is considered to be likely noise.
void setIntegrationSpeedUp(bool speedup)
Sets the variable deciding if integration speedup should be used or not.
proshade_unsign integApproxSteps
The number of steps taken in the approximation of Legendre polynomial decomposition to terms.
std::string getSymmetryType(void)
This is the main accessor function for the user to get to know what symmetry type ProSHADE has detect...
proshade_unsign supportedSymmetryFold
Maximum supported fold by the map.
void setMapReboxing(bool reBx)
Sets whether re-boxing needs to be done in the appropriate variable.
void setMaxSymmetryFold(proshade_unsign maxFold)
Sets the maximum symmetry fold (well, the maximum prime symmetry fold).
proshade_single correlationKernel
This value in Angstrom will be used as the kernel for the map-FHM correlation computation.
void setNegativeDensity(bool nDens)
Sets the internal variable deciding whether input files negative density should be removed.
bool invertMap
Should the map be inverted? Only use this if you think you have the wrong hand in your map.
proshade_signed boundsSimilarityThreshold
Number of indices which can be added just to make sure same size in indices is achieved.
void setCorrelationMasking(bool corMask)
Sets the requested map masking type in the appropriate variable.
void setProgressiveSphereMapping(bool progSphMap)
Sets the requested sphere mapping value settings approach in the appropriate variable.
void setIntegrationApproxSteps(proshade_unsign noSteps)
Sets the requested number of steps used in approximating Legendre polynomial decomposition to steps i...
bool changeMapResolution
Should maps be re-sampled to obtain the required resolution?
void setIntegrationOrder(proshade_unsign intOrd)
Sets the requested order for the Gauss-Legendre integration in the appropriate variable.
void setRotationFunctionComputation(bool rotfVal)
Sets whether the rotation function distance descriptor should be computed.
proshade_double rotationUncertainty
Alternative to bandwidth - the angle in degrees to which the rotation function accuracy should be com...
void setOverlaySaveFile(std::string filename)
Sets the filename to which the overlay structure is to be save into.
std::string overlayStructureName
The filename to which the rotated and translated moving structure is to be saved.
bool moveToCOM
Logical value stating whether the structure should be moved to have its Centre Of Mass (COM) in the m...
proshade_unsign peakNeighbours
Number of points in any direction that have to be lower than the considered index in order to conside...
proshade_double smoothingFactor
This factor decides how small the group sizes should be - larger factor means more smaller groups.
void setMapResolutionOverSampling(proshade_single overS)
Sets the requested map resolution over-sampling.
void setFourierWeightsFilename(std::string fWgFln)
Sets the filename of the mask data that should be applied to the input map.
proshade_single halfMapKernel
This value in Angstrom will be used as the kernel for the "fake half-map" computation.
void checkMemoryAllocation(chVar checkVar, std::string fileP, unsigned int lineP, std::string funcP, std::string infoP="This error may occurs when ProSHADE requests memory to be\n : allocated to it and this operation fails. This could\n : happen when not enough memory is available, either due to\n : other processes using a lot of memory, or when the machine\n : does not have sufficient memory available. Re-run to see\n : if this problem persists.")
Checks if memory was allocated properly.
void setGroupingSmoothingFactor(proshade_double smFact)
Sets the grouping smoothing factor into the proper variable.
void setRequestedSymmetry(std::string val)
Sets the user requested symmetry type.
void setExtraSpace(proshade_single exSpace)
Sets the requested map extra space value in the appropriate variable.
proshade_signed * forceBounds
These will be the boundaries to be forced upon the map.
std::string fourierWeightsFileName
The filename from which Fourier weights data will be read from.
std::vector< std::string > inputFiles
This vector contains the filenames of all input structure files.
void setMapResolutionChangeTriLinear(bool mrChange)
Sets the requested map resolution change decision using tri-linear interpolation in the appropriate v...
void setMaskSaving(bool savMsk)
Sets whether the mask should be saved.
bool firstModelOnly
Shoud only the first PDB model be used, or should all models be used?
void setBoundsThreshold(proshade_signed boundsThres)
Sets the threshold for number of indices difference acceptable to make index sizes same in the approp...
proshade_double axisErrTolerance
Allowed error on vector axis in in dot product ( acos ( 1 - axErr ) is the allowed difference in radi...
bool useSameBounds
Switch to say that the same boundaries as used for the first should be used for all input maps.
void setMasking(bool mask)
Sets the requested map masking decision value in the appropriate variable.
proshade_double pdbBFactorNewVal
Change all PDB B-factors to this value (for smooth maps).
bool noIntegrationSpeedup
This option turns off the integration speedup (only using abscissas and weights up to appropriate l f...
bool removeWaters
Should all waters be removed from input PDB files?
void setResolution(proshade_single resolution)
Sets the requested resolution in the appropriate variable.
void printSettings(void)
This function prints the current values in the settings object.
proshade_unsign getNoStructures(void)
This function returns the number of structures used.
bool fastISearch
Should FSC be computed for all possible I matches, or just for the best one according to FR?
proshade_double enLevMatrixPowerWeight
If RRP matrices shell position is to be weighted by putting the position as an exponent,...
void setNormalisation(bool normalise)
Sets the requested map normalisation value in the appropriate variable.
void setEnergyLevelsComputation(bool enLevDesc)
Sets whether the energy level distance descriptor should be computed.
bool computeEnergyLevelsDesc
If true, the energy levels descriptor will be computed, otherwise all its computations will be omitte...