25 #ifndef __PROSHADE_LIBRARY__ 26 #define __PROSHADE_LIBRARY__ 50 #ifdef __PROSHADE_DEVEL_CODE__ 51 #pragma GCC diagnostic error "-Wshadow" 52 #pragma GCC diagnostic error "-Wpedantic" 55 typedef double fftw_complex[2];
65 enum Task { NA, Symmetry, Distances, DistancesFrag, Features, BuildDB, HalfMaps, RotateMap, OverlayMap, SimpleRebox };
178 bool resizeMovingStructure;
198 void ignoreLsAddValuePy (
const int val );
218 bool distancesAvailable;
219 bool symmetriesAvailable;
220 bool fragmentsAvailable;
223 std::vector<double> crossCorrDists;
224 std::vector<double> traceSigmaDists;
225 std::vector<double> rotFunctionDists;
226 std::vector< std::array<double,5> > cyclicSymmetries;
227 std::vector< std::array<double,5> > cyclicSymmetriesClear;
228 std::vector< std::vector< std::array<double,6> > > dihedralSymmetries;
229 std::vector< std::vector< std::array<double,6> > > dihedralSymmetriesClear;
230 std::vector< std::array<double,5> > tetrahedralSymmetry;
231 std::vector< std::array<double,5> > octahedralSymmetry;
232 std::vector< std::array<double,5> > icosahedralSymmetry;
233 std::vector< std::string > fragmentList;
241 std::vector<double> getCrossCorrDists (
void );
242 std::vector<double> getTraceSigmaDists (
void );
243 std::vector<double> getRotFunctionDists (
void );
246 std::vector< std::array<double,5> > getCyclicSymmetries (
void );
247 std::vector< std::array<double,5> > getClearCyclicSymmetries (
void );
248 std::vector< std::vector<std::array< double,6> > > getDihedralSymmetries (
void );
249 std::vector< std::vector<std::array< double,6> > > getClearDihedralSymmetries (
void );
250 std::vector< std::array<double,5> > getTetrahedralSymmetries (
void );
251 std::vector< std::array<double,5> > getOctahedralSymmetries (
void );
252 std::vector< std::array<double,5> > getIcosahedralSymmetries (
void );
253 std::vector< std::array<double,5> > getRecommendedSymmetry (
void );
254 std::vector< std::array<double,5> > getSpecificSymmetryElements ( std::string symType,
int symFold = 0 );
257 std::vector< double > getCyclicSymmetriesPy (
void );
258 std::vector< double > getDihedralSymmetriesPy (
void );
259 std::vector< double > getTetrahedralSymmetriesPy (
void );
260 std::vector< double > getOctahedralSymmetriesPy (
void );
261 std::vector< double > getIcosahedralSymmetriesPy (
void );
262 std::vector< double > getRecommendedSymmetryElementsPy (
void );
263 std::vector< double > getSpecificSymmetryElementsPy ( std::string symType,
int symFold = 0 );
266 std::vector< std::string > getMapFragments (
void );
269 std::string getProSHADEVersion (
void );
double aaErrorTolerance
The tolerance parameter on matching axes for the angle-axis representation of rotations.
bool wasBandGiven
Variable stating whether the bandwidth value was given by the user, or decided automatically.
std::string symmetryType
The required symmetry type. If no symmetry is required, leave empty. Possible values are: C...
double mapResolution
This is the internal resolution at which the calculations are done, not necessarily the resolution of...
double noIQRsFromMap
This is the number of interquartile distances from mean that is used to threshold the map masking...
bool clearMapData
This value is used to decide whether the input maps should be cleared again, or not.
unsigned int theta
This parameter is the longitude of the spherical grid mapping. It should be 2 * bandwidth unless ther...
bool dbDistOverlay
This value is false in all conditions, unless programatically changed. If changed, distance computations will use the phaseless database to compute overlay before distances computation. This is computationally expensive and requires phaseless as well as phased database.
double bFactorValue
This is the value to which all B-factors of PDB files will be changed to.
std::string clearMapFile
If map features are to be extracted, should the clear map be saved (then give file name here)...
double databaseMinVolume
The smallest volume of a structure in the database.
void printSettings()
Function for outputting the current settings recorded in the ProSHADE_settings class instance...
std::string databaseName
The name of the bin file to which the database should be saved.
double zTranslation
The number of angstroms by which the structure should be translated along the Z axis.
bool overlayDefaults
If true, the shell spacing and distances will be doube to their typical values. This is to speed up m...
bool usePhase
Here the user can decide whether to use phase information or whether to ignore it completely...
bool wasExtraSpaceGiven
Variable stating whether the extra cell space value was given by the user, or decided automatically...
double mapFragBoxFraction
Fraction of box that needs to have density in order to be passed on.
std::vector< std::string > deleteModels
The filenames listed here consist of models which should have their density deleted from the map befo...
unsigned int bandwidth
This parameter determines the angular resolution of the spherical harmonics decomposition.
bool wasShellSpacingGiven
Variable stating whether the distance between shells value was given by the user, or decided automati...
bool htmlReport
Should HTML report for the run be created?
int verbose
Should the software report on the progress, or just be quiet? Value between 0 (quiet) and 4 (loud) ...
double rotAngle
The angle of the rotation to be done to the map structure in the map rotation mode.
bool saveWithAndWithout
This option decides whether both with and without phase spherical harmonics should be saved...
double trSigmaThreshold
All structure pairs with trace sigma descriptor value less than this will not be subjected to any fur...
double alpha
This parameter determines the power to which the |F|'s should be raised.
bool firstLineCOM
This is a special option for metal detection, please leave false.
bool fullRotFnDist
Should the full rotation function distances descriptor be computed.
bool useCubicMaps
When saving clear maps, should the rectangular or cubic (older versions of refmac need this) maps be ...
bool maskBlurFactorGiven
Was a specific value of the blurring factor requested by the user?
std::vector< int > ignoreLs
This vector lists all the bandwidth values which should be ignored and not part of the computations...
int peakSurroundingPoints
For a peak to exist, how many points in every direction need to be smalled than the middle value...
double rotXAxis
The X-axis element of the rotation axis along which the rotation is to be done in the map rotation mo...
double shellSpacing
This parameter determines how far the radial shells should be from each other.
double databaseMaxVolume
The largest volume allowed to exist in the database.
double volumeTolerance
The percentage tolerance on each dimmension when comparing one structure to entire database...
double rotYAxis
The Y-axis element of the rotation axis along which the rotation is to be done in the map rotation mo...
double rotZAxis
The Z-axis element of the rotation axis along which the rotation is to be done in the map rotation mo...
double peakDistanceForReal
Threshold for determining 'missing peaks' existence.
bool mapResDefault
This variable states if default resolution should be used, or whether the user has supplied a differe...
bool traceSigmaDist
Should the trace sigma distances descriptor be computed.
void appendStructure(std::string str)
Miscellanous function allowing adding a single string to the structures vector.
bool rotChangeDefault
If map rotation is selected, the default automatic parameter decision is changed. This variable state...
void getCommandLineParams(int argc, char *argv[])
This function parses the command line arguments and saves the user values into the settings class...
unsigned int phi
This parameter is the latitudd of the spherical grid mapping. It should be 2 * bandwidth unless there...
unsigned int maxRotError
This is the maximum allowed error in degrees for the rotation computation. This can be used to speed ...
unsigned int symmetryFold
The required fold of the sought symmetry. Applicable to C and D symmetries, otherwise leave 0...
std::string axisOrder
A string specifying the order of the axis. Must have three characters and any permutation of 'x'...
This namespace contains all the external objects and their forward declarations.
int htmlReportLine
Iterator for current HTML line.
bool energyLevelDist
Should the energy level distances descriptor be computed.
double xTranslation
The number of angstroms by which the structure should be translated along the X axis.
int htmlReportLineProgress
Iterator for current HTML line in the progress bar.
double bFactorChange
This value will be used to change the B-factors if required by the user.
bool wasResolutionGiven
Variable stating whether the resolution value was given by the user, or decided automatically.
ProSHADE_settings()
Contructor for the ProSHADE_settings class.
double peakHeightNoIQRs
How many interquartile ranges should be used to distinguish 'false' peaks from the true ones...
bool wasBChangeGiven
Variable stating whether the B factor change (sharpening/blurring) value was given by the user...
double yTranslation
The number of angstroms by which the structure should be translated along the Y axis.
double mapFragBoxSize
Should the clear map be fragmented into boxes? If so, put box size here, otherwise leave 0...
double symGapTolerance
For C-symmetries - if there are many, only those with average peak height - parameter * top symmetry ...
This class stores all the settings and is passed to the executive classes instead of multitude of par...
double mPower
This parameter determines the scaling for trace sigma descriptor.
unsigned int manualShells
Should the user require so, the maximum number of radial shells can be set.
bool useCOM
Should the Centre of Mass (COM) be used to center the structure in the cell?
double maskBlurFactor
The is the amount of blurring to be used to create masks for maps.
std::vector< std::string > structFiles
This vector should contain all the structures that are being dealt with, but this does not yet work! ...
double enLevelsThreshold
All structure pairs with energy level descriptor value less than this will not be subjected to any fu...
Task taskToPerform
This custom type variable determines which task to perfom (i.e. symmetry detection, distances computation or map features extraction).
std::string mapFragName
The prefix of the files with the cut out boxes.
double extraSpace
What should be the distance added on both sides to the structure, so that the next cell density would...
unsigned int glIntegOrder
This parameter controls the Gauss-Legendre integration order and so the radial resolution.