ProSHADE  0.7.6.1 (AUG 2021)
Protein Shape Detection
ProSHADE_run Class Reference

This class provides the access point to the library. More...

#include <ProSHADE.hpp>

Public Member Functions

 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ProSHADE_run()

ProSHADE_run::ProSHADE_run ( ProSHADE_settings settings)

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
[in]settingsProSHADE_settings object specifying what should be done.

Definition at line 1667 of file ProSHADE.cpp.

1669 {
1670  //================================================ Wellcome message if required
1672 
1673  //================================================ Save the general information
1674  this->noStructures = static_cast<proshade_unsign> ( settings->inputFiles.size() );
1675  this->verbose = static_cast<proshade_signed> ( settings->verbose );
1676 
1677  //================================================ Try to run ProSHADE
1678  try
1679  {
1680  //============================================ Depending on task, switch to correct function to call
1681  switch ( settings->task )
1682  {
1683  case NA:
1684  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 
1686  case Symmetry:
1687  ProSHADE_internal_tasks::SymmetryDetectionTask ( settings, &this->RecomSymAxes, &this->allCSymAxes, &this->mapCOMShift );
1688  this->setSymmetryResults ( settings );
1689  break;
1690 
1691  case Distances:
1692  ProSHADE_internal_tasks::DistancesComputationTask ( settings, &this->enLevs, &this->trSigm, &this->rotFun );
1693  break;
1694 
1695  case OverlayMap:
1696  ProSHADE_internal_tasks::MapOverlayTask ( settings, &this->coordRotationCentre, &this->eulerAngles, &this->overlayTranslation );
1697  break;
1698 
1699  case MapManip:
1700  ProSHADE_internal_tasks::MapManipulationTask ( settings, &this->originalBounds, &this->reboxedBounds, &this->manipulatedMaps );
1701  break;
1702  }
1703  }
1704 
1705  //================================================ If this is ProSHADE exception, give all available info and terminate gracefully :-)
1706  catch ( ProSHADE_exception& err )
1707  {
1708  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1709  std::cerr << "Error Code : " << err.get_errc() << std::endl << std::flush;
1710  std::cerr << "ProSHADE version : " << PROSHADE_VERSION << std::endl << std::flush;
1711  std::cerr << "File : " << err.get_file() << std::endl << std::flush;
1712  std::cerr << "Line : " << err.get_line() << std::endl << std::flush;
1713  std::cerr << "Function : " << err.get_func() << std::endl << std::flush;
1714  std::cerr << "Message : " << err.what() << std::endl << std::flush;
1715  std::cerr << "Further information : " << err.get_info() << std::endl << std::endl << std::flush;
1716 
1717  //============================================ Done
1719  exit ( EXIT_FAILURE );
1720  }
1721 
1722  //================================================ Well, give all there is and just end
1723  catch ( ... )
1724  {
1725  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1726 
1727  //============================================ Try to find out more
1728 #if __cplusplus >= 201103L
1729  std::exception_ptr exc = std::current_exception();
1730  try
1731  {
1732  if (exc)
1733  {
1734  std::rethrow_exception ( exc );
1735  }
1736  }
1737  catch ( const std::exception& e )
1738  {
1739  std::cerr << "Caught unknown exception with following information: " << e.what() << std::endl << std::flush;
1740  }
1741 #else
1742  std::cerr << "Unknown error with no further explanation available. Please contact the author for help." << std::endl << std::flush;
1743 #endif
1744  std::cerr << "Terminating..." << std::endl << std::endl << std::flush;
1745 
1746  //============================================ Done
1748  exit ( EXIT_FAILURE );
1749  }
1750 
1751  //================================================ Terminating message
1753 
1754  //================================================ Done
1755 
1756 }

◆ ~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 1765 of file ProSHADE.cpp.

