ProSHADE  0.7.6.2 (DEC 2021)
Protein Shape Detection
ProSHADE.hpp
Go to the documentation of this file.
1 
25 //==================================================== ProSHADE library code
26 #include "ProSHADE_tasks.hpp"
27 
28 //==================================================== Overinclusion protection
29 #ifndef PROSHADE
30 #define PROSHADE
31 
39 {
40 private:
41  //================================================ General variables
42  proshade_unsign noStructures;
43  proshade_signed verbose;
44 
45  //================================================ Variables regarding distances computation
46  std::vector < proshade_double > enLevs;
47  std::vector < proshade_double > trSigm;
48  std::vector < proshade_double > rotFun;
49 
50  //================================================ Variables regarding symmetry detection
51  std::vector< proshade_double* > RecomSymAxes;
52  std::vector < std::vector< proshade_double > > allCSymAxes;
53 
54  //================================================ Variables regarding re-boxing task
55  std::vector < proshade_signed* > originalBounds;
56  std::vector < proshade_signed* > reboxedBounds;
57  std::vector < proshade_double* > manipulatedMaps;
58 
59  //================================================ Variables regarding overlay optimisation
60  std::vector < proshade_double > eulerAngles;
61  std::vector < proshade_double > coordRotationCentre;
62  std::vector < proshade_double > overlayTranslation;
63 
64  //================================================ Variables regarding symmetry detection
65  std::string symRecommType;
66  proshade_unsign symRecommFold;
67  std::vector< proshade_double > mapCOMShift;
68 
69 private:
70  //================================================ Mutator functions
71  void setRecommendedSymmetry ( std::string val );
72  void setRecommendedFold ( proshade_unsign val );
73  void setRecommendedAxis ( proshade_double* sym );
74 
75  //================================================ Task completion functions
76  void setSymmetryResults ( ProSHADE_settings* settings );
77 
78 public:
79  //================================================ Constructors / Destructors
80 #if defined ( _WIN64 ) || defined ( _WIN32 )
81  __declspec(dllexport) ProSHADE_run ( ProSHADE_settings* settings );
82  __declspec(dllexport) ~ProSHADE_run ( void );
83 #else
84  ProSHADE_run ( ProSHADE_settings* settings );
85  ~ProSHADE_run ( void );
86 #endif
87 
88 public:
89  //================================================ General accessor functions
90  proshade_unsign getNoStructures ( void );
91  proshade_signed getVerbose ( void );
92 
93  //================================================ Symmetry accessor functions
94  proshade_unsign getNoRecommendedSymmetryAxes ( void );
95  proshade_unsign getNoSymmetryAxes ( void );
96 
97 public:
98  //================================================ Distances results accessor functions
99 #if defined ( _WIN64 ) || defined ( _WIN32 )
100  std::vector< proshade_double > __declspec(dllexport) getEnergyLevelsVector ( void );
101  std::vector< proshade_double > __declspec(dllexport) getTraceSigmaVector ( void );
102  std::vector< proshade_double > __declspec(dllexport) getRotationFunctionVector ( void );
103 #else
104  std::vector< proshade_double > getEnergyLevelsVector ( void );
105  std::vector< proshade_double > getTraceSigmaVector ( void );
106  std::vector< proshade_double > getRotationFunctionVector ( void );
107 #endif
108 
109  //================================================ Symmetry results accessor functions
110 #if defined ( _WIN64 ) || defined ( _WIN32 )
111  std::string __declspec(dllexport) getSymmetryType ( void );
112  proshade_unsign __declspec(dllexport) getSymmetryFold ( void );
113  std::vector< std::string > __declspec(dllexport) getSymmetryAxis ( proshade_unsign axisNo );
114  std::vector < std::vector< proshade_double > > __declspec(dllexport) getAllCSyms ( void );
115  std::vector < proshade_double > __declspec(dllexport) getMapCOMProcessChange ( void );
116 #else
117  std::string getSymmetryType ( void );
118  proshade_unsign getSymmetryFold ( void );
119  std::vector< std::string > getSymmetryAxis ( proshade_unsign axisNo );
120  std::vector < std::vector< proshade_double > > getAllCSyms ( void );
121  std::vector < proshade_double > getMapCOMProcessChange ( void );
122 #endif
123 
124  //================================================ Re-boxing results accessor functions
125 #if defined ( _WIN64 ) || defined ( _WIN32 )
126  std::vector< proshade_signed > __declspec(dllexport) getOriginalBounds ( proshade_unsign strNo );
127  std::vector< proshade_signed > __declspec(dllexport) getReBoxedBounds ( proshade_unsign strNo );
128  proshade_double __declspec(dllexport) getMapValue ( proshade_unsign strNo, proshade_unsign mapIndex );
129 #else
130  std::vector< proshade_signed > getOriginalBounds ( proshade_unsign strNo );
131  std::vector< proshade_signed > getReBoxedBounds ( proshade_unsign strNo );
132  proshade_double getMapValue ( proshade_unsign strNo, proshade_unsign mapIndex );
133 #endif
134 
135  //================================================ Overlay results accessor functions
136 #if defined ( _WIN64 ) || defined ( _WIN32 )
137  std::vector< proshade_double > __declspec(dllexport) getEulerAngles ( void );
138  std::vector< proshade_double > __declspec(dllexport) getOptimalRotMat ( void );
139  std::vector< proshade_double > __declspec(dllexport) getTranslationToOrigin ( void );
140  std::vector< proshade_double > __declspec(dllexport) getOriginToOverlayTranslation ( void );
141 #else
142  std::vector< proshade_double > getEulerAngles ( void );
143  std::vector< proshade_double > getOptimalRotMat ( void );
144  std::vector< proshade_double > getTranslationToOrigin ( void );
145  std::vector< proshade_double > getOriginToOverlayTranslation ( void );
146 #endif
147 
148 };
149 
150 //==================================================== These functions should be in ProSHADE_run class, but I cannot make them work with Numpy from there, so they are here.
151 #if defined ( _WIN64 ) || defined ( _WIN32 )
152  void __declspec(dllexport) getReBoxedMap ( ProSHADE_run* run, proshade_unsign strNo, double *reboxMap, int len );
153 #else
154  void getReBoxedMap ( ProSHADE_run* run, proshade_unsign strNo, double *reboxMap, int len );
155 #endif
156 
157 #endif
ProSHADE_run::~ProSHADE_run
~ProSHADE_run(void)
Destructor for the ProSHADE class.
Definition: ProSHADE.cpp:2003
ProSHADE_run::getRotationFunctionVector
std::vector< proshade_double > getRotationFunctionVector(void)
This function returns the full rotation function distances vector from the first to all other structu...
Definition: ProSHADE.cpp:3041
ProSHADE_run::getAllCSyms
std::vector< std::vector< proshade_double > > getAllCSyms(void)
This function returns a all symmetry axes as a vector of vectors of doubles.
Definition: ProSHADE.cpp:3151
ProSHADE_run::getNoSymmetryAxes
proshade_unsign getNoSymmetryAxes(void)
This function returns the number of detected recommended symmetry axes.
Definition: ProSHADE.cpp:3072
ProSHADE_run::getEulerAngles
std::vector< proshade_double > getEulerAngles(void)
This function returns the vector of Euler angles with best overlay correlation.
Definition: ProSHADE.cpp:3292
ProSHADE_run::getVerbose
proshade_signed getVerbose(void)
This function returns the verbose value.
Definition: ProSHADE.cpp:3062
getReBoxedMap
void getReBoxedMap(ProSHADE_run *run, proshade_unsign strNo, double *reboxMap, int len)
This function returns the re-boxed structure map 1D array for the processed structure.
Definition: ProSHADE.cpp:3264
ProSHADE_run::getSymmetryAxis
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...
Definition: ProSHADE.cpp:3096
ProSHADE_run
This class provides the access point to the library.
Definition: ProSHADE.hpp:39
ProSHADE_run::getSymmetryFold
proshade_unsign getSymmetryFold(void)
This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detect...
Definition: ProSHADE.cpp:2052
ProSHADE_run::getTranslationToOrigin
std::vector< proshade_double > getTranslationToOrigin(void)
This function returns the negative values of the position of the rotation centre (the point about whi...
Definition: ProSHADE.cpp:3348
ProSHADE_settings
This class stores all the settings and is passed to the executive classes instead of a multitude of p...
Definition: ProSHADE_settings.hpp:37
ProSHADE_run::getSymmetryType
std::string getSymmetryType(void)
This is the main accessor function for the user to get to know what symmetry type ProSHADE has detect...
Definition: ProSHADE.cpp:2037
ProSHADE_run::getEnergyLevelsVector
std::vector< proshade_double > getEnergyLevelsVector(void)
This function returns the energy level distances vector from the first to all other structures.
Definition: ProSHADE.cpp:3013
ProSHADE_run::getReBoxedBounds
std::vector< proshade_signed > getReBoxedBounds(proshade_unsign strNo)
This function returns a specific structure re-boxed bounds.
Definition: ProSHADE.cpp:3213
ProSHADE_run::ProSHADE_run
ProSHADE_run(ProSHADE_settings *settings)
Contructor for the ProSHADE_run class.
Definition: ProSHADE.cpp:1905
ProSHADE_run::getMapValue
proshade_double getMapValue(proshade_unsign strNo, proshade_unsign mapIndex)
This function returns a single, specific structure map value.
Definition: ProSHADE.cpp:3247
ProSHADE_run::getNoRecommendedSymmetryAxes
proshade_unsign getNoRecommendedSymmetryAxes(void)
This function returns the number of detected recommended symmetry axes.
Definition: ProSHADE.cpp:3082
ProSHADE_tasks.hpp
This header declares all the taks functions.
ProSHADE_run::getOptimalRotMat
std::vector< proshade_double > getOptimalRotMat(void)
This function returns the vector forming rotation matrix (rows first) with best overlay correlation.
Definition: ProSHADE.cpp:3314
ProSHADE_run::getOriginalBounds
std::vector< proshade_signed > getOriginalBounds(proshade_unsign strNo)
This function returns a specific structure original bounds.
Definition: ProSHADE.cpp:3181
ProSHADE_run::getTraceSigmaVector
std::vector< proshade_double > getTraceSigmaVector(void)
This function returns the trace sigma distances vector from the first to all other structures.
Definition: ProSHADE.cpp:3027
ProSHADE_run::getNoStructures
proshade_unsign getNoStructures(void)
This function returns the number of structures used.
Definition: ProSHADE.cpp:3052
ProSHADE_run::getMapCOMProcessChange
std::vector< proshade_double > getMapCOMProcessChange(void)
This function returns the internal map COM shift.
Definition: ProSHADE.cpp:3166
ProSHADE_run::getOriginToOverlayTranslation
std::vector< proshade_double > getOriginToOverlayTranslation(void)
This function returns the translation required to move the structure from origin to optimal overlay.
Definition: ProSHADE.cpp:3376