This class provides an interface to setup options required for constraining a fragment of the molecules during conformational search.
There are multiple ways to define the substructure for defining the constraints.
- The first is to provide a substructure query using the command SetFixSubSearch. If the input query pattern is 3D the corresponding substructure of the target is fixed to the query coordinates. For a non-3D query, the mapped substructure of an input 3D target is fixed, provided that SetIncludeInput is set to true.
- The second method is to pass in a 3D structure using the command SetFixMol. The SetFixDeleteH command can be used to control whether hydrogens should be retained or discarded from the FixMol. The corresponding substructure of the target has the atom coordinates fixed to those from the FixMol.
- The third method is to provide a SMARTS pattern using the command SetFixSmarts. The SMARTS pattern is matched against the input molecule to identify a substructure, provided that the input molecule is 3D and that SetIncludeInput is set to true. The corresponding substructure of the target is fixed during the conformer generation.
- The fourth method is to provide both a FixMol using the command SetFixMol, and a SMARTS string using the command SetFixSmarts. In this case, the SMARTS pattern is matched against the FixMol structure to identify a substructure of the FixMol. The corresponding substructure of the target is fixed to the coordinates of the FixMol substructure during conformer generation.
- The final method is to provide an atom predicate using the command SetFixPredicate which is used to identify target atoms to be fixed.
The unique match flag defined using SetFixUniqueMatch applies to all substructure matches performed, either during creation of molecule fragments or when applying the actual constraints.
The MaxMatch defines how many of the matches found during constraint application should be applied, and can be set using the command SetFixMaxMatch. If the constraining fragment substructure appears twice in the target molecule and the MaxMatch is set to 2 or more, the molecule would be constrained to the substructure coordinates twice for each of the generated conformers and could result in twice the number of conformers compared to setting this value to 1.
In all cases the constraints are evaluated by the proximity between the initial generated structure of the molecule and the coordinates of the constraining substructure. The precision of the proximity evaluation can be controlled by an RMS value set using SetFixRMS.
- The OEConfFixOptions class defines the following public methods:
- GetAtomExpr and SetAtomExpr
- GetBondExpr and SetBondExpr
- GetFixDeleteH and SetFixDeleteH
- GetFixMaxMatch and SetFixMaxMatch
- GetFixMol and SetFixMol
- GetFixPredicate and SetFixPredicate
- GetFixRMS and SetFixRMS
- GetFixSmarts and SetFixSmarts
- GetFixSubSearch and SetFixSubSearch
- GetFixUniqueMatch and SetFixUniqueMatch
OEConfFixOptions() OEConfFixOptions(const OEConfFixOptions &)
Default and copy constructors.
OEConfFixOptions &operator=(const OEConfFixOptions &)
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase>* GetFixPredicate() const
See SetFixPredicate method.
const OEChem::OESubSearch &GetFixSubSearch() const
Returns the substructure search (OESubSearch) for fixed fragments.
bool HasFixPattern() const
Method checks if a criterion for fixing a portion of the molecule, during conformation search, is currently set.
bool SetAtomExpr(const unsigned)
Sets the atom expression to be used for substructure initialization from a molecule fragment. Default: OEExprOpts.DefaultAtoms
- OEExprOpts namespace
bool SetBondExpr(const unsigned)
Sets the bond expression to be used for substructure initialization from a molecule fragment. Default: OEExprOpts.DefaultBonds
- OEExprOpts namespace
bool SetFixDeleteH(const bool)
Sets whether hydrogens should be stripped from the fix molecule before it is used to match structures. Default: True.
bool SetFixMaxMatch(const unsigned int)
Sets the maximum number of substructure search matches to be used for constraining molecule fragments. Default: 1.
bool SetFixMol(const OEChem::OEMolBase&) bool SetFixMol(OEChem::oemolistream& fstream)
Uses the 3D coordinates of the provided molecule to fix the corresponding substructure in the target molecule during conformation generation. For the second overload, only the first molecule from the input oemolistream is used.
bool SetFixPredicate(const OESystem::OEUnaryPredicate<OEChem::OEAtomBase>&)
Uses the atom predicate to define which atoms should be kept fixed during conformation search.
bool SetFixRMS(const double)
Sets the RMS distance (Root Mean Square (RMS) Cartesian) below which two atom positions are treated as identical. Default: 0.15.
bool SetFixSmarts(const std::string&)
Uses the SMARTS pattern to define which portion of the molecule should be kept fixed during conformation search.
bool SetFixSubSearch(const OEChem::OESubSearch&)
Uses the substructure search (OESubSearch) to define which portion of the molecule should be kept fixed during conformation search.
bool SetFixUniqueMatch(const bool)
Sets whether only the unique substructure matches should be used for coordinate replacement. Default: True.