Class MarkushGenerator


  • @PublicAPI
    public class MarkushGenerator
    extends Object

    Generates RgMolecule output that covers the specified targets with the specified scaffold. The scaffold is a Molecule with undefined R-atoms. The root structure of the generated RgMolecule is this scaffold, the R-group definitions are added so that the target space would be fully covered by the set of the enumerated structures (and typically contain a lot of additional structures as well).

    The implementation uses RGroupDecomposition to find the R-group definitions.

    API usage examples:

    query: the query molecule
    targets: the target molecules

     MarkushGenerator mg = new MarkushGenerator();
     mg.setQuery(query);
     mg.setTargets(targets);
    
     // generate the RgMolecule that covers the targets
     RgMolecule rgmol = mg.generate();
    
     // get the target array indexes of the targets that did not match the query
     int[] skipped = mg.getSkippedTargetIndexes();
     
    Since:
    JChem 5.3
    See Also:
    RGroupDecomposition, Decomposition
    • Constructor Detail

      • MarkushGenerator

        public MarkushGenerator()
        Constructor.
    • Method Detail

      • setSearchOptions

        public void setSearchOptions​(SearchOptions options)
        Copies all search parameters from options.
        Parameters:
        options - search options to copy
        See Also:
        getSearchOptions()
      • getSearchOptions

        public MolSearchOptions getSearchOptions()
        Returns the search options. Use this object to set the search options of RGroupDecomposition directly (e.g.: getSearchOptions().setExactBondMatching(true);).
        Returns:
        the search options
      • setStandardizer

        public void setStandardizer​(Standardizer standardizer)

        Sets standardizer object of this MolSearch class, to be used for the query and target molecules, Chemical Terms configuration and re-standardization of query tautomers at tautomer searching.

        Default is aromatization only.

        Parameters:
        standardizer - the standardizer, null for aromatization only
        Since:
        JChem 5.12
      • getQuery

        public Molecule getQuery()
        Returns the query.
        Returns:
        the query
      • setTargets

        public void setTargets​(Molecule[] targets)
        Sets the targets. The generated RgMolecule will cover these targets by its enumerations.
        Parameters:
        targets - the targets
      • getTargets

        public Molecule[] getTargets()
        Returns the targets.
        Returns:
        the targets
      • getSkippedTargetIndexes

        public int[] getSkippedTargetIndexes()
        Returns the target array indexes of targets that have been skipped in the last RgMolecule generation in generate().
        Returns:
        the target array indexes of targets skipped in the last generate(), or null if called before generate()