ProSHADE  0.7.6.0 (JUL 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 1664 of file ProSHADE.cpp.

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

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

1764 {
1765  //================================================ Release reboxing pointers
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); } }
1769 
1770  //================================================ Clear vectors
1771  this->enLevs.clear ( );
1772  this->trSigm.clear ( );
1773  this->rotFun.clear ( );
1774 
1775  //================================================ Delete symmetry axes memory
1776  if ( this->RecomSymAxes.size() > 0 )
1777  {
1778  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
1779  {
1780  delete[] this->RecomSymAxes.at(iter);
1781  }
1782  this->RecomSymAxes.clear ( );
1783  }
1784 
1785  //================================================ Done
1786 
1787 }

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 2882 of file ProSHADE.cpp.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1813 {
1814  //================================================ Return the value
1815  return ( this->symRecommFold );
1816 }

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

1799 {
1800  //================================================ Return the value
1801  return ( this->symRecommType );
1802 }

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

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

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

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

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 2793 of file ProSHADE.cpp.

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

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:377
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:1011
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:140
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