Class McsSearchOptions

java.lang.Object
com.chemaxon.search.mcs.McsSearchOptions

@PublicApi public final class McsSearchOptions extends Object
Options class for MaxCommonSubstructure (MCS) search. Instances of this class are immutable, they can be created using the McsSearchOptions.Builder nested class. For example,
 McsSearchOptions searchOpts = new McsSearchOptions.Builder().chargeMatching(true).build();
 

There are various options for specifying when the atoms and bonds of the two molecules can be matched with each other. By default, only atom and bond types are considered, but other properties can also be taken into account optionally (e.g. charge, isotope, radical).

MCS algorithms can search for connected and disconnected common substructures as well. The latter one is the default, which means that the common substructures could consist of more than one fragment. A minimum required size can be specified for these fragments, but the largest fragment is kept regardless of the specified minimum size.

  • Field Details

  • Method Details

    • getDefault

      public static McsSearchOptions getDefault()
      Returns the default search options object. It is the same as new McsSearchOptions.Builder().build(), but it does not create a new object, it returns the same immutable McsSearchOptions instance for each call.
      Returns:
      the default search options
    • isAtomTypeMatching

      public boolean isAtomTypeMatching()
      Returns whether atom types are considered in search. See McsSearchOptions.Builder.atomTypeMatching(boolean).
      Returns:
      true if atoms with different atom types are considered different
    • isBondTypeMatching

      public boolean isBondTypeMatching()
      Returns whether bond types are considered in search. See McsSearchOptions.Builder.bondTypeMatching(boolean).
      Returns:
      true if bonds with different bond types are considered different
    • isChargeMatching

      public boolean isChargeMatching()
      Returns whether formal charges are considered in search. See McsSearchOptions.Builder.chargeMatching(boolean).
      Returns:
      true if atoms with different charges are considered different
    • isIsotopeMatching

      public boolean isIsotopeMatching()
      Returns whether isotopes are considered in search. See McsSearchOptions.Builder.isotopeMatching(boolean).
      Returns:
      true if atoms with different mass numbers are considered different
    • isRadicalMatching

      public boolean isRadicalMatching()
      Returns whether radicals are considered in search. See McsSearchOptions.Builder.radicalMatching(boolean).
      Returns:
      true if atoms with different radicals are considered different
    • isAtomMapMatching

      public boolean isAtomMapMatching()
      Returns whether atom map numbers are considered in search. See McsSearchOptions.Builder.atomMapMatching(boolean).
      Returns:
      true if atoms with different atom map numbers are considered different
    • isExactQueryAtomMatching

      public boolean isExactQueryAtomMatching()
      Returns whether query atoms are matched only to query atoms of exactly the same type. See McsSearchOptions.Builder.exactQueryAtomMatching(boolean).
      Returns:
      true if query atoms match only the same query atoms
    • isExactQueryBondMatching

      public boolean isExactQueryBondMatching()
      Returns whether query bonds are matched only to query bonds of exactly the same type. See McsSearchOptions.Builder.exactQueryBondMatching(boolean).
      Returns:
      true if query bonds match only the same query bonds
    • getRingHandlingMode

      public RingHandlingMode getRingHandlingMode()
      Returns the ring handling mode.
      Returns:
      the ring handling mode (not null)
    • getMaxConsideredRingSize

      public int getMaxConsideredRingSize()
      Returns the maximum size of rings considered during search for the specified ring handling mode.
      Returns:
      the maximum considered ring size
      See Also:
    • isConnectedMode

      public boolean isConnectedMode()
      Returns whether the common substructures should be connected or they can consist of multiple fragments. See McsSearchOptions.Builder.connectedMode(boolean).
      Returns:
      true if the search is for a connected common substructure
    • getMinFragmentSize

      public int getMinFragmentSize()
      Returns the minimum required size of the fragments of the common substructures. Fragments having less bonds than this limit are ignored, except for one largest fragment found. See McsSearchOptions.Builder.minFragmentSize(int).
      Returns:
      minimum required bond count in additional fragments (except for the largest one)
    • isOrderSensitiveSearch

      public boolean isOrderSensitiveSearch()
      Returns whether search is sensitive to the order of the matched atoms and bonds when searching for multiple hits. See McsSearchOptions.Builder.orderSensitive(boolean).
      Returns:
      true if the search is order-sensitive
    • getCustomMatching

      public Optional<McsCustomMatcherFactory> getCustomMatching()
      Returns the factory that is used to create custom matcher (if specified). See McsSearchOptions.Builder.customMatching(McsCustomMatcherFactory).
      Returns:
      the optional custom matcher factory