Splitting

The goal of SMARTS clustering is to find a SMARTS pattern that discriminates a group of SMARTS from another group. As such, we are interested in finding a SMARTS pattern which partitions a set of SMARTS patterns. Since partitioning is an expensive problem all by itself. We offer two ways to look for SMARTS clusters:

  1. Given a set of SMARTS, generate the partitions which minimize the number of SMARTS edits

  2. Given an explicit partition, find satisfactory SMARTS pattern that minimizes the number of partition edits

In the first case, called numerical search, we are interested in all of the “adjacent” SMARTS patterns and the partitions that they induce. In the second case, called analytic search, we are seeking a specific partitioning and want to know a SMARTS pattern that will descriminate between the two. Note that in both cases we allow a fuzzy result by trying to minimize the number of edits; the SMARTS edits in the first case and the partition edits in the second case.