1767 {
1768  //================================================ Release reboxing pointers
1769  if ( this->originalBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->originalBounds.size() ); iter++ ) { delete[] this->originalBounds.at(iter); } }
1770  if ( this->reboxedBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->reboxedBounds.size() ); iter++ ) { delete[] this->reboxedBounds.at(iter); } }
1771  if ( this->manipulatedMaps.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->manipulatedMaps.size() ); iter++ ) { delete[] this->manipulatedMaps.at(iter); } }
1772 
1773  //================================================ Clear vectors
1774  this->enLevs.clear ( );
1775  this->trSigm.clear ( );
1776  this->rotFun.clear ( );
1777 
1778  //================================================ Delete symmetry axes memory
1779  if ( this->RecomSymAxes.size() > 0 )
1780  {
1781  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
1782  {
1783  delete[] this->RecomSymAxes.at(iter);
1784  }
1785  this->RecomSymAxes.clear ( );
1786  }
1787 
1788  //================================================ Done
1789 
1790 }

Member Function Documentation

◆ 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]valA 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 2881 of file ProSHADE.cpp.

2883 {
2884  //================================================ Done
2885  return ( this->allCSymAxes );
2886 
2887 }

◆ 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]enLevsVector of doubles of the distances.

Definition at line 2743 of file ProSHADE.cpp.

2745 {
2746  //================================================ Return the value
2747  return ( this->enLevs );
2748 }

◆ getEulerAngles()

std::vector< proshade_double > ProSHADE_run::getEulerAngles ( void  )

This function returns the vector of Euler angles with best overlay correlation.

Parameters
[out]retVector of Euler angles (ZXZ convention) which lead to the globally best overlay correlation.

Definition at line 3022 of file ProSHADE.cpp.

3024 {
3025  //================================================ Sanity check
3026  if ( this->eulerAngles.size() != 3 )
3027  {
3028  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" );
3029  return ( std::vector< proshade_double > ( ) );
3030  }
3031 
3032  //================================================ Return required value
3033  return ( this->eulerAngles );
3034 
3035 }

◆ getMapCOMProcessChange()

std::vector< proshade_double > ProSHADE_run::getMapCOMProcessChange ( void  )

This function returns the internal map COM shift.

Parameters
[out]valThe shift used to centre the internal map COM to the centre of the box.

Definition at line 2896 of file ProSHADE.cpp.

2898 {
2899  //================================================ Done
2900  return ( this->mapCOMShift );
2901 
2902 }

◆ getMapValue()

proshade_double ProSHADE_run::getMapValue ( proshade_unsign  strNo,
proshade_unsign  mapIndex 
)

This function returns a single, specific structure map value.

Parameters
[in]strNoThe index of the structure for which the map value is to be returned.
[in]mapIndexThe map array index of which the value is returned.
[out]valThe map density value for the particular mapIndex position.

Definition at line 2977 of file ProSHADE.cpp.

2979 {
2980  //================================================ Return the value
2981  return ( this->manipulatedMaps.at(strNo)[mapIndex] );
2982 }

◆ getNoRecommendedSymmetryAxes()

proshade_unsign ProSHADE_run::getNoRecommendedSymmetryAxes ( void  )

This function returns the number of detected recommended symmetry axes.

Parameters
[out]valThe length of the recommended symmetry axes vector.

Definition at line 2812 of file ProSHADE.cpp.

2813 {
2814  //================================================ Return the value
2815  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2816 }

◆ getNoStructures()

proshade_unsign ProSHADE_run::getNoStructures ( void  )

This function returns the number of structures used.

Parameters
[in]noStructuresNumber of structures supplied to the settings object.

Definition at line 2782 of file ProSHADE.cpp.

2783 {
2784  //================================================ Return the value
2785  return ( this->noStructures );
2786 }

◆ getNoSymmetryAxes()

proshade_unsign ProSHADE_run::getNoSymmetryAxes ( void  )

This function returns the number of detected recommended symmetry axes.

Parameters
[out]valThe length of the recommended symmetry axes vector.

Definition at line 2802 of file ProSHADE.cpp.

2803 {
2804  //================================================ Return the value
2805  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
2806 }

◆ 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]retVector forming rotation matrix (rows first) which lead to the globally best overlay correlation.

Definition at line 3044 of file ProSHADE.cpp.

