This API is currently available in C++ and Python.
bool OESubsetDesignUnit(OEDesignUnit &du, const OEDesignUnit &refDu, const unsigned componentMask, const OESystem::OEUnaryPredicate<OEChem::OEAtomBase>& pred=OEChem::OEIsTrueAtom())
This function generates a fully-functional
OEDesignUnit object (
du) as subset of another
refDu) object. An additional bit mask
componentMask) is required to specify which components should
be extracted as the subset. The bit mask should be specified from
constants in the
The optional predicate can be used to subset some of the components
in the specified bit mask. The predicate does not have to be complete,
e.g. two water molecules can be specified to subset the solvent category,
but that will not subset the protein component also included in that mask.
In essence the predicate is checked to see if it matches part of a design unit
component and only in this case does it take effect.
If the design unit contains a receptor it will persist in the subset, except if the subset action removes a component that was part of receptor generation mask, see