 |
ProSHADE
0.7.6.0 (JUL 2021)
Protein Shape Detection
|
This class provides the access point to the library.
More...
#include <ProSHADE.hpp>
|
| | ProSHADE_run (ProSHADE_settings *settings) |
| | Contructor for the ProSHADE_run class. More...
|
| |
| | ~ProSHADE_run (void) |
| | Destructor for the ProSHADE class. More...
|
| |
| proshade_unsign | getNoStructures (void) |
| | This function returns the number of structures used. More...
|
| |
| proshade_signed | getVerbose (void) |
| | This function returns the verbose value. More...
|
| |
| proshade_unsign | getNoRecommendedSymmetryAxes (void) |
| | This function returns the number of detected recommended symmetry axes. More...
|
| |
| proshade_unsign | getNoSymmetryAxes (void) |
| | This function returns the number of detected recommended symmetry axes. More...
|
| |
| std::vector< proshade_double > | getEnergyLevelsVector (void) |
| | This function returns the energy level distances vector from the first to all other structures. More...
|
| |
| std::vector< proshade_double > | getTraceSigmaVector (void) |
| | This function returns the trace sigma distances vector from the first to all other structures. More...
|
| |
| std::vector< proshade_double > | getRotationFunctionVector (void) |
| | This function returns the full rotation function distances vector from the first to all other structures. More...
|
| |
| std::string | getSymmetryType (void) |
| | This is the main accessor function for the user to get to know what symmetry type ProSHADE has detected and recommends. More...
|
| |
| proshade_unsign | getSymmetryFold (void) |
| | This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detected and recommends. More...
|
| |
| std::vector< std::string > | getSymmetryAxis (proshade_unsign axisNo) |
| | This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list. More...
|
| |
| std::vector< std::vector< proshade_double > > | getAllCSyms (void) |
| | This function returns a all symmetry axes as a vector of vectors of doubles. More...
|
| |
| std::vector< proshade_double > | getMapCOMProcessChange (void) |
| | This function returns the internal map COM shift. More...
|
| |
| std::vector< proshade_signed > | getOriginalBounds (proshade_unsign strNo) |
| | This function returns a specific structure original bounds. More...
|
| |
| std::vector< proshade_signed > | getReBoxedBounds (proshade_unsign strNo) |
| | This function returns a specific structure re-boxed bounds. More...
|
| |
| proshade_double | getMapValue (proshade_unsign strNo, proshade_unsign mapIndex) |
| | This function returns a single, specific structure map value. More...
|
| |
| std::vector< proshade_double > | getEulerAngles (void) |
| | This function returns the vector of Euler angles with best overlay correlation. More...
|
| |
| std::vector< proshade_double > | getOptimalRotMat (void) |
| | This function returns the vector forming rotation matrix (rows first) with best overlay correlation. More...
|
| |
| std::vector< proshade_double > | getTranslationToOrigin (void) |
| | This function returns the negative values of the position of the rotation centre (the point about which the rotation should be done). More...
|
| |
| std::vector< proshade_double > | getOriginToOverlayTranslation (void) |
| | This function returns the translation required to move the structure from origin to optimal overlay. More...
|
| |
This class provides the access point to the library.
This class codes the object that the user of the library needs to create (and presumably delete) in order to get access to the ProSHADE library.
Definition at line 38 of file ProSHADE.hpp.
◆ ProSHADE_run()
Contructor for the ProSHADE_run class.
This is where all the decisions regarding what should be done are made. It takes the settings and based on them, it decides what to do and how to report the results.
- Parameters
-
Definition at line 1664 of file ProSHADE.cpp.
1671 this->noStructures =
static_cast<proshade_unsign
> ( settings->
inputFiles.size() );
1672 this->verbose =
static_cast<proshade_signed
> ( settings->
verbose );
1678 switch ( settings->
task )
1681 throw ProSHADE_exception (
"No task has been specified.",
"E000001", __FILE__, __LINE__, __func__,
"ProSHADE requires to be told which particular functiona-\n : lity (task) is requested from it. In order to do so, the\n : command line arguments specifying task need to be used\n : (if used from command line), or the ProSHADE_settings\n : object needs to have the member variable \'Task\' set to\n : one of the following values: Distances, Symmetry,\n : OverlayMap or MapManip." );
1685 this->setSymmetryResults ( settings );
1705 std::cerr << std::endl <<
"=====================" << std::endl <<
"!! ProSHADE ERROR !!" << std::endl <<
"=====================" << std::endl << std::flush;
1706 std::cerr <<
"Error Code : " << err.
get_errc() << std::endl << std::flush;
1707 std::cerr <<
"ProSHADE version : " << PROSHADE_VERSION << std::endl << std::flush;
1708 std::cerr <<
"File : " << err.
get_file() << std::endl << std::flush;
1709 std::cerr <<
"Line : " << err.
get_line() << std::endl << std::flush;
1710 std::cerr <<
"Function : " << err.
get_func() << std::endl << std::flush;
1711 std::cerr <<
"Message : " << err.what() << std::endl << std::flush;
1712 std::cerr <<
"Further information : " << err.
get_info() << std::endl << std::endl << std::flush;
1716 exit ( EXIT_FAILURE );
1722 std::cerr << std::endl <<
"=====================" << std::endl <<
"!! ProSHADE ERROR !!" << std::endl <<
"=====================" << std::endl << std::flush;
1725 #if __cplusplus >= 201103L
1726 std::exception_ptr exc = std::current_exception();
1731 std::rethrow_exception ( exc );
1734 catch (
const std::exception& e )
1736 std::cerr <<
"Caught unknown exception with following information: " << e.what() << std::endl << std::flush;
1739 std::cerr <<
"Unknown error with no further explanation available. Please contact the author for help." << std::endl << std::flush;
1741 std::cerr <<
"Terminating..." << std::endl << std::endl << std::flush;
1745 exit ( EXIT_FAILURE );
◆ ~ProSHADE_run()
| ProSHADE_run::~ProSHADE_run |
( |
void |
| ) |
|
Destructor for the ProSHADE class.
This destructor is responsible for releasing all memory used by the executing object
Definition at line 1762 of file ProSHADE.cpp.
1766 if ( this->originalBounds.size() > 0 ) {
for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->originalBounds.size() ); iter++ ) {
delete[] this->originalBounds.at(iter); } }
1767 if ( this->reboxedBounds.size() > 0 ) {
for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->reboxedBounds.size() ); iter++ ) {
delete[] this->reboxedBounds.at(iter); } }
1768 if ( this->manipulatedMaps.size() > 0 ) {
for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->manipulatedMaps.size() ); iter++ ) {
delete[] this->manipulatedMaps.at(iter); } }
1771 this->enLevs.clear ( );
1772 this->trSigm.clear ( );
1773 this->rotFun.clear ( );
1776 if ( this->RecomSymAxes.size() > 0 )
1778 for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
1780 delete[] this->RecomSymAxes.at(iter);
1782 this->RecomSymAxes.clear ( );
◆ getAllCSyms()
| std::vector< std::vector< proshade_double > > ProSHADE_run::getAllCSyms |
( |
void |
| ) |
|
This function returns a all symmetry axes as a vector of vectors of doubles.
- Parameters
-
| [out] | val | A vector of vectors of doubles containing all the symmetries axis fold, x, y, z axis element, angle and peak height in this order. |
Definition at line 2882 of file ProSHADE.cpp.
2886 return ( this->allCSymAxes );
◆ getEnergyLevelsVector()
| std::vector< proshade_double > ProSHADE_run::getEnergyLevelsVector |
( |
void |
| ) |
|
This function returns the energy level distances vector from the first to all other structures.
- Parameters
-
| [out] | enLevs | Vector of doubles of the distances. |
Definition at line 2744 of file ProSHADE.cpp.
2748 return ( this->enLevs );
◆ getEulerAngles()
| std::vector< proshade_double > ProSHADE_run::getEulerAngles |
( |
void |
| ) |
|
This function returns the vector of Euler angles with best overlay correlation.
- Parameters
-
| [out] | ret | Vector of Euler angles (ZXZ convention) which lead to the globally best overlay correlation. |
Definition at line 3023 of file ProSHADE.cpp.
3027 if ( this->eulerAngles.size() != 3 )
3029 ProSHADE_internal_messages::printWarningMessage ( this->verbose,
"!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.",
"WO00042" );
3030 return ( std::vector< proshade_double > ( ) );
3034 return ( this->eulerAngles );
◆ getMapCOMProcessChange()
| std::vector< proshade_double > ProSHADE_run::getMapCOMProcessChange |
( |
void |
| ) |
|
This function returns the internal map COM shift.
- Parameters
-
| [out] | val | The shift used to centre the internal map COM to the centre of the box. |
Definition at line 2897 of file ProSHADE.cpp.
2901 return ( this->mapCOMShift );
◆ getMapValue()
| proshade_double ProSHADE_run::getMapValue |
( |
proshade_unsign |
strNo, |
|
|
proshade_unsign |
mapIndex |
|
) |
| |
This function returns a single, specific structure map value.
- Parameters
-
| [in] | strNo | The index of the structure for which the map value is to be returned. |
| [in] | mapIndex | The map array index of which the value is returned. |
| [out] | val | The map density value for the particular mapIndex position. |
Definition at line 2978 of file ProSHADE.cpp.
2982 return ( this->manipulatedMaps.at(strNo)[mapIndex] );
◆ getNoRecommendedSymmetryAxes()
| proshade_unsign ProSHADE_run::getNoRecommendedSymmetryAxes |
( |
void |
| ) |
|
This function returns the number of detected recommended symmetry axes.
- Parameters
-
| [out] | val | The length of the recommended symmetry axes vector. |
Definition at line 2813 of file ProSHADE.cpp.
2816 return (
static_cast<proshade_unsign
> ( this->RecomSymAxes.size() ) );
◆ getNoStructures()
| proshade_unsign ProSHADE_run::getNoStructures |
( |
void |
| ) |
|
This function returns the number of structures used.
- Parameters
-
| [in] | noStructures | Number of structures supplied to the settings object. |
Definition at line 2783 of file ProSHADE.cpp.
2786 return ( this->noStructures );
◆ getNoSymmetryAxes()
| proshade_unsign ProSHADE_run::getNoSymmetryAxes |
( |
void |
| ) |
|
This function returns the number of detected recommended symmetry axes.
- Parameters
-
| [out] | val | The length of the recommended symmetry axes vector. |
Definition at line 2803 of file ProSHADE.cpp.
2806 return (
static_cast<proshade_unsign
> ( this->RecomSymAxes.size() ) );
◆ getOptimalRotMat()
| std::vector< proshade_double > ProSHADE_run::getOptimalRotMat |
( |
void |
| ) |
|
This function returns the vector forming rotation matrix (rows first) with best overlay correlation.
- Parameters
-
| [out] | ret | Vector forming rotation matrix (rows first) which lead to the globally best overlay correlation. |
Definition at line 3045 of file ProSHADE.cpp.
3049 if ( this->eulerAngles.size() != 3 )
3051 ProSHADE_internal_messages::printWarningMessage ( this->verbose,
"!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.",
"WO00042" );
3052 return ( std::vector< proshade_double > ( ) );
3056 proshade_double* rotMat =
new proshade_double[9];
3061 std::vector< proshade_double > ret;
◆ getOriginalBounds()
| std::vector< proshade_signed > ProSHADE_run::getOriginalBounds |
( |
proshade_unsign |
strNo | ) |
|
This function returns a specific structure original bounds.
- Parameters
-
| [in] | strNo | The index of the structure for which the bounds are to be returned. |
Definition at line 2912 of file ProSHADE.cpp.
2916 if ( noStructures <= strNo )
2919 return ( std::vector< proshade_signed > ( ) );
2923 std::vector< proshade_signed > ret;
◆ getOriginToOverlayTranslation()
| std::vector< proshade_double > ProSHADE_run::getOriginToOverlayTranslation |
( |
void |
| ) |
|
This function returns the translation required to move the structure from origin to optimal overlay.
- Parameters
-
| [out] | ret | Translation required to move structure from origin to optimal overlay. |
Definition at line 3107 of file ProSHADE.cpp.
3111 if ( this->overlayTranslation.size() != 3 )
3113 ProSHADE_internal_messages::printWarningMessage ( this->verbose,
"!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.",
"WO00042" );
3114 return ( std::vector< proshade_double > ( ) );
3118 return ( this->overlayTranslation );
◆ getReBoxedBounds()
| std::vector< proshade_signed > ProSHADE_run::getReBoxedBounds |
( |
proshade_unsign |
strNo | ) |
|
This function returns a specific structure re-boxed bounds.
- Parameters
-
| [in] | strNo | The index of the structure for which the bounds are to be returned. |
Definition at line 2944 of file ProSHADE.cpp.
2948 if ( noStructures <= strNo )
2951 return ( std::vector< proshade_signed > ( ) );
2955 std::vector< proshade_signed > ret;
◆ getRotationFunctionVector()
| std::vector< proshade_double > ProSHADE_run::getRotationFunctionVector |
( |
void |
| ) |
|
This function returns the full rotation function distances vector from the first to all other structures.
- Parameters
-
| [out] | rotFun | Vector of doubles of the distances. |
Definition at line 2772 of file ProSHADE.cpp.
2776 return ( this->rotFun );
◆ getSymmetryAxis()
| std::vector< std::string > ProSHADE_run::getSymmetryAxis |
( |
proshade_unsign |
axisNo | ) |
|
This function returns a single symmetry axis as a vector of strings from the recommended symmetry axes list.
- Parameters
-
| [in] | axisNo | The index of the axis to be returned. |
| [out] | val | A vector of strings containing the symmetry axis fold, x, y, z axis element, angle and peak height in this order. |
Definition at line 2827 of file ProSHADE.cpp.
2831 if (
static_cast<proshade_unsign
> ( this->RecomSymAxes.size() ) <= axisNo )
2834 return ( std::vector< std::string > ( ) );
2838 std::vector< std::string > ret;
2841 std::stringstream ssHlp;
2842 ssHlp << this->RecomSymAxes.at(axisNo)[0];
2846 ssHlp << this->RecomSymAxes.at(axisNo)[1];
2850 ssHlp << this->RecomSymAxes.at(axisNo)[2];
2854 ssHlp << this->RecomSymAxes.at(axisNo)[3];
2858 ssHlp << this->RecomSymAxes.at(axisNo)[4];
2862 ssHlp << this->RecomSymAxes.at(axisNo)[5];
2866 ssHlp << this->RecomSymAxes.at(axisNo)[6];
◆ getSymmetryFold()
| proshade_unsign ProSHADE_run::getSymmetryFold |
( |
void |
| ) |
|
This is the main accessor function for the user to get to know what symmetry fold ProSHADE has detected and recommends.
- Parameters
-
| [out] | symRecommFold | This is the fold of ProSHADE detected and recommended symmetry (C and D symmetry types only). |
Definition at line 1811 of file ProSHADE.cpp.
1815 return ( this->symRecommFold );
◆ getSymmetryType()
| std::string ProSHADE_run::getSymmetryType |
( |
void |
| ) |
|
This is the main accessor function for the user to get to know what symmetry type ProSHADE has detected and recommends.
- Parameters
-
| [out] | symRecommType | This is the value ( ""=None, C=cyclic, D=Dihedral, T=Tetrahedral, O=Octahedral or I=Icosahedral) of ProSHADE detected and recommended symmetry. |
Definition at line 1796 of file ProSHADE.cpp.
1801 return ( this->symRecommType );
◆ getTraceSigmaVector()
| std::vector< proshade_double > ProSHADE_run::getTraceSigmaVector |
( |
void |
| ) |
|
This function returns the trace sigma distances vector from the first to all other structures.
- Parameters
-
| [out] | trSigm | Vector of doubles of the distances. |
Definition at line 2758 of file ProSHADE.cpp.
2762 return ( this->trSigm );
◆ getTranslationToOrigin()
| std::vector< proshade_double > ProSHADE_run::getTranslationToOrigin |
( |
void |
| ) |
|
This function returns the negative values of the position of the rotation centre (the point about which the rotation should be done).
- Parameters
-
| [out] | ret | Vector specifying the negative values of the rotation centre - i.e. the translation of the rotation centre to the origin. |
Definition at line 3079 of file ProSHADE.cpp.
3083 if ( this->coordRotationCentre.size() != 3 )
3085 ProSHADE_internal_messages::printWarningMessage ( this->verbose,
"!!! ProSHADE WARNING !!! Requested rotation/translation values for Overlay functionality without having successfully computed it. Please check the correct task was used and no other warnings/errors were obtained.",
"WO00042" );
3086 return ( std::vector< proshade_double > ( ) );
3090 std::vector < proshade_double > ret;
◆ getVerbose()
| proshade_signed ProSHADE_run::getVerbose |
( |
void |
| ) |
|
This function returns the verbose value.
- Parameters
-
| [in] | verbose | How loud the run should be? |
Definition at line 2793 of file ProSHADE.cpp.
2796 return ( this->verbose );
The documentation for this class was generated from the following files:
void MapOverlayTask(ProSHADE_settings *settings, std::vector< proshade_double > *rotationCentre, std::vector< proshade_double > *eulerAngles, std::vector< proshade_double > *finalTranslation)
The symmetry detection task driver function.
This class is the representation of ProSHADE exception.
virtual std::string get_errc(void)
This function returns the exception error code.
virtual std::string get_info(void)
This function returns the exception description.
void getRotationMatrixFromEulerZXZAngles(proshade_double eulerAlpha, proshade_double eulerBeta, proshade_double eulerGamma, proshade_double *matrix)
Function to find the rotation matrix from Euler angles (ZXZ convention).
void printWarningMessage(proshade_signed verbose, std::string message, std::string warnCode)
General stderr message printing (used for warnings).
proshade_signed verbose
Should the software report on the progress, or just be quiet? Value between -1 (nothing) and 4 (loud)
virtual std::string get_func(void)
This function returns the exception causing function name.
void addToDoubleVector(std::vector< proshade_double > *vecToAddTo, proshade_double elementToAdd)
Adds the element to the vector.
void MapManipulationTask(ProSHADE_settings *settings, std::vector< proshade_signed * > *originalBounds, std::vector< proshade_signed * > *reboxedBounds, std::vector< proshade_double * > *manipulatedMaps)
The re-boxing task driver function.
void addToSignedVector(std::vector< proshade_signed > *vecToAddTo, proshade_signed elementToAdd)
Adds the element to the vector.
ProSHADE_Task task
This custom type variable determines which task to perfom (i.e. symmetry detection,...
void DistancesComputationTask(ProSHADE_settings *settings, std::vector< proshade_double > *enLevs, std::vector< proshade_double > *trSigm, std::vector< proshade_double > *rotFun)
The distances computation task driver function.
void printWellcomeMessage(proshade_signed verbose)
Wellcome message printing.
void printTerminateMessage(proshade_signed verbose)
Final message printing.
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.
virtual int long get_line(void)
This function returns the exception location line.
std::vector< std::string > inputFiles
This vector contains the filenames of all input structure files.
virtual std::string get_file(void)
This function returns the exception location file name.
void addToStringVector(std::vector< std::string > *vecToAddTo, std::string elementToAdd)
Adds the element to the vector.
void SymmetryDetectionTask(ProSHADE_settings *settings, std::vector< proshade_double * > *axes, std::vector< std::vector< proshade_double > > *allCs, std::vector< proshade_double > *mapCOMShift)
The symmetry detection task driver function.