3046 {
3047  //================================================ Sanity check
3048  if ( this->eulerAngles.size() != 3 )
3049  {
3050  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" );
3051  return ( std::vector< proshade_double > ( ) );
3052  }
3053 
3054  //================================================ Obtain the optimal rotation matrix
3055  proshade_double* rotMat = new proshade_double[9];
3056  ProSHADE_internal_misc::checkMemoryAllocation ( rotMat, __FILE__, __LINE__, __func__ );
3057  ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles ( this->eulerAngles.at(0), this->eulerAngles.at(1), this->eulerAngles.at(2), rotMat );
3058 
3059  //================================================ Copy to the output variable
3060  std::vector< proshade_double > ret;
3061  for ( proshade_unsign iter = 0; iter < 9; iter++ ) { ProSHADE_internal_misc::addToDoubleVector ( &ret, rotMat[iter] ); }
3062 
3063  //================================================ Release the memory
3064  delete[] rotMat;
3065 
3066  //================================================ Return required value
3067  return ( ret );
3068 
3069 }

◆ getOriginalBounds()

std::vector< proshade_signed > ProSHADE_run::getOriginalBounds ( proshade_unsign  strNo)

This function returns a specific structure original bounds.

Parameters
[in]strNoThe index of the structure for which the bounds are to be returned.

Definition at line 2911 of file ProSHADE.cpp.

2913 {
2914  //================================================ Sanity checks
2915  if ( noStructures <= strNo )
2916  {
2917  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
2918  return ( std::vector< proshade_signed > ( ) );
2919  }
2920 
2921  //================================================ Initialise local variables
2922  std::vector< proshade_signed > ret;
2923 
2924  //================================================ Input the axis data as strings
2925  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[0] );
2926  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[1] );
2927  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[2] );
2928  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[3] );
2929  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[4] );
2930  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[5] );
2931 
2932  //================================================ Done
2933  return ( ret );
2934 }

◆ 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]retTranslation required to move structure from origin to optimal overlay.

Definition at line 3106 of file ProSHADE.cpp.

3108 {
3109  //================================================ Sanity check
3110  if ( this->overlayTranslation.size() != 3 )
3111  {
3112  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" );
3113  return ( std::vector< proshade_double > ( ) );
3114  }
3115 
3116  //================================================ Return required value
3117  return ( this->overlayTranslation );
3118 
3119 }

◆ getReBoxedBounds()

std::vector< proshade_signed > ProSHADE_run::getReBoxedBounds ( proshade_unsign  strNo)

This function returns a specific structure re-boxed bounds.

Parameters
[in]strNoThe index of the structure for which the bounds are to be returned.

Definition at line 2943 of file ProSHADE.cpp.

2945 {
2946  //================================================ Sanity checks
2947  if ( noStructures <= strNo )
2948  {
2949  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
2950  return ( std::vector< proshade_signed > ( ) );
2951  }
2952 
2953  //================================================ Initialise local variables
2954  std::vector< proshade_signed > ret;
2955 
2956  //================================================ Input the axis data as strings
2957  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[0] );
2958  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[1] );
2959  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[2] );
2960  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[3] );
2961  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[4] );
2962  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[5] );
2963 
2964  //================================================ Done
2965  return ( ret );
2966 }

◆ 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]rotFunVector of doubles of the distances.

Definition at line 2771 of file ProSHADE.cpp.

2773 {
2774  //================================================ Return the value
2775  return ( this->rotFun );
2776 }

◆ 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]axisNoThe index of the axis to be returned.
[out]valA vector of strings containing the symmetry axis fold, x, y, z axis element, angle and peak height in this order.

Definition at line 2826 of file ProSHADE.cpp.

2828 {
2829  //================================================ Sanity checks
2830  if ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) <= axisNo )
2831  {
2832  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested symmetry index does not exist. Returning empty vector.", "WS00039" );
2833  return ( std::vector< std::string > ( ) );
2834  }
2835 
2836  //================================================ Initialise local variables
2837  std::vector< std::string > ret;
2838 
2839  //================================================ Input the axis data as strings
2840  std::stringstream ssHlp;
2841  ssHlp << this->RecomSymAxes.at(axisNo)[0];
2842  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2843  ssHlp.str ( "" );
2844 
2845  ssHlp << this->RecomSymAxes.at(axisNo)[1];
2846  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2847  ssHlp.str ( "" );
2848 
2849  ssHlp << this->RecomSymAxes.at(axisNo)[2];
2850  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2851  ssHlp.str ( "" );
2852 
2853  ssHlp << this->RecomSymAxes.at(axisNo)[3];
2854  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2855  ssHlp.str ( "" );
2856 
2857  ssHlp << this->RecomSymAxes.at(axisNo)[4];
2858  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2859  ssHlp.str ( "" );
2860 
2861  ssHlp << this->RecomSymAxes.at(axisNo)[5];
2862  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2863  ssHlp.str ( "" );
2864 
2865  ssHlp << this->RecomSymAxes.at(axisNo)[6];
2866  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
2867  ssHlp.str ( "" );
2868 
2869  //================================================ Done
2870  return ( ret );
2871 
2872 }

