# OESliceEnsembleOptions¶

class OESliceEnsembleOptions


This class provides an interface to setup options required for reducing a molecule conformer ensemble, by removing duplicates and high energy conformers.

The OESliceEnsembleOptions allows multiple ways to set-up the desired settings for each parameter for slicing up an ensemble. There are three (3) main control parameters: EnergyWindow, RMSThreshold, and MaxConfs. The default usage is to use the same control settings for slicing all molecule ensembles. However, for each of the three parameters, there is also a possibility to set the parameter settings to be a variable based on the number of rotatable bonds in the molecule. The variable settings can be applied by using the range based API points.

Here we describe how to use the range based settings for MaxConfs, however, the same applies to EnergyWindow and RMSThreshold as well. A MaxConfs setting of 100,200,300 with SetMaxConfRange along with a value of 5 for the RangeIncrement set with SetRangeIncrement would use a MaxConfs value of 100 for molecule with number of rotatable bonds between 0-4, that of 200 for molecule with number of rotatable bonds between 5-9, and 300 for molecule with number of rotatable bonds of 10 or higher.

The OESliceEnsembleOptions class defines the following public methods:

## Constructors¶

OESliceEnsembleOptions()
OESliceEnsembleOptions(const OESliceEnsembleOptions &)


Default and copy constructors.

## operator=¶

OESliceEnsembleOptions &operator=(const OESliceEnsembleOptions &)


Assignment operator.

## GetEnergyWindow¶

double GetEnergyWindow() const
double GetEnergyWindow(const unsigned numRotors) const


See SetEnergyWindow method. The second variation of the method returns the value of the energy window that is in effect for a given molecule with specified number of rotors.

## GetEnergyRange¶

std::vector<double> GetEnergyRange() const


See SetEnergyRange method.

## GetMaxConfs¶

unsigned GetMaxConfs() const
unsigned GetMaxConfs(const unsigned numRotors) const


See SetMaxConfs method. The second variation of the method returns the value of maximum conformers that is in effect for a given molecule with specified number of rotors.

## GetMaxConfRange¶

std::vector<unsigned int> GetMaxConfRange() const


See SetMaxConfRange method.

## GetMaxTerminalHeavy¶

unsigned GetMaxTerminalHeavy() const


See SetMaxConfRange method.

## GetRangeIncrement¶

unsigned int GetRangeIncrement() const


See SetRangeIncrement method.

## GetRMSThreshold¶

double GetRMSThreshold() const
double GetRMSThreshold(const unsigned numRotors) const


See SetRMSThreshold method. The second variation of the method returns the value of RMS threshold that is in effect for a given molecule with specified number of rotors.

## GetRMSRange¶

std::vector<double> GetRMSRange() const


See SetRMSRange method.

## SetEnergyWindow¶

void SetEnergyWindow(const double)


Sets the maximum allowable energy difference between the lowest and the highest energy conformers, in units of kcal/mol. Default: 10.0 kcal/mol.

## SetEnergyRange¶

bool SetEnergyRange(const std::vector<double>&)
bool SetEnergyRange(const std::string&)


Sets the energy range that allows to define a varying EnergyWindow energy window in conjunction with the RangeIncrement. Defining the range overrides the singly defined energy window value. The string version of the overload expects a comma separated string.

## SetMaxConfs¶

void SetMaxConfs(const unsigned int)


Sets the maximum number of conformers to be kept. Default: 200.

## SetMaxConfRange¶

bool SetMaxConfRange(const std::vector<unsigned>&)
bool SetMaxConfRange(const std::string&);


Sets the maximum number of conformers range that allows to define a varying number of MaxConfs in conjunction with the RangeIncrement. Defining the range overrides the singly defined max confs value. The string version of the overload expects a comma separated string.

## SetMaxTerminalHeavy¶

void SetMaxTerminalHeavy(const unsigned int)


Sets the maximum number of terminal heavy atoms that should be allowed in calculating RMSD between conformers. If the number of terminal heavy atoms in the molecule exceeds the specified limit, all terminal heavy atoms are ignored in RMSD calculation. If the number is set to 0, this value is treated as not set. Default: 0.

## SetRangeIncrement¶

bool SetRangeIncrement(const unsigned)


Sets the number of rotatable bonds range to be used when the OESliceEnsembleOptions.SetEnergyRange, OESliceEnsembleOptions.SetRMSRange, and OESliceEnsembleOptions.SetMaxConfRange are defines in terms of ranges. Default: 5.

## SetRMSThreshold¶

bool SetRMSThreshold(const double)


Sets the RMS threshold (Root Mean Square Cartesian distance) below which two conformers are treated as duplicates. Default: 0.5.

## SetRMSRange¶

bool SetRMSRange(const std::vector<double>&)
bool SetRMSRange(const std::string&)


Sets the RMS range that allows to define a varying RMSThreshold in conjunction with the RangeIncrement. Defining the range overrides the singly defined RMS threshold value. The string version of the overload expects a comma separated string.