OESplitBioUnitToComponents

Attention

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

bool OESplitBioUnitToComponents(OEBio::OEDesignUnit& du,
                                const OEChem::OEMolBase& bioUnit,
                                OEChem::OEMolBase& packingMol,
                                const OESpruce::OEDesignUnitSplitOptions& opts)

Splits the biological unit molecule bioUnit into the component categories of a OEDesignUnit (protein, ligand, solvent, metals, etc.) using the splitting criteria defined in OEDesignUnitSplitOptions opts. The resulting components are stored in du, and any packing residues are placed in packingMol. Returns true on success.

bool OESplitBioUnitToComponents(OEBio::OEDesignUnit& du,
                                const OEChem::OEMolBase& bioUnit,
                                OEChem::OEMolBase& packingMol,
                                const OESpruce::OEDesignUnitSplitOptions& opts,
                                const std::vector<std::string>& ligandNames)

As the first overload, but restricts ligand detection to residues whose three-letter codes appear in ligandNames. This allows explicit control over which heterogens are classified as ligands rather than cofactors or excipients.

bool OESplitBioUnitToComponents(OEBio::OEDesignUnit& du,
                                const OEChem::OEMolBase& bioUnit,
                                OEChem::OEMolBase& packingMol,
                                const OESpruce::OEDesignUnitSplitOptions& opts,
                                const std::map<unsigned, std::vector<std::string>>& componentNames)

As the first overload, but accepts a map of OEDesignUnitComponents component IDs to lists of three-letter residue codes, giving fine-grained control over which residues are assigned to each component category.

The input bioUnit must have 3D coordinates assigned.