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
SetIncludeInputis set to true.
The second method is to pass in a 3D structure using the command
SetFixDeleteHcommand 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
SetIncludeInputis 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
SetFixPredicatewhich is used to identify target atoms to be fixed.
The unique match flag defined using
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
OEConfFixOptionsclass defines the following public methods:
OEConfFixOptions() OEConfFixOptions(const OEConfFixOptions &)
Default and copy constructors.
OEConfFixOptions &operator=(const OEConfFixOptions &)
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase>* GetFixPredicate() const
const OEChem::OESubSearch &GetFixSubSearch() const
Returns the substructure search (
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.
bool SetBondExpr(const unsigned)
Sets the bond expression to be used for substructure initialization
from a molecule fragment.
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.