Class Pattern

    • Constructor Detail

      • Pattern

        public Pattern()
    • Method Detail

      • match

        public abstract int[] match​(IAtomContainer target)
        Find a matching of this pattern in the target. If no such order exist an empty mapping is returned. Depending on the implementation stereochemistry may be checked (recommended).
        
         Pattern        pattern = ...; // create pattern
         for (IAtomContainer m : ms) {
             int[] mapping = pattern.match(m);
             if (mapping.length > 0) {
                 // found mapping!
             }
         }
         
        Parameters:
        target - the container to search for the pattern in
        Returns:
        the mapping from the pattern to the target or an empty array
      • matches

        public boolean matches​(IAtomContainer target)
        Determine if there is a mapping of this pattern in the target. Depending on the implementation stereochemistry may be checked (recommended).
         Pattern        pattern = ...; // create pattern
         for (IAtomContainer m : ms) {
             if (pattern.matches(m)) {
                 // found mapping!
             }
         }
         
        Parameters:
        target - the container to search for the pattern in
        Returns:
        the mapping from the pattern to the target
      • matches

        public final boolean matches​(IReaction target)
        Determine if there is a mapping of this pattern in the target reaction.
         Pattern        pattern = ...; // create pattern
         for (IReaction r : rs) {
             if (pattern.matches(r)) {
                 // found mapping!
             }
         }
         
        Parameters:
        target - the reaction to search for the pattern in
        Returns:
        the mapping from the pattern to the target
      • matchAll

        public abstract Mappings matchAll​(IAtomContainer target)
        Find all mappings of this pattern in the target. Stereochemistry should not be checked to allow filtering with Mappings.stereochemistry().
         Pattern pattern = Pattern.findSubstructure(query);
         for (IAtomContainer m : ms) {
             for (int[] mapping : pattern.matchAll(m)) {
                 // found mapping
             }
         }
         
        Using the fluent interface (see Mappings) we can search and manipulate the mappings. Here's an example of finding the first 5 mappings and creating an array. If the mapper is lazy other states are simply not explored.
         // find only the first 5 mappings and store them in an array
         Pattern pattern  = Pattern.findSubstructure(query);
         int[][] mappings = pattern.matchAll(target)
                                   .limit(5)
                                   .toArray();
         
        Parameters:
        target - the container to search for the pattern in
        Returns:
        the mapping from the pattern to the target
        See Also:
        Mappings
      • findSubstructure

        public static Pattern findSubstructure​(IAtomContainer query)
        Create a pattern which can be used to find molecules which contain the query structure. The default structure search implementation is VentoFoggia.
        Parameters:
        query - the substructure to find
        Returns:
        a pattern for finding the query
        See Also:
        VentoFoggia
      • findIdentical

        public static Pattern findIdentical​(IAtomContainer query)
        Create a pattern which can be used to find molecules which are the same as the query structure. The default structure search implementation is VentoFoggia.
        Parameters:
        query - the substructure to find
        Returns:
        a pattern for finding the query
        See Also:
        VentoFoggia