Abstract:
A self-organizing method, system, and computer program product for generating molecular conformations that are consistent with a set of distance and/or volume constraints. A stochastic proximity embedding (SPE) algorithm evaluates individual distance and/or volume constraints and adjusts the atomic coordinates to minimize violations of such constraints. The method scales linearly with thenumber of atoms, and produces many more unique conformations at a fraction of the time required by conventional distance geometry algorithms.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention is directed to generating molecular conformations and, more particularly, to methods, systems, and computer program products for generating molecular conformations from distance and volume constraints.  
         [0003]     2. Related Art  
         [0004]     Finding a general, fast and reliable method for detecting low energy conformations of a molecule is one of the greatest challenges of computational chemistry. See, A. R. Leach, “Reviews in Computational Chemistry,” Vol. 2 (Eds.: K. B. Lipkowitz, D. B. Boyd), VCH, New York, 1991, incorporated herein by reference in its entirety.  
         [0005]     Solving this problem requires a method for detecting minima on the potential energy surface. This is typically carried out by generating reasonable starting geometries and minimizing them to the nearest local energy minimum. This search can be performed in Cartesian, torsion, or distance space.  
         [0006]     For a discussion of Cartesian space search methods, see D. M. Ferguson and D. J. Raber, J. Am. Chem. Soc. 1989, 111, 4371, and M. Saunders, J. Am. Chem. Soc. 1987, 109, 3150, incorporated herein by reference in their entireties.  
         [0007]     For a discussion of torsion space search methods, see, W. L. Jorgensen and J. Tirado-Rives, J. Phys. Chem. 1996, 100, 14508; and G. Chang, W. C. Guida and W. C. Still, J. Am. Chem. Soc. 1989, 111, 4379, incorporated herein by reference in their entireties.  
         [0008]     For a discussion of distance space search methods, see, G. M. Crippen and T. F. Havel, “Distance Geometry and Molecular Conformation,” Research Studies Press, Somerset, UK, 1988; and D. C. Spellmeyer, et al., J. Mol. Graphics Modell. 1997, 15, 18, incorporated herein by reference in their entireties.  
         [0009]     The latter approach, known as distance geometry (DG), uses covalent constraints to establish a set of upper and lower interatomic distance bounds, and then attempts to generate conformations that are consistent with these bounds. DG has been successfully applied to a wide range of problems including conformational analysis, (see, D. C. Spellmeyer, et al., J. Mol. Graphics Modell, 1997, 15, 18; and B. P. Feuston, et al., J. Chem. Inf. Comput. Sci., 2001, 41, 754, incorporated herein by reference in their entireties), NMR structure determination (see, T. F. Havel and K. Wüithrich, J. Mol. Biol. 1985, 182, 281; C. Mumenthaler and W. Braun, J. Mol. Biol. 1995, 254, 465; and J. Kuszewski, et al., Journal of Biomolecular NMR 1992, 2, 33, incorporated herein by reference in their entireties), protein structure prediction (see, E. S. Huang and R. Samudrala, J. W. Ponder, Protein Sci. 1998, 7, 1998, incorporated herein by reference in its entirety), and ligand docking (see, E. C. Meng, et al.,  Proteins: Struct. Funct. Gene.  1993, 17, 266, incorporated herein by reference in its entirety).  
         [0010]     DG involves four basic steps: 1) generating the interatomic distance bounds, 2) assigning a random value to each distance within the respective bounds, 3) converting the resulting distance matrix into a starting set of Cartesian coordinates, and 4) refining the coordinates by minimizing distance constraint violations. To ensure that reasonable conformations are generated, the original upper and lower bounds are usually refined using an iterative triangular smoothing procedure. Although this process improves an initial guess, the randomly chosen distances may still be inconsistent with a valid 3-dimensional geometry, necessitating expensive metrization schemes (see, J. Kuszewski, et al.,  Journal of Biomolecular NMR  1992, 2, 33; T. F. Havel and M. E. Snow,  J. Mol. Biol.  1991, 217, 1; and T. F. Havel and K. Wüthrich,  Bull. Math. Biol.  1984, 46, 673, incorporated herein by reference in their entiretiesf), or higher dimensional embeddings (see, D. C. Spellmeyer, et al.,  J. Mol. Graphics Modell.  1997, 15, 18, incorporated herein by reference in its entirety), prior to error refinement.  
         [0011]     What is needed are methods, systems, and computer program products for generating low energy molecular conformations that overcome the limitations of conventional methods.  
       SUMMARY OF THE INVENTION  
       [0012]     The present invention is directed to methods, systems, and computer program products for generating molecular conformations. More particularly, the invention is directed to methods, systems, and computer program products for generating molecular conformations from interatomic distance and volume constraints.  
         [0013]     In accordance with the present invention, a stochastic proximity embedding (SPE) algorithm evaluates and minimizes violations of distance and volume constraints in a set of atoms that constitute a molecule, a fragment of a molecule, or a union of molecules or molecular fragments. The atoms may be real or abstracted (dummy atoms, ring centroids, functional groups such as hydrogen bond donors or acceptors, etc).  
         [0014]     The method includes: 
        (1) placing the set of atoms on a coordinate map;     (2) selecting a subset of atoms from the set of atoms, wherein the subset of atoms includes at least one associated constraint between the atoms in the subset;     (3) revising at least one coordinate of at least one atom from the selected subset of atoms on the map based on the at least one associated constraint when the at least one associated constraint is violated;     (4) repeating steps (2) and (3) for additional subsets of atoms from the set of atoms; and;     (5) outputting coordinates for the set of atoms.        
 
         [0020]     Additional features and advantages of the invention will be set forth in the description that follows. Yet further features and advantages will be apparent to a person skilled in the art based on the description set forth herein or may be learned by practice of the invention. The advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.  
         [0021]     It is to be understood that both the foregoing summary and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES  
       [0022]     The present invention will be described with reference to the accompanying drawings, wherein like reference numbers indicate identical or functionally similar elements. Also, the leftmost digit(s) of the reference numbers identify the drawings in which the associated elements are first introduced.  
         [0023]      FIG. 1A  illustrates a typical conformation of an adamantane molecule generated by SPE.  
         [0024]      FIG. 1B  illustrates a typical conformation of an adenine molecule generated by SPE.  
         [0025]      FIG. 1C  illustrates a typical conformation of a fullerene molecule generated by SPE.  
         [0026]      FIG. 2A  illustrates a comparison of sampling efficiency between SPE and RUBICON for cycloheptadecane.  
         [0027]      FIG. 2B  illustrates a comparison of sampling efficiency between SPE and RUBICON for raloxifene.  
         [0028]      FIG. 2C  illustrates a comparison of sampling efficiency between SPE and RUBICON for Gleevec™.  
         [0029]      FIG. 2D  illustrates a comparison of sampling efficiency between SPE and RUBICON for [Met 5 ]-enkephhalin.  
         [0030]      FIG. 3A  illustrates the chemical structure of raloxifene.  
         [0031]      FIG. 3B  illustrates the chemical structure of the free base of Gleevec™.  
         [0032]      FIG. 3C  illustrates a superimposition of the lowest energy structure discovered after minimization with the respective raw conformation produced by SPE for cycloheptadecane.  
         [0033]      FIG. 3D  illustrates a superimposition of the lowest energy structure discovered after minimization with the respective raw conformation produced by SPE for raloxifene.  
         [0034]      FIG. 3E  illustrates a superimposition of the lowest energy structure discovered after minimization with the respective raw conformation produced by SPE for Gleevec™.  
         [0035]      FIG. 3F  illustrates a superimposition of the lowest energy structure discovered after minimization with the respective raw conformation produced by SPE for [Met 5 ]-enkephalin.  
         [0036]      FIG. 4  is an example process flowchart  400  for implementing the SPE method.  
         [0037]      FIG. 5  is a block diagram of an example computer system on which the present invention can be implemented.  
         [0038]      FIG. 6  illustrates Table  1 , which illustrates a comparison of CPU times required for the present invention and a conventional method. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0039]     The present invention is directed to methods, systems, and computer program products for generating molecular conformations. More particularly, the invention is directed to methods, systems, and computer program products for generating molecular conformations from interatomic distance and volume constraints.  
         [0040]     A molecular conformation should satisfy a set of apparent constraints. The connectivity and common covalent bond lengths and angles require that the distance d ij  between any pair of atoms i and j fall between certain bounds, l ij ≦d ij ≦u ij . Experimental data such as NOE measurements and contextual chemical intuition, such as contact pairs in a ligand-protein complex, can supply further distance constraints. These are usually supplemented by a set of volume constraints that prevent the signed volume V ijkl  formed by four atoms i, j, k, l from exceeding certain limits. Volume constraints are used to enforce planarity of conjugate systems and correct chirality of stereocenters. The distance and volume constraints greatly reduce the number of accessible conformations to a molecule and the search space to be considered in conformational sampling.  
         [0041]     In accordance with the present invention, violations of distance and volume constraints are assessed by the following error function:  
       S   =         S   d     +     S   v       =         ∑     i   &lt;   j       ⁢           ⁢     f   ⁡     (       d   ij     ,     l   ij     ,     u   ij       )         +     α   ⁢       ∑   k     ⁢           ⁢       h   ⁡     (       V   k     ,     V   k   l     ,     V   k   u       )       .                 
 
         [0042]     The first sum gives the violation of the distance constraints, where  
           f   ⁡     (       d   ij     ,     l   ij     ,     u   ij       )       =           (         d   ij   2     -     l   ij   2         l   ij   2       )     2     ⁢           ⁢   if   ⁢           ⁢     d   ij       &lt;     l   ij         ,     
     ⁢       f   ⁡     (       d   ij     ,     l   ij     ,     u   ij       )       =           (         d   ij   2     -     u   ij   2         u   ij   2       )     2     ⁢           ⁢   if   ⁢           ⁢     d   ij       &gt;     u   ij         ,     
     ⁢   and       
         f   ⁡     (       d   ij     ,     l   ij     ,     u   ij       )       =     0   ⁢           ⁢     otherwise   .           
 
         [0043]     The second sum gives the violation of the volume constraints, where h(V k ,V k   l ,V k   u )=(V k −V k   l ) 2  if V k &lt;V k   l , h(V k ,V k   l ,V k   u )=(V k −V k   u ) 2  if V k &gt;V k   u , and h(V k , V k   l ,V k   u )=0 otherwise. α is a scaling factor used to balance the contributions to the total error from the distance and volume violations. Convention sets α=0.1. Minimizing the error function S with respect to the atomic coordinates generates conformations that satisfy the distance and volume constraints. Because there may be inconsistencies in the distance and/or volume constraints, it is often impossible to minimize S to 0.  
         [0044]     A self-organizing method for minimizing the distance violation, S d , is described and claimed in co-pending PCT application serial number (to be assigned—attorney docket number 1503.148PC01), titled, METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR REPRESENTING OBJECT RELATIONSHIPS IN A MULTIDIMENSIONAL SPACE, filed in the United States receiving office on Jun. 12, 2003. The method, referred to herein as stochastic proximity embedding (SPE), repeatedly selects a random pair of points (atoms) and moves their positions in the direction that minimizes the individual error function ƒ(d ij , l ij , u ij ). SPE has been shown to rapidly and reliably minimize the total distance error function S d .  
         [0045]     We conjecture that the method succeeds for the following reason. Suppose that all the distance constraints can be satisfied simultaneously. In that case, the global minimum of S d  is min(S d )=0, which is only achieved when all individual ƒ(d ij , l ij , u ij )=0. Thus repeatedly bringing random individual ƒ(d ij , l ij , u ij ) toward their minimum results in the global minimum of S d . By virtue of continuity, the algorithm works even when the distance constraints have very small inconsistencies and cannot be satisfied simultaneously.  
         [0046]     In accordance with the present invention, SPE is applied to minimize the total error function S. The volume error function S v  is also comprised of a sum of individual contributions, and reaches the minimum min(S v )=0 when every individual h(V k , V k   l , V k   u )=0, provided that the constraints are consistent and can be satisfied simultaneously. Each individual h(V k , V k   l , V k   u ) involves four atoms. Similar to our procedure for minimizing S d , we randomly select a volume constraint k, and move the positions of the four atoms involved in the direction that minimizes the individual error h(V k ,V k   l ,V k   u ). An example method for implementing the invention, illustrated in  FIG. 4 , is now described.  
         [0047]     1. (Step  402 ) Randomly place the atoms in a box of appropriate size (e.g., initialize the atomic coordinates).  
         [0048]     2. (Step  404 ) Select a distance learning rate λ d , a volume learning rate λ v , and a relative frequency for enforcing distance and volume constraints, ν.  
         [0049]     3. (Step  406 ) With probability ν, do step ( 408 ); otherwise, do step ( 410 ).  
         [0050]     4. (Step  408 ) Randomly select a pair of atoms, i and j, and compute their distance d ij =∥x i −x j ∥. If l ij ≦d ij ≦u ij , leave the atomic positions unchanged. Otherwise, update the coordinates x i  and x j  by:  
         x   i     ←       x   i     +       λ   d     ⁢     1   2     ⁢         t   ij     -     ⅆ   ij           ⅆ   ij     ⁢     +   ɛ         ⁢     (       x   i     -     x   j       )             
     and     
         x   j     ←       x   j     +       λ   d     ⁢     1   2     ⁢         t   ij     -     ⅆ   ij           ⅆ   ij     ⁢     +   ɛ         ⁢     (       x   j     -     x   i       )             
 
 where t ij  is the nearest bound to d ij  (i.e., t ij =l ij  if d ij &lt;l ij , or t ij =u ij  if d ij &gt;u ij , and ε is a small number used to avoid division by zero. 
 
         [0051]     5. (Step  410 ) Randomly select a volume constraint k, and the four atoms involved, p, q, s, t. Compute the signed volume V pqst  formed by the four atoms. If V k   l &lt;V pqst &lt;V k   l , leave the atom positions unchanged. Otherwise, compute the gradient of the signed volume with respect to the atomic positions, g μ =∇ μ V pqst , where μ=p, q, s, t, and update the atomic coordinates by:  
         x   μ     ←       x   μ     +         λ   v     ⁡     (       V   k   0     -     V   pqst       )       ⁢       g   μ         ∑       β   =   p     ,   q   ,   s   ,   t       ⁢            g   μ          2                 
 
 where V k   0  is the nearest bound to V pqst  (i.e., V k   0 =V k   l  if V pqst &lt;V k   l , or V k   0 =V k   u  if V pqst &gt;V k   u . 
 
         [0052]     6. (Step  412 ) Repeat steps ( 406 ) through ( 410 ) for a prescribed number of steps, S.  
         [0053]     7. (Step  414 ) Decrease the learning rates λ d  and λ v  by prescribed decrements δλ d  and δλ v .  
         [0054]     8. (Step  418 ) Repeat steps ( 406 ) through ( 414 ) for a prescribed number of cycles, C.  
         [0055]     A reasonable set of parameters for the method is: λ d =λ v =1.0, C=50, δλ d =δλ d =0.9/C, S=50×N, and  
         v   =     max   ⁢           ⁢     (     0.5   ,     1   -     8.0   ×          V              N   ⁡     (     N   +   1     )       /   2     +        V                  )         ,       
 
 where N is the number of atoms in the molecule, and ∥V∥ is the total number of volume constraints. Alternative parameters may also be used. 
 
         [0056]     When applied to rigid molecules, the method always finds the correct conformation. For example,  FIGS. 1A through 1C  illustrate typical conformations of rigid molecules generated by SPE. More particularly,  FIG. 1A  illustrates a typical conformation of an adamantane molecule.  FIG. 1B  illustrates a typical conformation of an adenine molecule.  FIG. 1C  illustrates a typical conformation of a fullerene molecule.  
         [0057]     SPE succeeds in generating good conformations because it capitalizes on the redundancy of the distance matrix and the cooperative nature of the atomic refinements—moving one pair of atoms towards satisfying their distance constraints simultaneously improves many other distances involving these atoms.  
         [0058]     For flexible molecules, the global minimum is usually unknown. The merits of the invention can, however, be assessed by comparison to another method. As an example, four well-known molecules were examined—cycloheptadecane, raloxifene, the free base of Gleevec™ (imatinib mesylate), and [Met 5 ]-enkephalin (sequence YGGFM)—and the conformations generated by SPE were compared to those generated by the widely used RUBICON DG program (Daylight Chemical Information Systems, www.daylight.com). To ensure statistical significance, 10,000 different conformations were generated by each program using an identical set of rules. Because RUBICON rejects conformations with large constraint violations, it generated only 8086 conformations for raloxifene, 9669 conformations for Gleevec™, and 8034 conformations for [Met 5 ]-enkephalin. The chirality of the D-amino acids in each conformation of [Met 5 ]-enkephalin was checked and no violation was found for either method.  
         [0059]     The comparison was based on several criteria: the speed of generating the initial conformations, the coverage of energetically favorable conformations, the rate of discovering distinct conformations, and the lowest energy obtained during the entire search. Since the geometries obtained by DG are rather crude by energy standards, the conformations generated by the two methods were locally minimized using the Merck Molecular Force Field (MMFF94) prior to the comparison. (See, T. A. Halgren,  J. Comput. Chem.  1996, 17, 616; T. A. Halgren,  J. Comput. Chem.  1996, 17, 490; T. A. Halgren,  J. Comput. Chem.  1996, 17, 520; T. A. Halgren,  J. Comput. Chem.  1996, 17, 553; and T. A. Halgren and R. B. Nachbar,  J. Comput. Chem.  1996, 17, 587, all of which are incorporated herein by reference in their entireties).  
         [0060]     A method should be fast, should generate more conformations that minimize to unique low energy structures, and should quickly identify the global minimum. Benefits of SPE are now described with reference to Table 1 and  FIGS. 2A through 2D .  
         [0061]     Table 1 in  FIG. 6 , illustrates the raw CPU time t method  required to generate one conformation by the specified method (SPE or RUBICON), the number of distinct conformations n d   method  discovered within 10,000 trials, and the lowest energy minimum E min   method  for each molecule found by that method. t method  is computed by dividing the total CPU time by the number of trial conformations, and does not include energy minization. Two conformations were considered distinct if, after local energy minimization, they differ by an RMSD larger than 0.05 Å.  
         [0062]      FIGS. 2A through 2D  illustrate a comparison of sampling efficiency between SPE and RUBICON. More particularly,  FIG. 2A  illustrates a comparison of sampling efficiency between SPE and RUBICON for cycloheptadecane.  FIG. 2B  illustrates a comparison of sampling efficiency between SPE and RUBICON for raloxifene.  FIG. 2C  illustrates a comparison of sampling efficiency between SPE and RUBICON for Gleevec™.  FIG. 2D  illustrates a comparison of sampling efficiency between SPE and RUBICON for [Met 5 ]-enkephhalin.  
         [0063]     In  FIGS. 2A through 2D , the solid lines show the minimum and maximum energy (E min  and E max  discovered by the two methods after a number of trials, with the energy values indicated by the left ordinate of each plot (thick lines for SPE, thin lines for RUBICON). The bar graphs show the number of distinct conformations N C  found by each method after a number of trials (SPE on the left, RUBICON on the right), with the numbers listed on the right ordinate of each plot. Since usually only the energetically favorable conformations are of chemical interest, only the conformations whose minimized energies are within 10.0 kcal·mol −1  from the global minimum are included. Each bar is further divided into 20 segments that represent non-overlapping energy intervals of 0.5 kcal·mol −1  from the global minimum to 10.0 kcal·mol −1  above, and whose corresponding energy values are indicated by the color map to the right of each plot. The length of each segment shows the number of distinct conformations whose minimized energies fall within the corresponding energy interval.  
         [0064]     As illustrated in Table 1 and  FIGS. 2A through 2D , SPE outperforms RUBICON on all counts. Indeed, SPE was up to an order of magnitude faster in generating the raw conformations, and these consistently minimized to more distinct conformations in all four cases (two conformations were considered distinct if the corresponding minimized structures differed by more than 0.05 Å in RMSD). For raloxifene, Gleevec™, and [Met 5 ]-enkephalin, the difference was even more pronounced in the low energy region, as manifested by the significantly longer segments of blue color for SPE than RUBICON in the bar graphs in  FIGS. 2A through 2D .  
         [0065]     For example, for [Met 5 ]-enkephalin, SPE discovered 69 distinct conformations with minimized energy within 5.0 kcal·mol −1  above the lowest energy minimum, whereas RUBICON discovered only 9. SPE was also superior in locating the lowest energy structure—both methods found the same global energy minima for cycloheptadecane and raloxifene, but RUBICON failed to find the lowest energy minima of Gleevec™ and [Met 5 ]-enkephalin discovered by SPE. In addition, SPE finds the global minimum in a smaller or comparable number of trials. The lowest energy structures discovered after minimization superimposed with the respective raw conformations produced by SPE are shown in  FIGS. 3A through 3F .  
         [0066]      FIG. 3A  illustrates the chemical structure of raloxifene.  FIG. 3B  illustrates the free base of Gleevec™.  
         [0067]      FIGS. 3C through 3F  illustrate superimpositions of the lowest energy structures discovered after local minimization (blue) with the respective raw conformations produced by SPE (red). The corresponding RMSDs are shown in the parentheses. More specifically,  FIG. 3C  illustrates cycloheptadecane.  FIG. 3D  illustrates raloxifene.  FIG. 3E  illustrates Gleevec™.  FIG. 3F  illustrates [Met5]-enkephalin.  
         [0068]     Although the specific details of the comparison may differ depending on the energy function employed, the raw speed and the diversity of the conformations that SPE generates should remain.  
         [0069]     The present invention can be implemented in one or more computer systems capable of carrying out the functionality described herein. For example, and without limitation, the process flowchart  400 , or portions thereof, can be implemented in a computer system.  
         [0070]      FIG. 5  illustrates an example computer system  500 . Various software embodiments are described in terms of this example computer system  500 . After reading this description, it will be apparent to a person skilled in the relevant art(s) how to implement the invention using other computer systems and/or computer architectures.  
         [0071]     The example computer system  500  includes one or more processors  504 . Processor  504  is connected to a communication infrastructure  502 .  
         [0072]     Computer system  500  also includes a main memory  508 , preferably random access memory (RAM).  
         [0073]     Computer system  500  can also include a secondary memory  510 , which can include, for example, a hard disk drive  512  and/or a removable storage drive  514 , which can be a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. Removable storage drive  514  reads from and/or writes to a removable storage unit  518  in a well known manner. Removable storage unit  518 , represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive  514 . Removable storage unit  518  includes a computer usable storage medium having stored therein computer software and/or data.  
         [0074]     In alternative embodiments, secondary memory  510  can include other devices that allow computer programs or other instructions to be loaded into computer system  500 . Such devices can include, for example, a removable storage unit  522  and an interface  520 . Examples of such can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units  522  and interfaces  520  that allow software and data to be transferred from the removable storage unit  522  to computer system  500 .  
         [0075]     Computer system  500  can also include a communications interface  524 , which allows software and data to be transferred between computer system  500  and external devices. Examples of communications interface  524  include, but are not limited to a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface  524  are in the form of signals  528 , which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface  524 . These signals  528  are provided to communications interface  524  via a signal path  526 . Signal path  526  carries signals  528  and can be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.  
         [0076]     In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as removable storage unit  518 , a hard disk installed in hard disk drive  512 , and signals  528 . These computer program products are means for providing software to computer system  500 .  
         [0077]     Computer programs (also called computer control logic) are stored in main memory  508  and/or secondary memory  510 . Computer programs can also be received via communications interface  524 . Such computer programs, when executed, enable the computer system  500  to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor(s)  504  to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system  500 .  
         [0078]     In an embodiment where the invention is implemented using software, the software can be stored in a computer program product and loaded into computer system  500  using removable storage drive  514 , hard disk drive  512  or communications interface  524 . The control logic (software), when executed by the processor(s)  504 , causes the processor(s)  504  to perform the functions of the invention as described herein.  
         [0079]     In another embodiment, the invention is implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s).  
         [0080]     In yet another embodiment, the invention is implemented using a combination of both hardware and software.  
       CONCLUSION  
       [0081]     The present invention has been described above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Any such alternate boundaries are thus within the scope and spirit of the claimed invention. One skilled in the art will recognize that these functional building blocks can be implemented by discrete components, application specific integrated circuits, processors executing appropriate software and the like and combinations thereof.  
         [0082]     While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.