ProSHADE  0.7.6.2 (DEC 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 1905 of file ProSHADE.cpp.

1907 {
1908  //================================================ Wellcome message if required
1910 
1911  //================================================ Save the general information
1912  this->noStructures = static_cast<proshade_unsign> ( settings->inputFiles.size() );
1913  this->verbose = static_cast<proshade_signed> ( settings->verbose );
1914 
1915  //================================================ Try to run ProSHADE
1916  try
1917  {
1918  //============================================ Depending on task, switch to correct function to call
1919  switch ( settings->task )
1920  {
1921  case NA:
1922  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." );
1923 
1924  case Symmetry:
1925  ProSHADE_internal_tasks::SymmetryDetectionTask ( settings, &this->RecomSymAxes, &this->allCSymAxes, &this->mapCOMShift );
1926  this->setSymmetryResults ( settings );
1927  break;
1928 
1929  case Distances:
1930  ProSHADE_internal_tasks::DistancesComputationTask ( settings, &this->enLevs, &this->trSigm, &this->rotFun );
1931  break;
1932 
1933  case OverlayMap:
1934  ProSHADE_internal_tasks::MapOverlayTask ( settings, &this->coordRotationCentre, &this->eulerAngles, &this->overlayTranslation );
1935  break;
1936 
1937  case MapManip:
1938  ProSHADE_internal_tasks::MapManipulationTask ( settings, &this->originalBounds, &this->reboxedBounds, &this->manipulatedMaps );
1939  break;
1940  }
1941  }
1942 
1943  //================================================ If this is ProSHADE exception, give all available info and terminate gracefully :-)
1944  catch ( ProSHADE_exception& err )
1945  {
1946  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1947  std::cerr << "Error Code : " << err.get_errc() << std::endl << std::flush;
1948  std::cerr << "ProSHADE version : " << PROSHADE_VERSION << std::endl << std::flush;
1949  std::cerr << "File : " << err.get_file() << std::endl << std::flush;
1950  std::cerr << "Line : " << err.get_line() << std::endl << std::flush;
1951  std::cerr << "Function : " << err.get_func() << std::endl << std::flush;
1952  std::cerr << "Message : " << err.what() << std::endl << std::flush;
1953  std::cerr << "Further information : " << err.get_info() << std::endl << std::endl << std::flush;
1954 
1955  //============================================ Done
1957  exit ( EXIT_FAILURE );
1958  }
1959 
1960  //================================================ Well, give all there is and just end
1961  catch ( ... )
1962  {
1963  std::cerr << std::endl << "=====================" << std::endl << "!! ProSHADE ERROR !!" << std::endl << "=====================" << std::endl << std::flush;
1964 
1965  //============================================ Try to find out more
1966 #if __cplusplus >= 201103L
1967  std::exception_ptr exc = std::current_exception();
1968  try
1969  {
1970  if (exc)
1971  {
1972  std::rethrow_exception ( exc );
1973  }
1974  }
1975  catch ( const std::exception& e )
1976  {
1977  std::cerr << "Caught unknown exception with following information: " << e.what() << std::endl << std::flush;
1978  }
1979 #else
1980  std::cerr << "Unknown error with no further explanation available. Please contact the author for help." << std::endl << std::flush;
1981 #endif
1982  std::cerr << "Terminating..." << std::endl << std::endl << std::flush;
1983 
1984  //============================================ Done
1986  exit ( EXIT_FAILURE );
1987  }
1988 
1989  //================================================ Terminating message
1991 
1992  //================================================ Done
1993 
1994 }

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

2005 {
2006  //================================================ Release reboxing pointers
2007  if ( this->originalBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->originalBounds.size() ); iter++ ) { delete[] this->originalBounds.at(iter); } }
2008  if ( this->reboxedBounds.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->reboxedBounds.size() ); iter++ ) { delete[] this->reboxedBounds.at(iter); } }
2009  if ( this->manipulatedMaps.size() > 0 ) { for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->manipulatedMaps.size() ); iter++ ) { delete[] this->manipulatedMaps.at(iter); } }
2010 
2011  //================================================ Clear vectors
2012  this->enLevs.clear ( );
2013  this->trSigm.clear ( );
2014  this->rotFun.clear ( );
2015 
2016  //================================================ Delete symmetry axes memory
2017  if ( this->RecomSymAxes.size() > 0 )
2018  {
2019  for ( proshade_unsign iter = 0; iter < static_cast<proshade_unsign> ( this->RecomSymAxes.size() ); iter++ )
2020  {
2021  delete[] this->RecomSymAxes.at(iter);
2022  }
2023  this->RecomSymAxes.clear ( );
2024  }
2025 
2026  //================================================ Done
2027 
2028 }

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

3153 {
3154  //================================================ Done
3155  return ( this->allCSymAxes );
3156 
3157 }

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

3015 {
3016  //================================================ Return the value
3017  return ( this->enLevs );
3018 }

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

3294 {
3295  //================================================ Sanity check
3296  if ( this->eulerAngles.size() != 3 )
3297  {
3298  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" );
3299  return ( std::vector< proshade_double > ( ) );
3300  }
3301 
3302  //================================================ Return required value
3303  return ( this->eulerAngles );
3304 
3305 }

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

3168 {
3169  //================================================ Done
3170  return ( this->mapCOMShift );
3171 
3172 }

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

3249 {
3250  //================================================ Return the value
3251  return ( this->manipulatedMaps.at(strNo)[mapIndex] );
3252 }

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

3083 {
3084  //================================================ Return the value
3085  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
3086 }

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

3053 {
3054  //================================================ Return the value
3055  return ( this->noStructures );
3056 }

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

3073 {
3074  //================================================ Return the value
3075  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
3076 }

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

