ProSHADE  0.7.6.6 (JUL 2022)
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 1900 of file ProSHADE.cpp.

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

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

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

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

3156 {
3157  //================================================ Done
3158  return ( this->allCSymAxes );
3159 
3160 }

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

3018 {
3019  //================================================ Return the value
3020  return ( this->enLevs );
3021 }

◆ 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 (ZYZ convention) which lead to the globally best overlay correlation.

Definition at line 3295 of file ProSHADE.cpp.

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

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

3171 {
3172  //================================================ Done
3173  return ( this->mapCOMShift );
3174 
3175 }

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

3252 {
3253  //================================================ Return the value
3254  return ( this->manipulatedMaps.at(strNo)[mapIndex] );
3255 }

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

3086 {
3087  //================================================ Return the value
3088  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
3089 }

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

3056 {
3057  //================================================ Return the value
3058  return ( this->noStructures );
3059 }

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

3076 {
3077  //================================================ Return the value
3078  return ( static_cast<proshade_unsign> ( this->RecomSymAxes.size() ) );
3079 }

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

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

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

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

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

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

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

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

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

3046 {
3047  //================================================ Return the value
3048  return ( this->rotFun );
3049 }

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

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

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

2049 {
2050  //================================================ Return the value
2051  return ( this->symRecommFold );
2052 }

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

2035 {
2036  //================================================ Return the value
2037  return ( this->symRecommType );
2038 }

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

3032 {
3033  //================================================ Return the value
3034  return ( this->trSigm );
3035 }

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

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

◆ getVerbose()

proshade_signed ProSHADE_run::getVerbose ( void  )

This function returns the verbose value.

Parameters
[in]verboseHow loud the run should be?

Definition at line 3065 of file ProSHADE.cpp.

3066 {
3067  //================================================ Return the value
3068  return ( this->verbose );
3069 }

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:632
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_internal_maths::getRotationMatrixFromEulerZYZAngles
void getRotationMatrixFromEulerZYZAngles(proshade_double eulerAlpha, proshade_double eulerBeta, proshade_double eulerGamma, proshade_double *matrix)
Function to find the rotation matrix from Euler angles (ZYZ convention).
Definition: ProSHADE_maths.cpp:1019
ProSHADE_exception::get_info
virtual std::string get_info(void)
This function returns the exception description.
Definition: ProSHADE_exceptions.cpp:53
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:152
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::SymmetryDetectionTask
void SymmetryDetectionTask(ProSHADE_settings *settings, std::vector< proshade_double > *mapCOMShift, std::string *symT, proshade_unsign *symF, std::vector< proshade_double * > *symA, std::vector< std::vector< proshade_double > > *allCs)
The symmetry detection task driver function.
Definition: ProSHADE_tasks.cpp:290
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:73
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