A SYSTEM FOR THE CLASSIFICATION AND GENERATION OF CHEMICAL COMPOUNDS

Abstract: The present invention discloses a method for classifying a library of chemical compounds and generating new chemical compounds to improve the diversity of the library. More particularly, the present invention creates an extended ring structure classification system, assigns chemical compounds from a library to categories within the classification system, recognizes empty categories, and generates new chemical structures to fill the empty categories in order to improve the range of structures represented by the library.

Description: A SYSTEM FOR THE CLASSIFICATION AND GENERATION OF CHEMICAL COMPOUNDS RELATED APPLICATIONS This is a continuation-in-part of U.S. application no. 09/019,175, filed February 5, 1998. FIELD OF THE INVENTION The present invention relates generally to a method for classifying a library of chemical compounds and for generating new chemical structures. More particularly, the present invention creates a ring structure classification system, assigns chemical compounds from a library to categories within the classification system, recognizes empty categories, and generates new chemical structures to fill the empty categories in order to improve the range of structures represented by the library. BACKGROUND Conventional methods for creating chemical compounds with desired properties and activities identify lead compounds, create variants of the lead compounds and evaluate the variant compounds with respect to the desired properties and activities. Conventional methods search existing chemical compound libraries and utilize a combination of empirical science and chemical intuition to identify lead compounds. Conventional methods for creating chemical compounds have a fundamental limitation because of their dependency on existing chemical compound libraries for the identification of lead compounds. First, the chemical library may not have compounds with a wide range of different structures. Second the chemical library may contain many compounds with a similar structure which increases the difficulty associated with managing the information in the chemical libraries to identify lead compounds. Accordingly, the utility of the conventional methods for creating chemical compounds is limited by the amount of diversity in the existing chemical libraries. Conventional methods for creating chemical compounds have a further disadvantage because of their dependency on chemical intuition to identify lead compounds from existing chemical compound libraries. The Chemical Abstracts registry file exceeds fifteen million compounds. The large number of chemical compounds limits the utility of methods which rely on an individual's chemical intuition to screen the chemical compound libraries by manually processing a large amount of unorganized data to identify lead compounds. "Chemical intuition, at least to date, has not proven to be a particularly good source of lead compounds for the drug discovery process". See Rudy M. Baum, "Combinatorial Approaches Provide Fresh Leads for Medicinal Chemistry", (C&EN, Feb. 7, 1994, pp. 20-26) . Research in combinatorial chemistry has attempted to address some of the limitations associated with the conventional methods for creating chemical compounds. Typical approaches in combinatorial chemistry form a library of chemical compounds by combining a set of chemical building blocks in every possible way for a given compound length. However, the enormous number of possible combinations limits the feasibility of these approaches. U.S. Patent 5,463,564 ("the '564 Patent") discloses an enhanced combinatorial chemistry system which selectively combines chemical building blocks in accordance with desired physical, chemical, and bioactive properties instead of generating every possible combination. Specifically, the '564 patent discloses a chemical synthesis system to create a directed diversity chemical library by selectively combining a number of building blocks such as reagents in accordance with robotic synthesis instructions which are determined from the desired physical, chemical, and bioactive properties. After . . . . creating an initial chemical library, the system analyzes the compounds in the directed diversity library, constructs structure-activity and structure-property models and generates new robotic synthesis instructions, and generates a modified directed diversity chemical library. This system repeats this procedure in an iterative fashion until the properties of the chemical compounds in the library match the desired properties . Additional research has disclosed techniques to analyze existing libraries of chemical compounds. One exemplary system uses shape description methods to analyze a database of commercially available drugs and to prepare a list of common drug shapes. See Guy . Bemis and Mark A. Murcko, J., "The Properties of Known Drugs. 1. Molecular Frameworks", Med. Chem. 1996, 39, 2887-2893. This system uses a molecular framework hierarchical description comprising ring systems, linkers and side chain atoms to classify molecules. The system has a number of uses. First, drug discovery methods can use this classification scheme to identify well represented frameworks . Next , combinatorial chemistry methods can use the linkers and ring systems identified by this classification scheme in the automated generation of chemical compound libraries. Finally, this classification scheme evaluates particular libraries of chemical compounds by comparing the molecular frameworks of the chemical compounds to the molecular frameworks of known drugs . c While previous research in combinatorial chemistry and the analysis of chemical libraries have made improvements over conventional methods for the creation of chemical compounds, there remains a need for a system which efficiently classifies chemical compounds from a library according to their structure, identifies the structures of the chemical compounds 0 . . which are missing from the library, and generates the missing chemical structures in order to improve the range of structures represented by the library. SUMMARY OF THE INVENTION In general, it is an object of the present invention to provide a classification system to efficiently classify the chemical compounds in a library and to subsequently identify the structures which are missing from the library. 0 It is a further general object of the present invention to generate the missing chemical structures to improve the range of structures represented by the library. It is a object of the present invention to achieve the general objectives by defining a method for classifying a molecule having a plurality of atoms, bonds and rings comprising the steps of : constructing a graph representation for the molecule comprising a plurality of vertices and edges corresponding to the plurality of atoms and bonds of the molecule, said graph representation having a plurality of simple cycles corresponding to the plurality of rings of the molecule,- determining the lengths of a designated number of the longest of said plurality of simple cycles in said graph representation; and representing said longest simple cycles with a table of entries, each of said entries having a first field and a corresponding second field wherein said first field contains said longest simple cycle lengths and said second field contains the number of said simple cycles having said corresponding longest simple cycle length. It is also an object of the present invention to achieve the general objectives by defining a method for achieving diversity in a library of molecules comprising the steps of: assigning each molecule in the library to one of a plurality of entries using the method of claim 1; and generating a plurality of new chemical structures to fill empty ones of said plurality of entries. It is a further object of the present invention to achieve the general objectives by further defining the method for achieving diversity in a library of molecules wherein the method further comprising the steps of : identifying isomorphic chemical structures in said plurality of entries; and removing said isomorphic chemical structures. It is a further object of the present invention to achieve the general objectives by further defining the method for achieving diversity in a library of molecules wherein the method further comprising the steps of: identifying unrealistic chemical structures in said plurality of entries; and removing said unrealistic chemical structures. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 provides an overview of the classification method of the present invention. Fig. 2 provides a partial illustration of an exemplary classification system Fig. 3 displays the number of categories in the classification system as a function of the designated length of the sequence of non-negative integers. Fig. 4 illustrates the relationship between small molecules and big molecules or receptors . Fig. 5 illustrates the context of the classification system of the present invention. Fig. 6 presents a flowchart of a method for assigning molecules to the classification system. Fig. 7 presents a flowchart to create an undirected graph G [V, E, δ] for a molecule. Fig. 8a presents a flowchart of a method to find a designated number of the longest simple cycles in the undirected graph G [V, E, δ] . Fig. 8b illustrates the operation of the method defined by the flowchart of Fig. 8a. Fig. 9 presents a flowchart of a second method to find a designated number of the longest simple cycles in the undirected graph G [V, E, δ] . Figs. 10a and 10b present a flowchart of a third method to find a designated number of the longest simple cycles in the undirected graph G[V, E, δ] . Figs. 11a - lie illustrate the operation of the method defined by the flowchart of Figs 10a and 10b. Figs. 12a - 12e display the results which would be obtained from executing the method for assigning molecules in a classification system. Fig. 13 displays the fingerprints of four chemical compound libraries with a one-dimensional analysis. Fig. 14 displays the fingerprints of the same four chemical libraries with a three-dimensional analysis. Fig. 15 shows the possible category populations and the actual category populations as a function of the ring length for a chemical library. Fig. 16a presents a flowchart of a method to find a designated number of the longest simple cycles in the undirected graph G[V, E, δ] for an extended ring descriptor classification system. Fig. 16b illustrates the operation of the method defined by the flowchart of Fig. 16a. Fig. 17 presents an undirected graph G [V, E, δ] to illustrate the effect of the definition of the rings on the resolution of the classification system. Fig. 18 provides an overview of the generation method of the present invention. Fig. 19 presents a flowchart of a method which removes isomorphic undirected graphs G' [V' , E' , δ'] from the set of generated undirected graphs G' [V , E' , δ'] representing chemical structures . Fig. 20 presents a sample undirected graph G' [V' , E' , δ'] to illustrate the derivation of a roentgen descriptor 1915 for a vertex v' 0 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Fig. 1 provides an overview of the classification method of the present invention. In step 100, the method defines a classification system. This classification system comprises a plurality of categories. In step 110, the method inputs a library of molecules and classifies the library of molecules. To classify the library of molecules, step 120 assigns each molecule in the library to a category in the classification system. Step 120 outputs a completed classification system. The completed classification system identifies the molecules which were assigned to each category of the system. Step 120 inputs the completed classification system and identifies the structures of the molecules which are missing from the library of molecules. Step 120 identifies the structures of the absent molecules by locating empty categories m the completed classification system. Step 120 outputs a list of empty categories . The classification system identifies each of its categories by a sequence of non-negative integers having a designated length. The first integer in the sequence c represents the length of the longest ring in the molecule. Each successive integer in the sequence represents the length of successively shorter constituent rings in the molecule. Fig. 2 provides a partial illustration of an exemplary classification system 200. The exemplary classification 0 system 200 has a longest possible ring length of twenty-seven. The sequence of non-negative integers of the exemplary classification system 200 has a designated length of two. The sequence of non-negative integers, "27, 26" identifies the first category 210 of the exemplary 5 classification system 200. Accordingly, the first category 210 will contain molecules having a longest ring length of 27 and a next longest ring length of 26. Similarly, the second category 220 of the exemplary classification system 200 will contain molecules having a longest ring length of 27 and a o next longest ring length of 25. Likewise, the final category 230 shown in the exemplary classification system 200 will contain molecules having a longest ring length of 3 and a next longest ring length of 0. In other words, the final category 230 will contain molecules having only rings with a length of 3. 5 In the preferred embodiment, the designated length of the sequence of non-negative integers of the classification system ranges from three to seven and the maximum possible ring length supported by the classification system is about twenty- 0 seven. In a series of alternate embodiments, the designated length of the sequence of non-negative integers of the classification system ranges from one to twenty-five. Further, as indicated in the discussion below, the classification system has features which enable support for larger maximum possible ring lengths. Fig. 3 displays the number of categories in the classification system as a function of the designated length of the sequence of non-negative integers. For example, the classification system will have twenty-five categories with a designated length of the sequence of non-negative integers of one. Similarly, the classification system will have fifteen . . . thousand, two hundred seventy five categories with a designated length of the sequence of non-negative integers of four. The designated length of the sequence of non-negative integers determines the resolution of the classification system. Specifically, the categories of a classification system having a smaller designated length of the sequence of non-negative integers will hold more molecules than the categories of a classification system having a larger designated sequence length. Accordingly, the resolution of the classification system can be adjusted by changing the designated length of the sequence of non-negative integers. Fig. 4 and Fig. 5 illustrate the utility and context of the classification system of the present invention. Fig. 4 shows the relationship between small molecules 420-495 and large molecules or receptors 410. Chemical compound libraries hold small molecules 420 - 495. To have utility, a small molecule (420 - 495) must be compatible with a large molecule or receptor 410. As shown in Fig 4., the small molecule 490 is compatible with the large molecule 410. A chemical compound library should contain compounds with a wide range of structures to increase the probability that a member of the chemical compound library will be compatible with a large molecule or receptor 410. In other words, a chemical compound library should contain molecules having a diverse range of structures . It is useful to measure diversity with molecular structure because molecules with different structures will be compatible with different large molecules or receptors. Accordingly, the classification system measures diversity among the chemical compounds in a library in a useful manner . . . . because it distinguishes molecules according to their structure . The classification system of the present invention achieves a chemical compound library having a diverse set of structures within the context shown in Fig. 5. A large number of academic research groups labeled as makers 510 synthesize very large numbers of molecules. For example, the Chemical Abstracts registry file presently contains over fifteen million compounds. The pharmaceutical and agrochemical industry labeled as users 530 search the very large numbers of molecules to find molecules with biological activity. The classification system of the present invention is used by the intermediary 520 to create a library of chemical compounds having a diverse set of structures from the very large number of chemical compounds supplied by the makers 510 to ease the task performed by the users 530. The intermediary 520 uses the present invention to assign the molecules in the library of chemical compounds to the categories of the classification system. The intermediary 520 identifies the structures of the molecules which are missing from the library of chemical compounds by identifying empty or sparsely populated categories in the classification system. Using this information, the intermediary 520 can add molecules with the identified structures to the library by collecting them from the makers 510. Similarly, the intermediary 520 identifies the structures of the molecules which are overly represented in the library of chemical compounds. Using this information, the intermediary 520 can remove compounds with the identified structure to address the difficulty associated with managing information experienced by the users 530. By limiting the . . . . . number of molecules m the library having a similar structure, the intermediary can also reduce the cost of the library to the users 530 while providing a library with a diverse range of structures . While the subsequent description of the invention uses examples from the pharmaceutical industry, the present invention is not limited to the pharmaceutical industry. The present invention is equally adapted to classifying all types of chemical compounds which have ring structures . Fig. 6 presents a flowchart of the method 600 for assigning molecules to the classification system previously described in the discussion of Fig. 2 and Fig. 3. In step 610, the method creates an undirected graph representation G[V, E, δ] of the molecule. As is known to persons of ordinary skill in the art, an undirected graph G [V, E, δ] consists of a set V of vertices, a set E of edges, and a function δ from the set E to the set of unordered pairs <u, v> for u e V and v e V. See e.g., Preparata and Yeh, Introduction to Discrete Structures (Addison-Wesley Publishing Company, Inc., 1973 pg 67), ("Preparata"). In step 620, the method 600 finds the designated number of the longest simple cycles in the undirected graph G [V, E, δ] . Fig. 7 presents a flowchart to create an undirected graph G [V, E, δ] for a molecule 410. In step 705, the method places all atoms of the molecule in a set of atoms A. In step 710, the method initializes a function denoted by g: A-> V from the set of atoms A of the molecule to a set of vertices V in the corresponding undirected graph G [V, E, δ] to null. In other words, each of the atoms from the set of atoms A of the molecule will have an unassigned vertex from the set of vertices V in G [V, E, δ] after step 710. In step 715, the method determines whether there are any unselected atoms in the set of atoms. If there are unselected atoms in the set of atoms, control proceeds to step 725. In step 725, the method selects an atom a from the set of atoms A. In step 730, the method creates a vertex v which becomes a member of the set of vertices V m the undirected graph G [V, E, δ] . In step 735, the method assigns the vertex v to the atom a (sr(a) = v) . Following step 735, control proceeds to step 715 to process another atom in the set of atoms A. If there are no unselected atoms in the set of candidate atoms as determined in step 715, control proceeds to step 720. In step 720, the method places all bonds of the molecule in a set of bonds B. In step 740, the method determines whether there are any unselected bonds in the set of bonds B. If there are unselected bond(s) in the set of bonds E, control proceeds to step 745. In step 745, the method selects a bond b from the set of bonds B. In step 750, the method determines the atoms al, a2 associated with the bond h. In step 755, the method determines the vertices vl, v2 assigned to atoms al, a2 respectively by the function g: A->V in step 735. In step 760, the method creates an edge connecting the vertices vl, v2 {<vl, v2> ) which becomes a member of the set of vertices E in the undirected graph G [V, E, δ] . Following step 760, control proceeds to step 745 to process another bond in the set of bonds B. If there are no unselected bonds in the set of bonds B as determined in step 740, control proceeds to step 765 which indicates that the method has completed execution. Fig. 8a presents a flowchart of the method to find the designated number of the longest simple cycles in the undirected graph G [ V, E, δ] . As is known to persons of ordinary skill in the art, a cycle is a closed path in which the first vertex v i:L of the first edge <v ix , v 12 > of the cycle is equal to the second vertex v j2 of the last edge <v jl t v j2 > of the cycle. See, e.g., Preparata. A path is a sequence of edges such that the second vertex v k2 of an edge <v kl , v k2 > in the sequence is equal to the first vertex v xι of the next edge <v I1 , v 12 > in the sequence. A cycle is a simple cycle if it does not traverse any edge in the undirected graph G [V, E, δ] more than once . In step 810, the method finds all the simple cycles ( sc) in the undirected graph G[V, E, δ] and stores them in a list of simple cycles. As is known to those of ordinary skill in the art, the method can find all the simple cycles in the undirected graph G [V, E, δ] using a variant of the method disclosed in U.S. Patent 3,579,194, whose contents are incorporated by reference in their entirety. In step 820, the method determines the length of each of the simple cycles found in step 810 by counting the number of edges of each of the simple cycles and stores each length with the corresponding simple cycle in the list of simple cycles. In step 830, the method sorts the simple cycles by their corresponding lengths in descending order in a manner known to persons of ordinary skill in the art. See, e.g., Donald Erwin Knuth, "The Art of Computer Programming" (3rd Edition) . In step 840, the method removes simple cycles from the list of simple cycles having lengths which are the same as the lengths of their preceding simple cycle in the sorted list of simple cycles. In step 850, the method outputs the lengths of the simple cycles appearing in the designated number of entries at the beginning of the list of simple cycles. Accordingly, the method illustrated by the flowchart of Fig. 8a yields the lengths of the designated number of the longest simple cycles of the undirected graph G[V, E, δ] . Fig. 8b illustrates the operation of the method defined by the flowchart of Fig. 8a. Fig. 8b shows an undirected graph G[V, E, δ] corresponding to a molecule from a library of chemical compounds. Step 810 will output the following list of simple cycles sc as identified by their component edges e ± : sc 2 . 6_ 7 , e 1 e 13 , e 14 , e ls , ιe sc 3 : e s , e e , e 7 , e 20 , e 12 , e 13 sc 4 ι e 20 , e s , e 9 , e 10 , 6 21 sc s : e^, e 2 , e 3 , e 4 , 13 , e 14 , e ls , e ιe , e ιe , e 19 sc e : e ± , e 2 , e 3 , e 4 , e 5 , e e , e , e 20 , e 12 , e 14 , e ls , e, 0 c i4i c ιs' c ιeι sc β : e 17 , e 4l e s , e 6 , e 7 , e 20 , e^ 2l e 14 , e is , e le sc 9 : e l7 , e 4 , e s , e e , e 7l e e , e s , e 10 , e llt e 1 , e 14 , sc 10 : e s , e e , e 7 , e e , e s , e 10 , 6 U , & 12 , e 13 Step 820 will output the lengths of the simple cycles sc in the list shown above as follows: SC 1 : 6 SC 2 : 6 εc 3 : 6 sc 4 : 5 SC S : 10 SC e : 14 SC 7 : 17 SC 8 : 10 ϋCg« 13 SC 10 : 9 Step 830 will output the list of simple cycles SC which are sorted by their lengths in a descending order as shown below: SC 7 : 17 SC e : 14 SC 9 : 13 SC ε : 10 SC 8 : 10 SC 10 : 9 SC 1 : 6 SC 2 : 6 sc 3 : 6 sc,: 5 Step 840 will remove simple cycles sc from the list which have a length which equals the length of a preceding simple cycle in the list to output a modified list as shown below: sc 7 : 17 SC e : 14 SC g : 13 SC S : 10 sc 10 : 9 SC j^ : 6 SC 4 : 5 Finally, step 850 will output a sequence of the designated number of non-negative integers where each integer in the sequence corresponds to a length of a ring in the molecule corresponding to the undirected graph G [V, E, δ] . For instance, if the designated number is five in the example of Fig. 8b, step 850 will yield the following sequence: 17, 14, 13, 10, 9. In an alternate embodiment, the classification system uses a different method for finding the designated number of longest simple cycles LC in the undirected graph G [ V, E, δ] as shown by the flowchart of Fig. 9a. In step 905, the method initializes the list of longest simple cycles LC to null. In step 910, the method sets a desired simple cycle length DL to the cardinality of the set of edges E. After step 910, DL will equal the number of edges in the undirected graph -G[V, E, δ] . In step 915, the method determines whether the list of longest simple cycles LC contains fewer cycles than the designated number of simple cycles. If the list of longest simple cycles contains fewer cycles than the designated number of simple cycles, control proceeds to step 920. In step 920, the method determines whether the undirected graph G [V, E, δ] has a simple cycle with a length which is greater than or equal to DL. If the undirected graph G [V, E, δ] contains a simple cycle with a length which is greater than or equal to DL, control proceeds to step 925. In step 925, the method marks the simple cycle with a length which is greater than or equal to DL. In step 930, the method determines whether the length of the marked simple cycle is greater than DL. If the length of the marked simple cycle is not greater than DL, control proceeds to step 935. In step 935, the method stores the marked simple cycle and its corresponding length in the list of longest simple cycles. In step 940, the method decrements DL before control proceeds to step 915. If the length of the marked simple cycle is greater than DL as determined in step 930, control proceeds to step 920 to determine whether the undirected graph G[V, E, δ] has another simple cycle with a length which is greater than or equal to DL . If the undirected graph G [V, E, δ] does not contain an unmarked simple cycle with a length which is greater than or equal to DL as determined in step 920, control proceeds to step 940 where DL is decremented in preparation for a search for an incrementally smaller simple cycle. If the list of longest simple cycles LC contains the designated number of longest simple cycles as determined in step 915, the method terminates. In another alternate embodiment, the classification system uses a different method for finding the designated number of longest simple cycles LC in the undirected graph G [ V, E, δ] using commercially available databases such as the Integrated Scientific Information System (ISIS) provided by Molecular Design Ltd., MDL Information Systems of San Leandro, California. In this method, the operator creates a group of molecular files or molfiles corresponding to rings of different lengths. For example, the operator could create twenty-five molfiles for rings ranging in length from three to twenty-seven. Next, the operator queries the database containing the library of chemical compounds to search for the substructures defined in the twenty-five molfiles described above. To query the database, the operator could execute a PL program which is a standard query language provided by Molecular Design Limited which enables the operator to run programs when opening a structure database with the MDL ISIS packages. The queries of the database yield the identification number of the molecules in the database which have the substructures defined in the molfiles described above. Accordingly, the PL program outputs a list file for each of the defined substructures in each molfile. Next, the operator imports the list files into the database such as DataEase. The operator moves all records from the list files into one form within the database. After this step in the method, the form will contain records such as the ones displayed below: Identification Number ring size AE-641/0123001 03 AE-641/0123002 03 AE-641/0123003 03 AE-641/0123001 05 AE-641/0123003 05 AE-641/0123004 05 AE-641/0123001 06 5 The operator sorts these records in the form within the database by the identification numbers of the molecules. Finally, the operator accumulates the ring sizes associated with each identification number in the form as displayed below: 10 . . . . Identification Number ring size AE-641/0123001 060503 AE-641/0123002 03 AE-641/0123003 0503 AE-641/0123004 05 15 Accordingly, this method outputs a list of the lengths of the constituent rings for each chemical compound in the library. In another alternate embodiment, the classification 20 system executes a more efficient method for finding the designated number of longest simple cycles in the undirected graph G [V, E, δ] as illustrated by the flowchart of Figs. 10a and 10b. As is known to persons of ordinary skill in the art and as indicated by "Computers and Intractability" by Michael Garey and David Johnson ("Garay"), the task of finding the longest simple cycle in an arbitrary undirected graph G [V, E, δ] is non-deterministic polynomial time complete (NP- complete) . However, the task of finding the longest simple cycle in an arbitrary undirected graph G [V, E, δ] may be performed in polynomial time for particular types of graphs. J V For example, researchers have designed a polynomial algorithm for finding the longest cycle in a particular type of directed graph called a tournament. See C. Morrow and S. Goodman, "An Efficient Algori thm for Finding A Longest Cycle in a Tournament ". Similarly, the method described by the flowchart of Figs. 10a and 10b finds the designated number of longest cycles in polynomial time for an undirected graph G [ V, E, δ] when the undirected graph G[V, E, δ] is a planar graph and when all the finite regions of the planar undirected graph G [V, E, δ] are adjacent to the infinite region of the undirected graph G[V, E, δ] . As is known to persons of ordinary skill in the art, a finite undirected graph G [V, E, δ] is planar if it can be drawn on a plane in such a way that no two of its edges intersect except, possibly, at vertices. See, e.g. Preparata. Further, a necessary and sufficient condition for a graph G [V, E, δ] to be planar is that it contains no partial subgraphs of either the star graph or the utility graph. An undirected graph G ' [V , E > δ 1 ] is called a subgraph of an undirected graph G[V, E, δ] if V is a subset of V and if E < (a subset of E) consists of all the edges in E joining vertices in V. If E' is a subset of all edges joining vertices in V then G' is called a partial subgraph of G. As is known to persons of ordinary skill in the art, a region of a planar undirected graph G [V, E, δ] is a domain of the plane surrounded by edges of the planar undirected graph G[V, E, δ] such that any two points in it can be joined -by a line without crossing any edge. See e.g., Preparata. The edges which touch a region contain a simple cycle called the contour of the region. Two regions are said to be adjacent if the contours of the two regions have at least one edge in common. Further, since there is one and only one region which is infinite in a planar graph G [V, E, δ] by definition in the sense that the area determined by its contour is infinite, all other regions are finite. Accordingly, Figs. 10a and 10b show the flowchart of an method for determining the designated number of longest simple cycles in polynomial time on an undirected graph G[V, E, δ] which is planar and where all of the finite regions are adjacent to the infinite region. Since this method executes in polynomial time, it enables the classification scheme to operate on libraries containing molecules and chemical compounds with larger numbers of atoms and bonds as long as the molecules and compounds have corresponding undirected graphs G[V, E, δ] which are planar and where all of the finite regions are adjacent to the infinite region. In step 1004, the method initializes the set of the designated number of the longest simple cycles LC in G [V, E, δ] to the null set. The set LC will hold the result from execution of the method. In step 1005, the method determines the set of the shortest simple cycles SSC of each vertex of the graph G [ V, E, δ] in a manner as known to persons of ordinary skill in the art. See e.g., Preparata. In step 1010, the method determines a set of border edges BE comprising the edges of the shortest simple cycles SSC which are adjacent to the infinite region of the planar undirected graph G [ V, E, δ] . In step 1015, the method computes the number of adjacent regions for the regions corresponding to each shortest simple cycle ssc in the set of shortest simple cycles SSC. In step 1020, the method sorts the simple cycles ssc in the set of shortest simple cycles SSC by the number of adjacent regions. In step 1025, the method stores the shortest simple cycles ssc from the set of shortest simple cycles SSC having the smallest number of adjacent regions in a set SSC . In step 1030, the method determines the length of the shortest simple cycles ssc in the set of shortest simple cycles with the smallest number of adjacent regions SSC . In step 1035, the method sorts the shortest simple cycles ssc in the list of shortest simple cycles SSC with the smallest number of adjacent regions SSC by their lengths . In step 1036, the method defines a set of shortest simple cycle combinations CC which will hold catenations of the shortest simple cycles ssc from the set of shortest simple cycles SSC. The method initializes the first number of the set of shortest simple cycle combinations CC to a null entry. Next, the method appends the set of the shortest simple cycles with the smallest number of adjacent regions SSC to the set of simple cycle combinations CC. In step 1040, the method determines whether there are any shortest simple cycle combinations CC in the set of shortest simple cycle combinations CC and whether the set of longest simple cycles LC contains less than the designated number of longest simple cycles. If there are any shortest simple cycle combinations CC in the set CC and if the set of longest simple cycles LC contains less than the designated number of longest simple cycles, control proceeds to step 1045. In step 1045, the method selects the first shortest simple cycle combination cc from the set of shortest simple cycle combinations CC and removes it from the set . In step 1055, the method forms a modified set of border edges BE ' by copying the set of border edges BE and removing the edges of the shortest simple cycles ssc of the selected shortest simple cycle combination cc . In step 1060, the method computes the longest simple cycle lc in the modified set of border edges BE 1 . The longest simple cycle lc in the modified set of border edges BE ' corresponds to the longest cycle around the border of the modified undirected graph G ' [V , E ' , δ'] which is formed from the initial undirected graph G [V, E, δ] by removing the edges of the shortest simple cycles SSC of the selected shortest simple cycle combination cc and their corresponding vertices v. 5 In step 1065, the method stores the computed longest simple cycle lc from the modified set of border edges BE ' into the set of the longest simple cycles LC. In step 1068, the method removes duplicate simple cycles from the set of the longest simple cycles LC. In step 1070, the method finds all shortest simple cycles ssc which are adjacent to the last shortest simple cycle in the selected shortest simple cycle combination cc and stores them in a shortest simple cycle adjacency list AL. Step 1075 sorts the shortest simple cycles in the adjacency list AL by their length in descending order. 5 Step 1080 determines whether there are any shortest simple cycles ssc in the adjacency list AL. If there are shortest simple cycle (s) in the adjacency list AL, control proceeds to step 1085. In step 1085, the method selects a 0 shortest simple cycle ssc and removes it from the adjacency list AL. In step 1090, the method appends the selected shortest simple cycle ssc to the selected shortest simple cycle combination cc and adds the resulting shortest simple cycle combination cc ' to the set of shortest simple cycle 5 combinations CC. After step 1090, control proceeds to step 1080 to process the next shortest simple cycle ssc in the adjacency list AL. If there are no shortest simple cycles ssc in the Q adjacency list AL in step 1080, control proceeds to step 1040 to process the next shortest simple cycle combination ssc in the set of shortest simple cycle combinations SSC. If there are no shortest simple cycle combinations ssc remaining in the set of simple cycle combinations SSC as determined in step 1040, the method terminates. When the method terminates, the list of longest simple cycles LC contains the lengths of the simple cycles appearing in the designated number of the longest simple cycles in the undirected graph G [V, E, δ] . Accordingly, the method illustrated by the flowchart of Figs. 10a and 10b yield the lengths of the designated number of the longest simple cycles of the undirected graph G[V, E, δ] . Figs. 11a - lie illustrate the operation of the method defined by the flowchart of Figs. 10a and 10b. Fig. 11a shows an undirected graph G[V, E, δ] corresponding to a molecule from a library of chemical compounds. Step 1005 will output the following list of shortest simple cycles ssc as identified by their component edges e^: e i / e 2 / ssc 3 : e sf e e e 7 , e 20f Step 1010 will output the following edges: *~1 / ^2 / ^3 ^. ©5/ &6f *-7 / ^8 / ^9f ^10 / *~li r ^12 / ^14 e is &16 e i8 ^19 Step 1015 will output the number of adjacent regions for each of the shortest simple cycles ssc t as indicated below: SSC j^ : 2 εsc 2 : 3 SSC 3 : 3 SSC 4 : 2 Step 1020 will output the set of the shortest simple cycles SSC sorted by the number of their adjacent regions as indicated below: ssc z : 2 SSC 4 : 2 ssc 2 : 3 SSC 3 : 3 Step 1025 will collect the shortest simple cycles ssc ' with the smallest number of adjacent regions into a set of shortest simple cycles with the smallest number of adjacent regions SSC as indicated below: ssc 1 : 2 sεc 4 : 2 Step 1030 will compute the lengths of the shortest simple cycles ssc ' in the set of shortest simple cycles with the smallest number of adjacent regions SSC and step 1035 will sort the shortest simple cycles ssc with the smallest number of adjacent regions by their length as indicated below: ssc 4 : 5 Step 1036 will initialize the set of the shortest simple cycle combinations CC as indicated below: null ssc 4 : 5 On the first iteration of the subsequent loop, step 1045 will remove an empty cycle combination null from the set of shortest simple cycle combinations CC. Thus, step 1055 will not remove any edges from the set of border edges BE in the first iteration of the loop. Accordingly, step 1060 will compute the longest simple cycle lc from the set of border edges BE as indicated below: '16/ ^18 Step 1065 stores this longest simple cycle lc along with its associated length of 17 in a list of longest simple cycles LC. On the next iteration of the loop, step 1045 will remove the first shortest simple cycle combination cc from the set of shortest simple cycle combinations CC as indicated below: εεc 4 Step 1055 removes the edges from the shortest simple cycles ssc of the shortest simple cycle combination sεc 4 from the undirected graph G [V, E, δ] to form a modified set of border edges BE ' as indicated below: These border edges BE ' correspond to the border edges on the subgraph G ' [V , E ' , δ 1 ] pictured in Fig. lib. Step 1060 computes the longest simple cycle lc from the modified set of border edges BE ' as indicated below: ^ 1 e 2 / ^3 i e . / e s / e β f e 7 / e 20 / e 12 / e lt e ls , e le / e 18 Step 1065 stores this longest simple cycle lc along with its associated length of 14 in a list of longest simple cycles LC. Step 1070 finds all the shortest simple cycles ssc which are adjacent to the last shortest simple cycle in the selected shortest simple cycle combination cc and stores them in an adjacency list AL as indicated below: ssc 3 Steps 1075 through 1090 will append each shortest simple cycle εεc in the adjacency list AL to the selected shortest simple cycle combination cc and will store the modified shortest simple cycle combinations cc ' in the set of shortest simple cycle combinations CC to form the set of shortest simple cycle combinations CC as indicated below: On the next iteration of the loop, step 1045 will remove the first shortest simple cycle combination cc from the set of shortest simple cycle combinations CC as indicated below: SSC- L Step 1055 removes the edges from the shortest simple cycles εεc of the simple cycle combination cc from the undirected graph G [ V, E, δ] to form a modified set of border edges BE ' as indicated below: ^17 ® _ / ^s r ^er ^7 r ®β ®s / ®ιo / *-_.._ / *-_.2 / ®ι_ / ®ιs *-_« These border edges BE ' correspond to the border edges on the subgraph G ' [V , E ' , δ'] pictured in Fig. lie. Step 1060 computes the longest simple cycle lc from the modified set of border edges BE ' as indicated below: ®17/ ®_/ ®S ®6 ^7/ &B / ^5 ®10 ^11 ®_._ > / ^14 f ^15 G 1C Step 1065 stores this longest simple cycle lc along with its associated length of 13 in a list of longest simple cycles LC. Step 1070 finds all the shortest simple cycles εεc which are adjacent to the last cycle in the selected simple cycle combination cc and stores them in an adjacency list AL as indicated below: ssc 2 Steps 1075 through 1090 will append each shortest simple cycle ssc in the adjacency list AL to the selected shortest simple cycle combination cc and will store the modified shortest simple cycle combinations cc ' in the set of shortest simple cycle combinations CC to form the set of shortest simple cycle combinations CC as indicated below: SSC f s sc On the next iteration of the loop, step 1045 will remove the first shortest simple cycle combination cc from the set of shortest simple cycle combination CC as indicated below: Step 1055 removes the edges from the shortest simple cycles ssc of the shortest simple cycle combination cc from the undirected graph G [V, E, δ] to form a modified set of border edges BE ' as indicated below: ^1 e 2 f &3 I e _ / ^13 / e i4 / &XS I ^16 f ^18 / e iS These border edges BE ' correspond to the border edges on the subgraph G ' [V , E ' , δ'] pictured in Fig. lid. Step 1060 computes the longest simple cycle lc from the modified set of border edges BE ' as indicated below: e i f &2 f &3 f e 4 f ^13 ^14 / &15 / ^16 / e i8 / &19 Step 1065 stores this longest simple cycle lc along with its associated length of 10 in a list of longest simple cycles LC. Step 1070 finds all the shortest simple cycles εεc which are adjacent to the last shortest simple cycle in the selected shortest simple cycle combination cc and stores them in an adjacency list AL as indicated below: εsc 2 Steps 1075 through 1090 will append each shortest simple cycle ssc in the adjacency list AL to the selected shortest simple cycle combination cc and will store the modified shortest simple cycle combinations cc ' in the set of shortest simple cycle combinations CC to form the set of shortest simple cycle combinations CC as indicated below: εεc 4 , εεc 3 l ssc 2 On the next iteration of the loop, step 1045 will remove the first shortest simple cycle combination from the set of shortest simple cycle combinations CC as indicated below: Step 1055 removes the edges from the shortest simple cycles εεc of the shortest simple cycle combination cc from the undirected graph G [V, E, δ] to form a modified set of border edges BE ' as indicated below: ^5/ &6/ ^7/ ^8 ®9 ^10 &ll f &12 f ^13 These border edges BE ' correspond to the border edges on the subgraph G ' [V , E ' , δ 1 ] pictured in Fig. lie. Step 1060 computes the longest simple cycle lc from the modified set of border edges BE ' as indicated below: &S f &6 f e 7 ^8/ e 5 e io r &ll f e i2 1 e i_ Step 1065 stores this longest simple cycle lc along with its associated length of 9 in a list of longest simple cycles LC. Step 1070 finds all the shortest simple cycles ssc which are adjacent to the last shortest simple cycle ssc in the selected shortest simple cycle combination cc and stores them in an adjacency list AL as indicated below: ssc. Steps 1075 through 1090 will append each shortest simple cycle εεc in the adjacency list AL to the selected shortest simple cycle combination cc and will store the modified shortest simple cycle combinations cc ' in the set of shortest simple cycle combinations CC to form the set of shortest simple cycle combinations CC as indicated below: C f SC j SC2 b j f C f i? _. j At this point in the execution of the program, the list of longest simple cycles LC contains the following entries: ®1 ^-2/ ^3/ ^4 ^5 ^6/ *-7 *-8/ ^9/ ^10/ ^11/ f-12/ *-ι_ / ^-15/ ( -16/ ( -18/ t-1 i * • ' ^1/ ^2/ ^3/ ^4 ^5/ ^6/ ®7/ ^20/ ^12/ ^14/ &1S ^16/ e X8 ; 14 e 1£ ; 13 ^1/ ^2 f ^ ^4 ^13f ^14/ ^15 ^16/ ^18/ ^19/ *-s ^ 6/ ^ 7/ G 8f e g e 10 e ll e 12/ e 13 ,~ y Execution will continue for subsequent iterations of the loop as discussed above until step 1040 determines that there are no shortest simple cycle combinations cc in the set of shortest simple cycle combinations CC or until the designated number of longest cycles appear in the list of longest simple cycles LC. Figs. 12a - 12e display the results which would be obtained from executing the method for assigning molecules in a classification system of Fig. 6 with either the method for finding the designated number of the longest simple cycles in the undirected graph G[V, E, δ] displayed in Fig. 8a, the method of Fig. 9 or the method displayed in Figs. 10a and 10b. Each figure identifies the designated number of the longest simple cycles for the pictured graph representation of the molecule . Fig. 13 displays the fingerprints of four chemical compound libraries obtained from executing the first two steps of the method shown in the flowchart of Fig. 1 with a one-step analysis. In other words, Fig 14 displays the results c obtained by the present invention when the designated number of longest ring lengths is one. The plots display the number of compounds within each library as a function of the longest ring length. Fig. 14 displays the fingerprints of the same four 0 . . . chemical libraries with a three-step analysis. In other words, Fig. 14 displays the results obtained by the present invention when the designated number of longest ring lengths is three . The plot displays the number of compounds within each library as a function of the three longest ring lengths. The S97819 library contains 97,819 mainly synthetic compounds. The NP2466 library contains 2,466 natural products. The F2245 library contains 2,245 different compounds that have been ordered more than five times during the past six years. The CMC library contains 6861 structures. Fig. 15 displays the results associated with a three step analysis of the S97819 library with the method described by the flowchart of Fig. 1. The plot shows the possible category populations and the actual category populations as a function of the ring length. The classification system discussed above can be called a ring descriptor classification system because it classifies molecules according to a designated number of the longest simple cycles appearing within the molecules . The present invention further includes a second classification system called an extended ring descriptor classification system. The extended ring descriptor classification system has more categories than the ring descriptor classification system because the extended ring descriptor classification system includes more structural information. The extended ring descriptor classification system identifies each of its categories by a sequence of tuples having a designated length. Each tuple contains two non- negative integers. The first non-negative integer in the tuple represents a length of a ring in the molecule. The second non-negative integer in the tuple represents the number of rings in the molecule having that length. The first tuple in the sequence represents the rings with the longest length in the molecule. Each successive tuple in the sequence represents successively shorter rings in the molecule. Thus, the extended ring descriptor classification system identifies the number of rings having particular lengths while the ring descriptor classification system merely identifies the presence or absence of rings having particular lengths. Fig. 16a presents a flowchart of a method to find a designated number of the longest simple cycles in the undirected graph G [V, E, δ] for the extended ring descriptor classification system. In step 1610, the method finds all the simple cycles (sc) in the undirected graph G [V, E, δ] and stores them in a list of simple cycles. In step 1620, the method determines the length of each of the simple cycles found in step 1610 by counting the number of edges of each of the simple cycles and stores each length with the corresponding simple cycle in the list of simple cycles. In step 1630, the method sorts the simple cycles by their corresponding lengths in descending order in a manner known to persons of ordinary skill in the art. See, e.g., Donald Erwin Knuth, "The Art of Computer Programming" (3rd Edition) . In step 1640, the method assembles the simple cycles into groups according to their lengths. Specifically, simple cycles will appear in the same group if they have the same length. In step 1650, the method outputs a list of tuples wherein each tuple corresponds to a group of simple cycles. The first non-negative integer in the tuple represents a length of a ring in the molecule. The second non-negative integer in the tuple represents the number of rings in the molecule having that length. Fig. 16b illustrates the operation of the method defined by the flowchart of Fig. 16a. Fig. 16b shows an undirected graph G[V, E, δ] corresponding to a molecule from a library of chemical compounds. Step 1610 will output the following list of simple cycles εc as identified by their component edges e^ εc '. e lt e 2 , e 3 , e 17 , e 18 , e 19 εc 2 : e 17 , e 4 , e 13 , e 14 , e ιε , e ιe εc 3 ~. e s , e e , e , e 20 , e X2 , e 13 sc 4 '. 2 o, e s , e 9 , e 10 , e l εc s : e lr e 2 , e 3 , e 4 , e 13 , e 14 , e 15 , e ιe , e 18 , e 19 εc 6 ι e lt e 2 , e 3 , e 4 , e s , e e , e 7 , e 20 , e 12 , e 14 , e 15 , lt e 2 , e 3 , e 4 , e s , e e , e 7 , e 8 , e s , e 10 , e llr e 12 , εc 8 : e 17l e 4 , e s , e e , e 7 , e 20 , e 1 , e 14 , e 15 , e lg εc s : e 17 , e 4 , e s , e e , e 7 , e 8 , e s , e 10 , e llt 12 ι ^m &lSf &16 εc. - 1 Step 1620 will output the lengths of the simple cycles εc in the list shown above as follows: SC 1 : 6 sc 2 : 6 SC 3 : 6 SC 4 : 5 εc s : 10 εc 6 : 14 εc 7 : 17 SC 8 : 10 SC 9 : 13 SC ιn : 9 Step 1630 will output the list of simple cycles SC which are sorted by their lengths in a descending order as shown , ow: sc 7 : 17 SC e : 14 εc g : 13 εc ε : 10 SC 8 : 10 SC 10 : 9 SC X : 6 SC 2 : 6 SC 3 : 6 SC 4 : 5 Step 1640 will assemble the simple cycles εc into groups as shown below: Group λ : εc 7 Group 2 : sc 6 Group j -. εc 9 Group 4 : εc s εc e Group s : εc 10 Group 6 : εc x εc 2 sc 3 Group : εc 4 Finally, step 1650 will output a sequence of the designated number of tuples. The first non-negative integer in each tuple is a length of a ring in the molecule corresponding to the undirected graph G[V, E, δ] . The second non-negative integer in each tuple is the number of rings in the molecule having the length identified by the first non- negative integer in the tuple. For instance, if the designated number is five in the example of Fig. 16b, step 1650 will yield the following sequence of tuples: 17:1, 14:1, 13:1, 10:2, 9:1. Fig. 17 presents an undirected graph G[V, E, δ] to illustrate the effect of the definition of the rings on the resolution of the classification system. Because the rings were defined using simple cycles εc with the set of edges E, the undirected graph G [V, E, δ] of Fig. 17 has three rings of length four corresponding to three simple cycles εc: εc x = <v lr v 2 > , <v 2/ v 4 > , <v 4/ v 3 > , <v 3t v > ; εc 2 . <v lt v t > , <v 4/ v 2 > , <v 2/ v 3 > , <v 3> v > ; and sc 3 m <v 1# v 2 > , <v 2f v 3 > , <v 3ι v 4 > , <v 4f v x > . Conversely, if the rings had been defined using only the set of vertices V, the undirected graph G [V, E, δ] of Fig. 17 would have only one ring of length four. Using this alternate ring definition, this ring of length four is identified only by the ring's vertices: v lt v 2 , v 3/ v 4 . As shown by the example of Fig. 17, the categories of a classification system which defines rings using simple cycles sc with the set of edges E will hold fewer molecules than the categories of a classification system which defines rings using only the set of vertices V. In other words, classification systems which define rings using simple cycles εc with the set of edges E can distinguish complex rings like . the rings corresponding to simple cycles εc 2 = <v lt v 4 > , <v 4/ v 2 > , <v 2/ v 3 > , <v 3> v 2 >; and sc 3 = <v lr v 2 > , <v 2/ v 3 > , <v 3/ v 4 > , <v 4/ v x > from simple rings corresponding to the simple cycle <v lt v 2 > , <v 2, v 4 > , <v 4/ v 3 > , <v 3ι v > . The ability of a classification system to distinguish complex rings from simple rings is important as structures containing rings with complex interconnections may correspond to chemical compounds which are not physically possible in the real world. In an alternate embodiment, the resolution of the extended ring descriptor classification system is further increased by also identifying the types of atoms appearing within the rings. Specifically, this modified extended ring descriptor classification system attaches type attributes to the vertices representing atoms in the undirected graph G [V, E, δ] . The type attribute of a vertex identifies the type of the atom corresponding to the vertex such as carbon, silicon, and nitrogen. In an alternate embodiment, the resolution of the extended ring descriptor classification system is further increased by also identifying the types of atoms appearing adjacent to the rings. Specifically, this modified extended ring descriptor classification system attaches neighboring type attributes to the vertices representing atoms in the undirected graph G [V, E, δ] . The neighboring type attribute of a vertex identifies the types of the atoms corresponding to neighboring vertices such as carbon, silicon, and nitrogen. The extended ring descriptor classification system and its modifications provide higher resolution than the ring descriptor classification system. For example, there are a very large number of chemical compounds which fall into the same category 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3 of the ring descriptor classification system. The extended ring descriptor classification system distinguishes between the chemical compounds having the same ring descriptor by assigning them among different categories. As previously . . discussed these categories are defined by the number of rings having a particular length, the types of atoms within these rings and the types of atoms connected to these rings . The present invention further comprises a generation method which creates realistic chemical structures to fill the empty categories of the classification system in order to improve the range of structures represented by the library. Fig. 18 provides an overview of the generation method of the present invention. In step 1810, the method generates a set of new undirected graph G' [V, E' , δ'] representations of chemical structures to fill the list of empty categories. The set of undirected graphs G'.V, E ' , δ'] produced by step 1810 may contain undirected graphs G' [V , E ' , δ'] which are iεomorphic to each other. Two undirected graphs G'.V', E' , δ ' \ are iεomorphic to each other if one undirected graph G' W , E' , δ'] can be obtained from the other by relabeling the vertices V . See, e.g., Kohavi, " Swi tching and Finite Automata Theory" (2nd Edition) . In step 1820, the method removes isomorphic undirected graphs G'.V, E' , δ'] from the set of undirected graphs G'.V, E', δ'] representing chemical structures generated by step 1810. Next, the set of undirected graphs G ' [V , E', δ'] produced by execution of steps 1810 and 1820 may represent chemical structures which are not physically possible in the real world. For instance, a chemical structure could be unrealistic based on the strain on the angles of carbon atoms c within the chemical structure. Accordingly, step 1830 filters undirected graphs G' [V , E l , δ'] representing unrealistic chemical structures from the set of undirected graphs G' [V , E' , δ'] generated by execution of steps 1810 and 1820. Fig. 19 presents a flowchart of a method which removes 0 isomorphic undirected graphs G' [V , E', δ'] from the set of generated undirected graphs G' [V' , E' , δ'] representing chemical structures. In step 1910, the method derives a roentgen descriptor 1915 for each vertex v' of each generated undirected graph G'[V, E' , δ'] representing a chemical structure. Step 1920 computes a fingerprint 1925 for each vertex v of each generated undirected graph G' [V , E', δ'] from the roentgen descriptor 1915 of the vertex v' . Step 1930 computes a chemical structure descriptor 1935 for each generated undirected graph G'.V, E', δ'] from the 0 fingerprints 1925 of the vertices V of the generated undirected graph G' [V , E' , δ ' \ . The method derives a roentgen descriptor 1915 for a vertex v' by recording the degree of vertex v' . The degree of a vertex V in an undirected graph G' [V , E', δ'] is the number of edges e ' which are incident to the vertex v' . See Preparata, pg 74. Next, the method records the degree for all vertices from V which are reachable from vertex v' by a path of length one. As previously discussed, a path is a sequence of edges such that the second vertex v k2 of an edge <v kl , v k2 > in the sequence is equal to the first vertex v lx of the next edge <y 11 , v 12 > in the sequence. See Preparata. Next, the method records the degree for all vertices from V which are reachable from vertex V by a path of length two. This process iterates until the method records the degree of all vertices from V which are reachable from vertex v' by a path with a predetermined maximum length. Fig. 20 presents a sample undirected graph G ' [ V' , E' , δ'j to illustrate the derivation of a roentgen descriptor 1915 for a vertex V 0 . First, the method records the degree of vertex v' 0 as 2. Next, the method records the degree for all vertices in V which are reachable from vertex v' 0 by a path of length one. Thus, the method records the degree of the vertices v' 2 and v' 2 as three. Next, the method records the degree for all vertices in V which are reachable from vertex v' 0 by a path of length two. Thus, the method records the degree of the vertices v' 3 and v' 4 as two and three respectfully. Next, the method records the degree for all vertices in V which are reachable from vertex v' 0 by a path of length three. Thus, the method records the degree of the vertex v' s as one. Accordingly, the roentgen descriptor 1915 for vertex v' 0 of the undirected graph G'.V, E' , δ ' ] shown in Fig. 20 will read as follows: length 0 - degree 2; length 1 - degree 3:2; length 2 - degree 2:1, degree 3:1; length 3 - degree 1:1. In words, vertex v' 0 has degree 2. There are two vertices reachable from vertex v' 0 by a path of length one. These two vertices have degree two. There are two vertices reachable from vertex v' 0 by a path of length two. One of these vertices has a degree of two. The other of these vertices has a degree of three . There is one vertex reachable from vertex v' 0 by a path of length 3. This vertex has degree one . In an alternate embodiment, the method also records the length of simple cycles sc in the roentgen descriptor 1915 for vertex v' as it traverses the undirected graph G' . V, E' , δ'] . In another alternative embodiment, the method also records the vertex type in the roentgen descriptor 1915 for the vertices which it encounters as it traverses the undirected graph G ' \ V , E > , δ'] . While the preceding discussion included different exemplary methods for computing the roentgen descriptors 1915 of the vertices V an undirected graph G ' W , E' , δ'], it is apparent to one of ordinary skill in the art that other methods for computing a roentgen descriptor 1915 could be used in the present invention. These methods for computing a roentgen need only ensure that the roentgen descriptor 1915 does not depend on the labeling of the vertices V , the labeling of the edges E' of the undirected graph G / [V , E' , δ'] or the way in which the undirected graph G / [V , E' , δ'] is searched. The roentgen descriptor 1915 must also be written in a canonical form. See e.g. Kohavi, Chapter 1. In the preferred embodiment, the vertices which are reachable from the vertex V 0 along a path with greater length are listed in the roentgen descriptor 1915 before the vertices which are reachable from the vertex V 0 along a path of lesser length. Next, vertices which are reachable from the vertex v' 0 having a greater degree are listed in the roentgen descriptor 1915 before the vertices which are reachable from the vertex v' 0 having a lesser degree. Further, the number 0 is used as a delimiter between the elements of the roentgen descriptor 1915. For example, canonical form of the preferred embodiment for the roentgen descriptor 1915 of vertex v' 0 of the undirected graph G ' {V , E' , δ'] of Fig. 20 is: 3,1,1,0,2,3,1,0,2,2,1,0,1,3,2,0,0,2,1. The entry 3,1,1 means that there is 1 vertex of degree 1 which is reachable from v vertex of degree 3 which is reachable from v' 0 by a path with length 2. The entry 2,2,1 means that there is 1 vertex of degree 2 which is reachable from v' 0 by a path with length 2. The entry 1,3,2 means that there are 2 vertices of degree 3 which is reachable from v' 0 by a path with length 1. The entry 0,2,1 means that there is 1 vertex of degree 2 which is reachable from v' 0 by a path with length 0. In other words, the entry 0,2,1 means that vertex v' 0 has degree 2. While the preceding discussion described the preferred canonical form for representing a roentgen descriptor 1915, it is apparent to one of ordinary skill in the art that other canonical forms for representing a roentgen descriptor 1915 could also be used in the present invention. The method need only ensure that the same canonical form for the roentgen descriptor 1915 is used for all vertices V in all undirected graph G' [ V' , E' , δ'] representations of chemical structures. Step 1920 of the flowchart of Fig. 19 computes a fingerprint 1925 for each vertex v' of each generated undirected graph G [V , E' , δ'] from the roentgen descriptor 1915 of the vertex V created by execution of step 1910. The roentgen descriptors 1915 for all the vertices V can potentially become unwieldy because of their sizes. Step 1920 addresses this concern by taking fingerprints 1925 of the roentgen descriptors 1915 for the vertices V . Step 1920 can be represented as a function y = f (x) where x represents the roentgen descriptor 1915 and y represents the fingerprint 1925 of the roentgen descriptor 1915. The function f (x) should be a non-linear function to ensure that no linearities occur between the roentgen descriptor 1915 and the chemical structure descriptor 1935. The function f (x) should also be dependent on all elements of the roentgen descriptor 1915. In the preferred embodiment, the function f (x) should be defined such that it is very likely that the function f (x) produce different fingerprints 1925 for different roentgen descriptors 1915. Alternatively, the function f (x) should be defined such that it is infeasible that the function f (x) produce the same fingerprints 1925 for different roentgen descriptors 1915. The latter type of functions f (x) are well known to persons of ordinary skill in the art of cryptography and are used for creating fingerprints of documents. In the preferred embodiment, the step 1920 is the following formula: fingerprint raw = In ( ∑( abs ( (ln( (vi+l) * (i+30) ) ) ) ) fingerprint = round ( frac (fingerprint raw) * modulo value) wherein i represents the index of a component of the roentgen, vi represent the value to component i in the roentgen descriptor 1915, frac is a function which yields the fractional portion of its argument, and abs is the absolute value function. For example, if the roentgen descriptor 1925 is 54305050, execution of step 1920 produces the fingerprint value 30 for a modulo value of 50 as indicated in the computation shown below: i vi ln( (vi + 1) * (i+30) ) 1 5 5.225747 2 4 5.075174 3 3 4 . 882802 4 0 3 . 526361 5 5 5 . 347108 6 0 3 . 583519 7 5 5 . 402677 8 0 3 . 637586 Sum 36 . 68097 fingerprint raw = In (Sum) = 3.602258 fingerprint=round( frac (fingerprint raw) *modulo value)=30 While the preceding discussion described the preferred function of step 1920 for taking fingerprints 1925 of the roentgen descriptors 1915 for the vertices V of the undirected graph representation G [V , E' , δ'] of a chemical structure, it is apparent to one of ordinary skill in the art that other functions could be used with the present invention to take fingerprints 1925 of the roentgen descriptors 1915 for the vertices V . The function f (x) of step 1920 for taking fingerprints 1925 of the roentgen descriptors 1915 need only be a non-linear function to ensure that no linearities occur between the roentgen descriptor 1915 and the chemical structure descriptor 1935. The function f (x) should also be dependent on all elements of the roentgen descriptor 1915 and should be defined such that it is very likely that the function f ix) produces different fingerprints 1925 for different roentgen descriptors 1915. Moreover, step 1920 could compute roentgen descriptors 1915 only for the vertices of V having a degree which is greater than a predetermined threshold value instead of computing roentgen descriptors 1915 for every vertex in V . In this alternate embodiment of the present invention, step 1920 computes fingerprints for only the vertices in V having a degree greater than the predetermined threshold value . An exemplary predetermined threshold value for the degree is a vertex is two. Step 1930 computes a chemical structure descriptor 1935 for each generated undirected graph G'.V, E' , δ'] from the fingerprints 1925 of the vertices V of the generated undirected graph G' [V , E' , δ'] . In the preferred embodiment, step 1930 performs a modulo addition operation on the fingerprints 1925 to produce the chemical structure descriptor 1935. An exemplary modulo value is 50. For example, if the execution of step 1920 produces the following fingerprints: 12, 15, 23, 5, 19, step 1930 will compute the chemical structure descriptor 1935 as follows: 74 modulo 50 = 24. While the preceding discussion described the preferred operation for producing the chemical structure descriptor 1935 from the fingerprints 1925, it is apparent to one of ordinary skill in the art that other operations could be used with the present invention to compute the chemical structure descriptor 1935 from the fingerprints 1925. The operation of step 1930 need only combine the fingerprints 1925 in such a way that duplicate chemical structures 1815 will be discovered. As shown by Fig. 18, in step 1820, the present invention removes iεomorphic undirected graphs G' [V , E' , δ ' ] from the set of undirected graphs G'.V, E' , δ'] representing chemical structures generated by step 1810. The present invention detects iεomorphic undirected graphs G' [V' , E' , δ ' \ by comparing the chemical structure descriptors 1935 produced by step 1930 of Fig. 19. Next, the set of undirected graphs G'.V, E', δ'] produced by execution of steps 1810 and 1820 of Fig. 18 may represent chemical structures which are not physically possible in the real world. For instance, a chemical structure could be unrealistic based on the strain on the angles of carbon atoms within the chemical structure. Accordingly, step 1830 filters undirected graphs G ' [V , E' , δ'] representing unrealistic chemical structures from the set of undirected graphs G'.V, E', δ'] generated by execution of steps 1810 and 1820. In the preferred embodiment, step 1830 executes the following rules for those chemical structures which contain solely carbon atoms in order to filter undirected graphs G'.V, E', δ'] representing unrealistic chemical structures: if an undirected graphs G'.V, E' , δ ' ] representing a chemical structures has a simple cycle εc of length 3 and another simple cycle sc of length 3 which share at least one edge, the chemical structure is infeasible and is filtered; and if an undirected graphs G' [V' , E', δ'] representing a chemical structures has a simple cycle εc of length 3 and another simple cycle sc of length 4 which share at least one edge, the chemical structure is infeasible and is filtered. Additional rules like the ones recited immediately above could easily be added to the method of the present invention to filter undirected graphs G'.V, E' , δ'] representing unrealistic chemical structures from the set of undirected graphs G'.V, E' , δ'] . While the above invention has been described with reference to certain preferred embodiments, the scope of the present invention is not limited to these embodiments. One skilled in the art may find variations of these preferred embodiments which, nevertheless, fall within the spirit of the present invention, whose scope is defined by the claims set forth below.

