OESystem::OEIterBase<OEChem::OEMolBase> * OEGetMolComplexComponents(const OEChem::OEMolBase &mol, const OESplitMolComplexOptions &opt=OESplitMolComplexOptions()) OESystem::OEIterBase<OEChem::OEMolBase> * OEGetMolComplexComponents(const OEChem::OEMolBase &mol, const OESplitMolComplexOptions &opt, const OESystem::OEUnaryPredicate<OESystem::OERoleSet> &filter)
Returns an iterator of connected components within the specified OEMolBase. The optional OESplitMolComplexOptions object controls this process. If an explicit filter is not provided, the filter returned by the OESplitMolComplexOptions method GetCombinedFilter will be used.
Any molecules returned in the iterator have been given titles. Protein chains are given a shortened version of the input title combined with the chain ID. Small molecule titles are residue names. Molecules with more than one residue are combined with a -. A two residue molecule might have the title XYZ-ABC. Output molecules also have one or more SD Tags to describe the functional roles.
The input molecule should contain PDB residue information such as residue name, which is used during the classification process, either from a PDB format file or through residue perception. Molecular complexes read from files in formats that lack this information (for example SDF) may be split inappropriately unless residues are perceived after input.