This API is currently available in C++ and Python.

bool OEMakeDesignUnit(OEBio::OEDesignUnit &du,
                      const OEChem::OEMolBase &nonLigandComplex,
                      const OEChem::OEMolBase &ligand,
                      const OESpruce::OEMakeDesignUnitOptions &opts=OESpruce::OEMakeDesignUnitOptions())

Constructs and populates an input OEDesignUnit object (du) from the input, a nonLigandComplex (typically a protein or DNA) and a ligand. An options OEMakeDesignUnitOptions object can be passed in to control the behavior during design unit preparation.


Note: We strongly recommend running OESpruceFilter for standardization and filtering prior to running the design unit preparation.


The function will construct an OEDesignUnit (du), where the system’s molecules have been binned into categories given by the OEDesignUnitComponents namespace. Although an OEDesignUnitComponents.Metals category exists, depending on the proximity of the metal to the design unit’s binding site, the metal may be contained in either the OEDesignUnitComponents.Cofactors category if it falls within a cutoff to the binding site, or in the OEDesignUnitComponents.Metals category if not.