◆ 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]symRecommFoldThis is the fold of ProSHADE detected and recommended symmetry (C and D symmetry types only).

Definition at line 1814 of file ProSHADE.cpp.

1816 {
1817  //================================================ Return the value
1818  return ( this->symRecommFold );
1819 }

◆ 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]symRecommTypeThis is the value ( ""=None, C=cyclic, D=Dihedral, T=Tetrahedral, O=Octahedral or I=Icosahedral) of ProSHADE detected and recommended symmetry.

Definition at line 1799 of file ProSHADE.cpp.

1802 {
1803  //================================================ Return the value
1804  return ( this->symRecommType );
1805 }

◆ 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]trSigmVector of doubles of the distances.

Definition at line 2757 of file ProSHADE.cpp.

2759 {
2760  //================================================ Return the value
2761  return ( this->trSigm );
2762 }

◆ 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]retVector specifying the negative values of the rotation centre - i.e. the translation of the rotation centre to the origin.

Definition at line 3078 of file ProSHADE.cpp.

3080 {
3081  //================================================ Sanity check
3082  if ( this->coordRotationCentre.size() != 3 )
3083  {
3084  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" );
3085  return ( std::vector< proshade_double > ( ) );
3086  }
3087 
3088  //================================================ Create return variable with negative values of the internal varariable
3089  std::vector < proshade_double > ret;
3090  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(0) );
3091  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(1) );
3092  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(2) );
3093 
3094  //================================================ Return required value
3095  return ( ret );
3096 
3097 }

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 2792 of file ProSHADE.cpp.

2793 {
2794  //================================================ Return the value
2795  return ( this->verbose );
2796 }

The documentation for this class was generated from the following files:
ProSHADE_internal_tasks::MapOverlayTask
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.
Definition: ProSHADE_tasks.cpp:369
ProSHADE_exception
This class is the representation of ProSHADE exception.
Definition: ProSHADE_exceptions.hpp:37
ProSHADE_exception::get_errc
virtual std::string get_errc(void)
This function returns the exception error code.
Definition: ProSHADE_exceptions.cpp:29
ProSHADE_exception::get_info
virtual std::string get_info(void)
This function returns the exception description.
Definition: ProSHADE_exceptions.cpp:53
ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles
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).
Definition: ProSHADE_maths.cpp:1007
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:101
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:142
ProSHADE_exception::get_func
virtual std::string get_func(void)
This function returns the exception causing function name.
Definition: ProSHADE_exceptions.cpp:47
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_internal_tasks::MapManipulationTask
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.
Definition: ProSHADE_tasks.cpp:35
ProSHADE_internal_misc::addToSignedVector
void addToSignedVector(std::vector< proshade_signed > *vecToAddTo, proshade_signed elementToAdd)
Adds the element to the vector.
Definition: ProSHADE_misc.cpp:121
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_internal_tasks::DistancesComputationTask
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.
Definition: ProSHADE_tasks.cpp:147
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_internal_misc::checkMemoryAllocation
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.
Definition: ProSHADE_misc.hpp:67
ProSHADE_exception::get_line
virtual int long get_line(void)
This function returns the exception location line.
Definition: ProSHADE_exceptions.cpp:41
ProSHADE_settings::inputFiles
std::vector< std::string > inputFiles
This vector contains the filenames of all input structure files.
Definition: ProSHADE_settings.hpp:43
ProSHADE_exception::get_file
virtual std::string get_file(void)
This function returns the exception location file name.
Definition: ProSHADE_exceptions.cpp:35
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_internal_tasks::SymmetryDetectionTask
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.
Definition: ProSHADE_tasks.cpp:287