OEUpdateDesignUnit¶
Attention
This API is currently available in C++ and Python.
bool OEUpdateDesignUnit(OEDesignUnit &du,
const OEChem::OEMolBase &mol,
const unsigned componentId, const bool retainStyle=false)
This function updates an existing OEDesignUnit
object du
by setting the component given by componentId
with the input molecule mol
, the input molecule must be valid (not empty).
The component ID should be specified from constants in the
OEDesignUnitComponents
namespace.
The optional parameter retainStyle
retains the style on the input molecule,
otherwise undergoes standard OEDesignUnit object styling (default).
If the update function is called with an empty molecule the function returns false.
In the event the update operation fails due to the inability to update a specific component,
the function returns false, and the input du
is cleared.
Note
List components, co-factors, excipients etc. are updated by appending to the list. To modify one of them, we recommend getting all the molecule components from a list (e.g. co-facors), clearing that component in the designunit and adding the co-factors back where one or more have been modified.
Warning
Updating the content of a design unit invalidates the OEReceptor object stored on the design unit and it will be removed as part of the update.
See also
OEDesignUnit class
OEDesignUnitComponents
namespaceOESubsetDesignUnit
function
Examples
The example below demonstrate how to use
OEUpdateDesignUnit
to
update an existing OEDesignUnit object.
if(!OEUpdateDesignUnit(du, lig, OEDesignUnitComponents::Ligand))
OEThrow.Fatal("Error: Could not add the ligand to the OEDesignUnit.");