Claims: THE CLAIMS What is claimed is : 5 1. A method for classifying a molecule having a plurality of atoms, bonds and rings comprising the steps of: constructing a graph representation for the molecule comprising a plurality of vertices and edges corresponding to the plurality of atoms and bonds of the molecule, said graph - 0 representation having a plurality of simple cycles corresponding to the plurality of rings of the molecule; determining the lengths of a designated number of the longest of said plurality of simple cycles in said graph representation; and 15 representing said longest simple cycles with a table of entries, each of said entries having a first field and a corresponding second field wherein said first field contains said longest simple cycle lengths and said second field contains the number of said simple cycles having said corresponding longest simple cycle length. 20 2. A method for classifying a molecule having a plurality of atoms, bonds and rings as in claim 1 further comprising the step of sorting said table in a designated order. 5 3. A method for classifying a molecule having a plurality of atoms, bonds and rings as in claim 1 wherein said designated order of said sorting step is a descending order. 0 4. A method for classifying a molecule having a plurality of atoms, bonds and rings as in claim 1 wherein said designated order of said sorting step is an ascending order. 5. A method for classifying a molecule having a plurality of atoms, bonds and rings as in claim 1 further comprising the steps of: determining said lengths of said plurality of simple c cycles of said graph representation; sorting said simple cycles in a descending length order; assembling said simple cycles into a plurality of sets wherein each of said sets contains simple cycles having the same length; 0 determining the cardinality of each of said sets; and forming said table of entries from said plurality of simple cycles sets by assigning the length of said set to said first field and the cardinality of said set to said second field. 5 6. A method for classifying a molecule having a plurality of atoms, bonds and rings as in claim 1 wherein said determining a graph representation step comprises the steps of: (a) setting a desired simple cycle length to a number of 0 said plurality of edges of said graph representation; (b) determining whether the said graph representation has a simple cycle having a length equal to said desired simple cycle length; (c) collecting said simple cycle having said desired simple cycle length in the list of longest ring lengths if said graph representation has said simple cycle with said desired simple cycle length; (d) decrementing said desired simple cycle length by one; and (e) repeating steps (a) through (d) while a cardinality of the list of longest ring lengths is less than said designated number of longest simple cycles and said desired simple cycle length is greater than two. 7. A method for achieving diversity in a library of c molecules comprising the steps of: assigning each molecule in the library to one of a plurality of entries using the method of claim 1; and generating a plurality of new chemical structures to fill empty ones of said plurality of entries. 0 8. A method for achieving diversity in a library of molecules as in claim 7 further comprising the steps of: identifying isomorphic chemical structures in said plurality of entries; and 5 removing said isomorphic chemical structures . 9. A method for achieving diversity in a library of molecules as in claim 8 further comprising the step of: identifying unrealistic chemical structures in said plurality of entries; and 0 removing said unrealistic chemical structures. 10. A method for achieving diversity in a library of molecules as in claim 8 wherein said identifying isomorphic chemical structures comprises the steps of: computing at least one roentgen descriptor for each of said plurality of chemical structures; computing at least one fingerprint for each of said roentgen descriptors; and searching for duplicates of said fingerprints to identify said isomorphic chemical structures .

Inventors: DE BIE JOANNES F M, FRANKEN PETER W M, HEHENKAMP JURRIAAN, KRECHL JIRI, WIFE RICHARD L, DE BIE, JOANNES, F., M., FRANKEN, PETER, W., M., HEHENKAMP, JURRIAAN, KRECHL, JIRI, WIFE, RICHARD, L.
Applicants: SPECS AND BIOSPECS BV, SPECS AND BIOSPECS, B.V.
Application year: 1999
Main classification: G06F17
IPC codes: C07B61, G06F17, G06F19