Class MarkushEnumerationPlugin

java.lang.Object
chemaxon.calculations.CalculatorPlugin
chemaxon.calculations.MarkushEnumerationPlugin
All Implemented Interfaces:
TaggedCalculator, Licensable

@PublicApi public class MarkushEnumerationPlugin extends CalculatorPlugin
Plugin class for enumerating Markush molecules.

Input: a Markush structure.
Output: the number of possible enumerations and the enumerated molecules.

Note: Enumeration does not consider R-Logic conditions.

API usage examples:

  • Sequential enumeration:
    
     // Create plugin
     MarkushEnumerationPlugin plugin = new MarkushEnumerationPlugin();
    
     // Set target molecule
     plugin.setMolecule(mol);
    
     // Run the calculation
     plugin.run();
    
     // 1. Get results one by one
     Molecule m = plugin.getNextStructure();
     while (m != null) {
         System.out.println(MolExporter.toFormat(m, "smiles"));
         // ...
         // Getting next enumerated molecule
         m = plugin.getNextStructure();
     }
    
     // OR
     // 2. Get results in an array
     long size = plugin.getStructureCount();
     if (size != -1 && size <= Integer.MAX_VALUE) {
         Molecule[] enumerated = plugin.getStructures();
         for (int i = 0; i < enumerated.length; i++) {
             System.out.println(MolExporter.toFormat(enumerated[i], "smiles"));
             // ...
         }
     }
     
  • Random enumeration:
    
     // Create plugin
     MarkushEnumerationPlugin plugin = new MarkushEnumerationPlugin();
    
     // Set random enumeration
     plugin.setRandomEnumeration();
    
     // Set the number of random structures to generate
     plugin.setMaxStructureCount(10);
    
     // Set target molecule
     plugin.setMolecule(mol);
    
     // Run the calculation
     plugin.run();
    
     for (int i = 0; i < 10; i++) {
         Molecule m = plugin.getNextStructure();
         System.out.println(MolExporter.toFormat(m, "smiles"));
         // ...
     }
     

For concurrent plugin example applications using Chemaxon's concurrent framework, refer to the Concurrent plugin examples.

Since:
Marvin 5.0.3
  • Field Details

    • FILTER_VALENCE

      public static final MolFilter FILTER_VALENCE
      Filter constant: valence filter. Set this filter in setFilter(MolFilter) in order to reject molecules with valence errors.
      Since:
      Marvin 5.1
      See Also:
    • COLORING_NONE

      public static final int COLORING_NONE
      Constant for no hit coloring.
      Since:
      Marvin 5.1
      See Also:
    • COLORING_SCAFFOLD

      public static final int COLORING_SCAFFOLD
      Constant for scaffold coloring.
      Since:
      Marvin 5.1
      See Also:
    • COLORING_RGROUPS

      public static final int COLORING_RGROUPS
      Constant for R-group coloring.
      Since:
      Marvin 5.1
      See Also:
    • COLORING_ALL

      public static final int COLORING_ALL
      Constant for setting all coloring options, currently scaffold and R-groups.
      Since:
      Marvin 5.1
      See Also:
  • Constructor Details

    • MarkushEnumerationPlugin

      public MarkushEnumerationPlugin()
      Constructor.
  • Method Details