3316 {
3317  //================================================ Sanity check
3318  if ( this->eulerAngles.size() != 3 )
3319  {
3320  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" );
3321  return ( std::vector< proshade_double > ( ) );
3322  }
3323 
3324  //================================================ Obtain the optimal rotation matrix
3325  proshade_double* rotMat = new proshade_double[9];
3326  ProSHADE_internal_misc::checkMemoryAllocation ( rotMat, __FILE__, __LINE__, __func__ );
3327  ProSHADE_internal_maths::getRotationMatrixFromEulerZXZAngles ( this->eulerAngles.at(0), this->eulerAngles.at(1), this->eulerAngles.at(2), rotMat );
3328 
3329  //================================================ Copy to the output variable
3330  std::vector< proshade_double > ret;
3331  for ( proshade_unsign iter = 0; iter < 9; iter++ ) { ProSHADE_internal_misc::addToDoubleVector ( &ret, rotMat[iter] ); }
3332 
3333  //================================================ Release the memory
3334  delete[] rotMat;
3335 
3336  //================================================ Return required value
3337  return ( ret );
3338 
3339 }

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

3183 {
3184  //================================================ Sanity checks
3185  if ( noStructures <= strNo )
3186  {
3187  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
3188  return ( std::vector< proshade_signed > ( ) );
3189  }
3190 
3191  //================================================ Initialise local variables
3192  std::vector< proshade_signed > ret;
3193 
3194  //================================================ Input the axis data as strings
3195  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[0] );
3196  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[1] );
3197  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[2] );
3198  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[3] );
3199  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[4] );
3200  ProSHADE_internal_misc::addToSignedVector ( &ret, this->originalBounds.at( strNo )[5] );
3201 
3202  //================================================ Done
3203  return ( ret );
3204 }

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

3378 {
3379  //================================================ Sanity check
3380  if ( this->overlayTranslation.size() != 3 )
3381  {
3382  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" );
3383  return ( std::vector< proshade_double > ( ) );
3384  }
3385 
3386  //================================================ Return required value
3387  return ( this->overlayTranslation );
3388 
3389 }

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

3215 {
3216  //================================================ Sanity checks
3217  if ( noStructures <= strNo )
3218  {
3219  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested bounds for structure index which does not exist. Returning empty vector.", "WB00041" );
3220  return ( std::vector< proshade_signed > ( ) );
3221  }
3222 
3223  //================================================ Initialise local variables
3224  std::vector< proshade_signed > ret;
3225 
3226  //================================================ Input the axis data as strings
3227  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[0] );
3228  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[1] );
3229  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[2] );
3230  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[3] );
3231  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[4] );
3232  ProSHADE_internal_misc::addToSignedVector ( &ret, this->reboxedBounds.at( strNo )[5] );
3233 
3234  //================================================ Done
3235  return ( ret );
3236 }

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

3043 {
3044  //================================================ Return the value
3045  return ( this->rotFun );
3046 }

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

3098 {
3099  //================================================ Sanity checks
3100  if ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) <= axisNo )
3101  {
3102  ProSHADE_internal_messages::printWarningMessage ( this->verbose, "!!! ProSHADE WARNING !!! Requested symmetry index does not exist. Returning empty vector.", "WS00039" );
3103  return ( std::vector< std::string > ( ) );
3104  }
3105 
3106  //================================================ Initialise local variables
3107  std::vector< std::string > ret;
3108 
3109  //================================================ Input the axis data as strings
3110  std::stringstream ssHlp;
3111  ssHlp << this->RecomSymAxes.at(axisNo)[0];
3112  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3113  ssHlp.str ( "" );
3114 
3115  ssHlp << this->RecomSymAxes.at(axisNo)[1];
3116  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3117  ssHlp.str ( "" );
3118 
3119  ssHlp << this->RecomSymAxes.at(axisNo)[2];
3120  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3121  ssHlp.str ( "" );
3122 
3123  ssHlp << this->RecomSymAxes.at(axisNo)[3];
3124  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3125  ssHlp.str ( "" );
3126 
3127  ssHlp << this->RecomSymAxes.at(axisNo)[4];
3128  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3129  ssHlp.str ( "" );
3130 
3131  ssHlp << this->RecomSymAxes.at(axisNo)[5];
3132  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3133  ssHlp.str ( "" );
3134 
3135  ssHlp << this->RecomSymAxes.at(axisNo)[6];
3136  ProSHADE_internal_misc::addToStringVector ( &ret, ssHlp.str() );
3137  ssHlp.str ( "" );
3138 
3139  //================================================ Done
3140  return ( ret );
3141 
3142 }

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

2054 {
2055  //================================================ Return the value
2056  return ( this->symRecommFold );
2057 }

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

2040 {
2041  //================================================ Return the value
2042  return ( this->symRecommType );
2043 }

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

3029 {
3030  //================================================ Return the value
3031  return ( this->trSigm );
3032 }

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

3350 {
3351  //================================================ Sanity check
3352  if ( this->coordRotationCentre.size() != 3 )
3353  {
3354  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" );
3355  return ( std::vector< proshade_double > ( ) );
3356  }
3357 
3358  //================================================ Create return variable with negative values of the internal varariable
3359  std::vector < proshade_double > ret;
3360  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(0) );
3361  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(1) );
3362  ProSHADE_internal_misc::addToDoubleVector ( &ret, -this->coordRotationCentre.at(2) );
3363 
3364  //================================================ Return required value
3365  return ( ret );
3366 
3367 }

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 3062 of file ProSHADE.cpp.

3063 {
3064  //================================================ Return the value
3065  return ( this->verbose );
3066 }

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:609
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:1020
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:102
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:149
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:68
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:288