Given a scaffold structure with attached R1, R2, ... nodes as query, RGroupDecomposition determines the possible R-group decompositions of given target molecule. A decomposition consists of the matching scaffold and the R1, R2, ... ligands with attachment points.
RGroupDecomposition includes methods to set the query and the target MolSearch. Each decomposition corresponds to a group hit, see findFirstGroup() and findNextGroup().
The search hit has to cover full fragments, that is, extra ligands not corresponding to some query R-atom are not allowed. If the query does not contain R-atoms then it is automatically modified: all implicit hydrogens are replaced by different R-atoms attached by any-bonds.
Since JChem 5.3, decompositions are returned in a dedicated Decomposition result object, see findFirstDecomposition() and findNextDecomposition().
Output in table form is returned in findLigandTable().
Since JChem 5.3, it is also possible to generate a Markush structure in form of an RgMolecule which covers a list of specified targets. The root structure is the specified scaffold (query) and R-group definitions are determined by the decompositions of the targets. This functionality is implemented in MarkushGenerator.
For a detailed description of specific search options, methods and API usage examples, refer to the RGroupDecomposition and MarkushGenerator class headers.
A list of API usage examples can be found in the RGroupDecomposition and MarkushGenerator class headers.