In a digital computer in which representations of specified reactant molecules and a core molecule have been stored, a computer implemented method for selecting, for all possible product molecules which could be created in a combinatorial synthesis from the reactant molecules and common core molecule, a subset of product molecules, comprising the following steps:
- a. characterizing all the reactant molecules with a molecular structural descriptor, validated as possessing a neighborhood property, appropriate to reactant molecules;
- b. heirarchically clustering the characterized reactant molecules until the intercluster distance substantially corresponds to the neighborhood distance of the validated molecular structural descriptor;
- c. selecting a reactant molecule from each cluster;
- d. combinatorially assembling the selected reactant molecules and core molecule into products which would be created in the chemical synthesis;
- e. selecting a product molecule for inclusion in the subset;
- f. using a molecular structural descriptor, validated as possessing a neighborhood property, appropriate to whole molecules, calculating the descriptor distance between all selected product molecules and all other product molecules;
- g. determining the shortest descriptor distance between each product molecule and all product molecules previously selected;
- h. selecting for inclusion in the subset the product molecule whose shortest descriptor distance from the previously selected molecules is the largest and is greater than the neighborhood distance of the descriptor;
- i. repeating steps f through h until the largest shortest difference between molecules is less than the neighborhood distance of the descriptor;
- and
- outputing a list of the selected product molecules and/or the reactant molecules from which the selected product molecules can be formed.