Abstract:
The method of the present invention aligns a set of N sequences, where N is large. The alignment brings out the best commonality of the N sequences. The method is performed in two stages. A first stage involving discovering motifs, and a second stage involve motif pruning and sequence alignment. The present invention also provides an additional constraint, K, as a user defined control parameter. The additional parameter constrains the alignment of the N sequences to have at least K of the N sequences agree on a character, whenever possible, in the alignment. The alignment number, K, provides a natural constraint for dealing with a large number of sequences in that a commonality across most, if not all sequences is required to be detected.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application claims priority to Provisional U.S. Patent Application No. 60/062,306, filed Oct. 17, 1997 by A. Floratos and I. Rigoutsos, herein incorporated by reference in its entirety. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to the field of aligning data sequences, and, more specifically, to a method and system for aligning multiple data sequences to achieve the best commonality of the sequences. 
     2. Discussion of the Prior Art 
     The problem of aligning a large number of sequences appears very often and in many different application areas (e.g. biology, data mining in databases, computer security etc.). It has been observed that most traditional methods of aligning multiple sequences do not work well on large number of sequences on the order of N&gt;10. 
     The multiple sequence alignment problem has been studied for at least the last fifteen years, in the context of Computational Biology, it is well known that this is a rather difficult problem. Contributing to the difficulty in solving the problem is that in its most general form, it is difficult to model to the satisfaction of Evolutionary Biologists, Geneticists and other users. The most popular and successful approach to date has been a dynamic programming technique using different mechanisms of scores that is a function of the edit distance along with gap penalties to evaluate the similarity of the different sequences. Dynamic programming relies on identifying good penalty scores for matches and mis-matches. This is difficult to realize in real-world applications. The method is best suited to small sequence numbers on the order of N&lt;6. 
     For the situation where there are more than two sequences to be aligned, one of the prior art approaches has been to perform a pairwise alignment where two of the N sequences are analyzed at a time and an N-wise alignment is built from the pairwise alignments. This approach works well for small values of N on the order of N&lt;6, however, for large values of N additional constraints are required to give meaningful alignments. 
     It is apparent that the problem of aligning multiple sequences where the number of sequences is large is computationally a very demanding one. 
     SUMMARY OF THE INVENTION 
     The problems stated above and the related problems of the prior art are solved with the method and system according to the present invention. A method is provided that is specifically suited to aligning a large number of sequences, on the order of N&gt;10, simultaneously, that brings out the best commonality of the N-sequences. The method is built on top of an existing method for identifying or discovering motifs in sequences. A motif can be informally defined as a repeated pattern that appears in two or more input sequences. The method uses some, if not all, of these identified motifs to give a good alignment. The present invention also provides an additional constraint, K, as a user defined control parameter. The additional parameter constrains the alignment of the N sequences to have at least K of the N sequences agree on a character, whenever possible, in the alignment. The alignment number, K, provides a natural constraint for dealing with a large number of sequences in that a commonality across most, if not all sequences is required to be detected. 
     Given a set of N input character sequences, the present invention aligns the N sequences in a way that brings out the best commonality of the N character sequences. At a motif discovery stage, the method of the present invention first identifies any motifs which may exist in the input sequences. At a pruning and alignment stage, the method detects one or more infeasible sets from the motifs identified at the motif discovery stage. Each infeasible set is comprised of a subset of those identified motifs which preclude an alignment which brings out the best commonality. Once identified, one or more motifs from the infeasible sets are removed (“pruned”), from consideration when aligning the sequences at an alignment stage. The remaining motifs comprise a feasible set which is then used to align or render the sequences to maximize a pre-specified cost function. 
     The sequence alignment method of the present invention is advantageous for the following reasons; 1) The approach is efficient, particularly on large numbers of long sequences, 2) a direct N-wise alignment is achieved by not composing the alignments from lower order (pairwise) alignments as practiced in the prior art, 3) the approach is adaptable to underlying biological or other models, using the idea of in-exact motif, 4) it allows for easy user intervention and specification in terms of which motif the user must have in the alignments, 5) it gives various alternate solutions, if required, to the user based on different configurations that the user wants to see rather than give a cost value which the user may or may not be able to relate to, 6) the resulting alignment is independent of the order of the input sequences. 
     The invention and its operation will become more apparent from the following description of an exemplary embodiment and from the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1 a &amp; b  show a directed graph and associated input sequence and corresponding identified motifs from which the graph is derived. 
     FIG. 2 is a directed graph that illustrates an infeasible set of the second type,closed cycle. 
     FIG. 3 is a directed graph that illustrates an infeasible set of the third type, closed path inconsistency. 
     FIG. 4 is a flow diagram for a two-path comparison to identify a closed path inconsistency. 
     FIG. 5 Experimental results that illustrate the method of the present invention as applied to biological data. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The subject invention will be described with reference to numerous details set forth below and the accompanying drawings which illustrate the invention. The following description is illustrative of the invention and is not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of the present invention. It will be apparent, however, to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, certain well known or conventional details are not described to preclude obscuring the present invention in detail. 
     The method of the present invention may be implemented as a computer program readable by a general purpose computer for executing computer instructions directed to aligning multiple sequences to bring out the best commonality of the sequences. 
     Overview 
     To better appreciate the sequence alignment method of the present invention, an illustrative example is provided: 
     Generally, a sequence is a string of characters taken from a finite character set or alphabet. As an arbitrary example, the following sequences could have arose from the English alphabet. 
     sequence 1: W  A B C  G Z T V  A Q C  B H N G Z T 
     sequence 2:  A P C  G Z E  A T C  T V B H N W  A B C  Z A Y 
     sequence 3: U I W D V P L H R Q Z S D 
     A pattern is a specific set of characters of any length from an alphabet where the pattern has a particular spatial arrangement. An example of such a pattern from sequence 1 above would be “G Z T”, or from sequence 2, “V B H”. Any combination of consecutive letters from any of the sequences would constitute a valid pattern. Patterns may also contain “don&#39;t care” characters such as “A . C”, where the dots are used to indicate that the respective position could be occupied by “any” character (don&#39;t care character). Any character which is not a don&#39;t care character, such as “A” and “C” in the pattern, is referred to as a solid character. 
     As previously stated, the present invention is partially directed to the process of motif discovery or identification. As defined in the prior art, a motif is a repeated pattern that appears more than once in a sequence. For the example provided, the pattern “G Z T” qualifies as a motif in sequence 1 above under the prior art definition. In the context of the present application, however, a motif is defined as a pattern that appears in two or more sequences. Under the present definition the pattern “A . C” qualifies as a motif in the example above because it appears in at least two sequences, the first and the second. 
     The sequence alignment method of the present invention solves the following problem. 
     Problem: 
     Given a set N of sequences each of length n 1 , n 2 , . . . , n N  on any alphabet set, and an alignment number K, where ((2&lt;=K&lt;=N), as input, align the N sequences in such a way that brings out the best commonality of the N sequences, with the possible introduction of gaps. 
     The problem formulation as described can be more readily understood by considering each sequence as comprising a row of a matrix. Filler characters are provided wherever necessary to make row lengths equal. What is sought is an alignment of the matrix rows that maximizes a pre-specified cost function. In an exemplary embodiment, the cost function is defined as the number of columns in which a common character appears at least k times. Other cost functions may be realized by the method. 
     The sequence alignment method of the present invention proceeds in two stages: 1. motif discovery and 2. pruning and alignment. In the motif discovery stage, the set of input sequences, N, are searched to identify or discover any motifs which may exist in the N input sequences. During the pruning and sequence alignment stage a determination is made regarding whether all or some subset of the motifs discovered in the first stage can be used to align or render the N sequences. More particularly, it must be determined whether one or more identified motifs precludes bringing out the best commonality among the N sequences. If so, one or more offending motifs are pruned or removed from consideration when performing the alignment. Otherwise, if all the motifs are usable then an alignment is formed that utilizes or respects all the identified motifs. 
     1. Motif Discovery 
     The method of motif discovery used in the present invention is described in patent application Ser. No. 60/062,306, herein incorporated by reference in its entirety. During the motif discovery stage, motifs are identified or discovered from the N input sequences. A motif is defined in the present context as a pattern that appears in two or more sequences. In most instances a very large number of motifs will be identified. The present invention can accommodate this result at the expense of processing time. To alleviate this potential bottleneck, however, the method, in an alternate embodiment, may also search for only irredundant motifs. Irredundant motifs are a special sub-class of motifs, whose number is only quadratic in input size. A polynomial time algorithm may then be used to extract the irredundant motifs from the input thereby bounding the extraction time. 
     2. Pruning and Sequence Alignment 
     A pruning and sequence alignment stage follows the motif discovery stage. At this stage any “offending” motifs are identified and removed from consideration during sequence alignment. Offending motifs are defined as those motifs which preclude performing a sequence alignment which achieves the best commonality among the N sequences. Offending motifs are identified by the method as a consequence of performing three infeasibility tests. The three tests are; 1. a pairwise compatibility test, 2. a smallest cycles test, and 3. a closed path with inconsistencies test. Each will be described in detail. For each of the three tests, one or more offending motifs may be identified. Each group of identified offending motifs is said to form an infeasible set. Therefore, the infeasible sets, when found, comprise one or more offending motifs which violate the respective infeasibility test. 
     2.1 Pairwise Compatibility Test (Determination of the 1st Infeasible Set) 
     The first infeasible set is comprised of those offending motifs which fail the test for pairwise compatibility. Those offending motifs are identified in pairs and are therefore defined as pairwise incompatible or forbidden pairs. The pairwise compatibility test will be performed for only those motifs, identified at stage 1, which occur simultaneously in at least one input sequence. The pairwise compatibility test is comprised of two sub-tests 1) a domain crossing mismatch test, and 2) an overlap mismatch test. Each test will be explained by way of example. 
     With specific reference to the first test, domain crossing mismatch, assume the following sequences are input to the process; 
     Sequence 1: “ A B C D E ” 
     Sequence 2: “ D E A B C ” 
     Two motifs are identified from sequences one and two, they are “A B C”, and “D E”. By virtue of the relative positions of the two motifs in the respective sequences it is apparent that there is no feasible sequence alignment of sequence one and two that will permit the simultaneous alignment of the two motifs. This incompatibilty arises as a consequence of the juxtaposition of the two motifs in the respective sequences. As a consequence, the motif pair fails the domain crossing mismatch test. Failing the first sub-test of the two-part pairwise incompatibility test is sufficient to declare the motif pair incompatible and removes the necessity of performing the second sub-test. 
     The second test, overlap mismatch, is also illustrated by example. Given the two sequences, 
     Sequence 1: “A B C E E” 
     Sequence 2: “A C E E F”, 
     two motifs are identified. They are “A . . E”, where the dots indicate don&#39;t care characters and “C E E”. It is apparent that no alignment of the two sequences will respect the simultaneous alignment of the two motifs because alignment of one motif requires a linear translation of one sequence such that alignment of the other motif is prevented. When that situation occurs an overlap mismatch between the two motifs exists. From the pairwise incompatibility test a first infeasible set is generated, assuming there is at least one pair of motifs which violate the test. 
     Graph Construction 
     A directed graph is then constructed. Directed graphs are well known in the art, example of such graphs may be found in chapter 23 of Introduction to Algorithms by T. H. Cormen, C. E. Leiserson, and R. L. Rivest, herein incorporated by reference. The vertices of the directed graph correspond to the motifs discovered at the first stage, motif discovery. That is, each vertex in the graph will correspond to one of the discovered motifs. Further, a directed edge will connect two vertices (motifs) in the graph only when there exists at least one input sequence in which the corresponding motifs occur together. Stated in the alternative, if two motifs do not appear together in any of the N input sequences, no directed edge will connect their associated vertices in the graph. Directed edges are defined in the graph by an arrow which points to one of the two vertices it connects. For example, for motifs A and B, their connectivity in the graph may be represented as; 
     Vertex A (Motif A)→Vertex B (Motif B) 
     The directionality of the directed edge indicates that motif A is to the left of motif B in the input sequence list. For those motif pairs which fail the pairwise compatibility test, however, no left/right designation is possible, for reasons stated above, and as a consequence the directed edge will be labeled as a “forbidden pair” with no arrow designation. For all other motif pairs in the graph having an associated directed edge, that directed edge will be labeled as either overlap or non-overlap. An edge will be labeled overlap whenever any instance of the two motifs overlap in any one of the N input sequences. For example, motifs “A B . D” and “C D E” overlap in the sequence 1 below but not in sequence 2. 
     Sequence 1=“A B C D E” 
     Sequence 2=“A B X D Y G H C D E” 
     Note that irrespective of whether the directed edge is labeled overlap or non-overlap, the motifs associated with that edge are pairwise compatible. Only those edges labeled “forbidden pair” have associated motifs which are pairwise incompatible. 
     Referring now to FIGS. 1 a  and  1   b , a directed graph  7  is illustrated in FIG. 1 a . The graph  7  is constructed from an input sequence list  8 , illustrated in FIG. 1 b , having three input sequences 8, N=3, and five identified motifs  9 . 
     Each identified motif  9  corresponds to a respective vertex in the directed graph  7  as illustrated in FIG. 1 a . Directed edges DE  20 - 38  are illustrated and serve to connect the identified motifs  9 . The arrow  13  associated with each directed edge indicates that the motif associated with the vertex being pointed to by the arrow  13  occurs to the right of the motif whose vertex is located on the opposite side of the directed edge. For example, directed edge  20  with associated arrow  13  indicates that the directionality of the edge is from vertex  10  to  12 . The directionality specifies that motif (vertex)  10  is located to the left of motif (vertex)  12  in the sequence list  8 . In addition to the directionality associated with each edge, additional labeling is illustrated. Most edges in the graph have a dual identification with the first identifier characterizing the respective motifs as “forbidden pair”, “overlap”, or “non-overlap”, and a second identifier describing a distance metric, shown in brackets  15  in the directed graph  7 . The distance metric is a positive integer which is a measure of the minimum separation distance in the input sequence list  8  between the two motifs (vertices) connected by the directed edge. The separation distance is measured from the first character in each measured motif string. The computation of the distance metric for a directed edge is best illustrated by example. 
     Assume, for example, a directed edge connects two vertices (motifs); “A B C” and “D E”. Further assume that the two motifs were identified from the following input sequences; 
     
       
         
               
             
               
               
               
             
               
             
           
               
                   
               
             
             
               
                 - - - -&gt;  +5  &lt;- - - - 
               
             
          
           
               
                   
                 Sequence 1 = 
                 “ A B C  X X  D E ” 
               
               
                   
                 Sequence 2 = 
                 “ A B C  X X X  D E ” 
               
             
          
           
               
                 - - - -&gt;  +6  &lt;- - - - 
               
               
                   
               
             
          
         
       
     
     As illustrated, the distance, measured from the first character in each string, between the first motif, “A B C”, and the second motif, “D E”, is +5 in the first sequence and +6 in the second sequence. The distance metric that would be assigned to the directed edge in the graph would be the minimum of the two distances , (i.e. +5=min(+5,+6)), in the example shown. 
     Directed edge  20  in the graph  7  is exemplary of the dual labeling associated with a directed edge not labeled as a “forbidden pair”. Directed edge  20  is labeled “overlap (2)” indicating that the two motifs overlap each other in the sequence list 8 with a distance metric measure of +2. A distance metric will be computed for each directed edge in the graph not labeled “forbidden pair”. A distance metric is neither required, nor logically assignable to edges labeled “forbidden pair”. Directed edges DE  22 , DE  24 , and DE  28 - 38  are each assigned a non-overlap label, with only edge  36  being explicitly illustrated for purposes of clarity of presentation. 
     The following pseudo-code generally describes the construction and labeling of directed edges between vertices (motifs) in the directed graph. 
     For every motif p i , do 
     For every motif p j , not equal to p i , do 
     Does there exist a sequence in which both p i  and p j  occur 
     No: No directed edge exists between p i  and p j    
     Yes: Are motifs p i  and p j  pairwise compatible? 
     No: Assign label forbidden to edge v i  v j    
     Yes: Do motifs p i  and p j  overlap? 
     Yes: Assign label overlap to edge v i  v j    
     No: Assign label non-overlap to edge v i  v j    
     Once a directed graph is constructed the method performs the second and third tests for infeasiblity. The second and third tests for infeasibility are distinguishable from the first test in that the first test is directed to identifying offending pairs of motifs. The second and third tests are both directed to identifying groups of three or more offending motifs. 
     2.2 Smallest Cycles Test (Determination of the 2nd Infeasible Set) 
     The second test for infeasibility will now be explained. The second test is directed to finding smallest cycles in the graph. A smallest cycle constitutes a closed loop in the graph wherein a closed loop is defined as any path that originates at some starting vertex and follows a path through at least two additional distinct vertices and returns to the starting vertex. Closed loops are distinguishable from closed paths which will be defined with reference to the third test for infeasibility, closed path inconsistencies. 
     Referring now to FIG. 2, an example of a cycle (closed loop) is illustrated. In FIG. 2, a directed graph is shown comprising five vertices, V 1   40 , V 2   42 , V 3   44 , V 4   46 , and V 5   48  and six directed edges DE  50 , DE  52 , DE  54 , DE  56 , DE  58 , and DE  60 . Each vertex corresponds to a motif identified at stage one, motif discovery. A cycle is illustrated in FIG. 2 by following the path defined by directed edges DE  50 , DE  52 , and DE  54 . The directed edges lead from a starting vertex, V 2   42  to one or more intermediate vertices, defined by V 3   44  and V 4   46  in FIG. 2, and back to the start vertex V 2   42 . By contrast, the path defined by directed edges DE  60 , DE  58 , and DE  56  do not define a cycle or closed loop because starting at any node, the directed edges do not eventually lead back to a start node. If, however, in the directionality of the directed edge DE  56  were reversed then a closed cycle would exist for edges DE  60 , DE  58  and DE  56 . 
     The method identifies any potential closed loops or cycles in the graph by performing a depth first search. Depth first searches are well known in the art and the method steps for performing the search is well documented in the literature, an example of which can be found in chapter 23 of  Introduction to Algorithms , herein incorporated by reference in its entirety. 
     As the depth first search is being performed, any offending motifs which violate the second test for infeasibility (closed loops) are identified and grouped into an infeasible set of the second type (closed loops). 
     2.3 Closed Path with Inconsistencies Test (Determination of the 3rd Infeasible Set) 
     The third test for infeasibility will now be explained. The third test is directed to finding all closed paths with inconsistencies in the graph. A closed path may be generally defined as two or more distinct paths having a common origin and destination vertex. An inconsistent closed path may then be defined as an identified closed path which violates the closed path infeasibility test. The details associated with the infeasibility test for closed paths will be described in detail later. 
     Referring to FIG. 3, a directed graph illustrating an inconsistent closed path is shown. The graph is comprised of four vertices; V 1   62 , V 2   64 , V 3   66 , and V 4   68  and four directed edges DE  70 , DE  72 , DE  74 , and DE  76 . The graph illustrates two paths P 1  and P 2  starting from vertex V 1   62  and terminating at vertex V 3   66 . Path P 1  is defined by directed edges DE  70  and DE  72 , and path P 2  is defined by edges DE  76  and DE  74 . 
     The present invention identifies all closed paths in the graph by performing a breadth first search. A breadth first search is performed for each vertex in the graph. That is, for the four vertices illustrated in FIG. 3, four separate breadth first searches will be performed utilizing one of the four vertices as the start vertex in each iteration. Breadth first searches are well known in the art and the method steps for performing the search is well documented in the literature, an example of which can be found in chapter 23 of  Introduction to Algorithms , herein incorporated by reference in its entirety. The objective of the algorithm, simply stated, is given a graph and a distinguished source vertex, a breadth first search systematically explores the edges of the graph to discover every vertex that is reachable from the source vertex. 
     As the breadth first search is being performed to identify closed paths, the third test for infeasibility (closed path inconsistencies) is performed in parallel. That is, as the breadth first search is being executed, necessary vertex information is provided as input to the third test for infeasibility which is performed in parallel with the breadth first search. In particular, the third test receives information from the breadth first search concerning the identification of any closed paths. A closed path is identified whenever there exists two or more paths, p={1, . . . M}, from any source vertex V 1  in the graph to any destination vertex V 2 . (i.e. p=2 in FIG.  3 ). A path distance metric, pdm i , is computed for each path i as the sum of the distance metrics of each directed edge in the path, pdm i =dme 1 +dme 2 +dm i  . . . 
     Referring again to FIG. 3, a path distance metric would be computed for paths  1  and  2 . The path distance metric for path  1 , =pdm i +3, is computed as the sum of the distance metric for directed edge DE  70 , (dme 70 =+1) and the distance metric for directed edge DE  72  (dme 72 =+2). The path distance metric for path  2 , pdm 2 =+4. The path distance metric information, along with other data, is used by the infeasibility test for determining whether a closed path is inconsistent. In particular, for a closed path comprising a set S of paths p={1, . . . M}, each path p from the set S will be individually compared with every other path in the set S to determine whether the closed path is inconsistent. For example, assume that three paths, p={1,2,3}, are identified while performing the breadth first search, with a common start and destination vertex. The third test for infeasibility would first compare paths  1  and  2 . When path  3  is identified by the search algorithm, the infeasibility test would then compare paths  1  and  3  and  2  and  3 . If during any particular path comparison it is determined that the test is violated, no further comparisons are required and the motifs comprising the closed path are determined to be offending motifs of the third type (closed paths with inconsistencies). 
     Referring now to FIG. 4, the method steps illustrating the details of performing the third test of infeasiblity for two paths identified by the breadth first search algorithm is shown. At step  80 , two paths are identified by the breadth first search algorithm, P 1  and P 2 . At step  82 , a determination is made as to whether the first path, P 1 , is an overlap or a non-overlap path. At step  84 , a similar determination is made as to whether the second path, P 2 , is an overlap path or a non-overlap path. At decision step  86 , a determination is made as to whether both paths, P 1  and P 2 , are overlap paths. If both paths P 1  and P 2  are overlap paths a branch occurs to decision step  92  where a determination is made as to whether the path distance metrics for paths  1 , dp 1 , and  2 , dp 2 , are equal. If not, a branch occurs to step  94  where it is determined that the motifs comprising the closed path constitute an infeasible set. The process then terminates at step  96 . If, however, dp 1 =dp 2 , the distance metrics for paths  1  and  2  are found to be equal, then a branch occurs to step  93 . At step  93  it is determined that the motifs corresponding to the vertices in the closed path do not constitute an infeasible set. The process then terminates at step  96 . 
     At decision step  86 , if either path P 1  or P 2  is determined not to be an overlap path then a branch is taken to decision step  88 . At decision step  88  a determination is made as to whether the distance metric for the path determined to be the overlap path is greater than the distance metric for the path determined to be the non-overlap path. If true, a branch occurs to step  93 . Otherwise a branch occurs to step  94 . The process terminates at step  96 . 
     2.a Pruning Stage 
     Upon completing the test for the third type of infeasible set, closed path with inconsistencies, the three infeasible sets of offending motifs are completely determined. Having identified all of the offending motifs, the method of the present invention then prunes or removes at least one offending motif from each identified infeasible set to both allow the sequences to be aligned and to maximize a pre-specified cost function. In the exemplary embodiment, the cost function is defined as the sum of all the matching characters in the columns of the alignment in which at least K characters are identical. Other user defined cost functions include, but are not exclusive to; 1. the sum of the columns of the alignment in which at least K characters are identical, and, 2. retaining a maximum number of motifs for consideration at the alignment stage (i.e. pruning a minimum number of motifs). Other realizable cost functions may be considered by the method. 
     To maximize the cost function, as defined by the exemplary embodiment, defined as; 
     Cost Function: the sum of all the matching characters in the columns of the alignment in which at least K characters are identical to the method of the present invention utilizes a mathematical algorithm, defined in the prior art as the weighted set-covering algorithm, discussed at length in chapter 37 of Introduction to Algorithms, and herein incorporated by reference in its entirety. 
     Application of the weighted set-covering problem to the problem of removing offending motifs will now be explained by way of example. As was described, a number of offending motifs were identified and collected into one or more of the three infeasible sets. 
     1. Pairwise incompatible, 
     2. Closed cycles, and 
     3. Closed path with inconsistencies. 
     Assume the first test of infeasibility, forbidden pairs (pairwise compatibility), identified a single pair of offending motifs thereby generating a first infeasible set; 
     1st infeasible set: X={M 3 , M 4 } 
     Assume the second test of infeasibility, smallest cycles, identified three offending motifs thereby generating a second infeasible set; 
     2nd infeasible set: Y={M 1 , M 2 , M 7 } 
     Assume the third test of infeasibility, closed paths with inconsistencies, identified three offending motifs thereby generating a third infeasible set; 
     3rd infeasible set: Z={M 3 , M 5 , M 7 } 
     It is notable that the offending motifs which are the respective members of sets X, Y, and Z are not disjoint. That is, motifs M 3  and M 7  in the example provided, appear in two of the three categories. In general, a motif may appear in one, two, or all three of the sets. 
     Application of the weighted set covering problem to the method of the present invention in the context of the present example is as follows. From the three identified infeasible sets X, Y, and Z, derived as a result of performing the infeasibility tests, a union set A is formed where A={X, Y, Z}. In addition to defining union set A, sets B m1  through B m7  are defined, indicating which infeasible set(s) each offending motif, M 1 -M 7 , belongs to. For example, set B m1  describes that motif M 1  is a member of only infeasible set Y, smallest cycles. 
     B m1 ={Y} 
     B m2 ={Y} 
     B m3 ={X, Z} 
     B m4 ={Z} 
     B m5 ={X} 
     B m7 ={Y, X} 
     As a further example, B m3 ={X, Z} indicates that offending motif M 5  is a member of both the first and third infeasible sets, forbidden pairs and closed paths with inconsistencies. 
     In terms of an unweighted set-covering problem solution, the objective of the present method is to find a minimum number of B sets that covers A. That is, what combination B sets will completely characterize set A where A is the set defined as the union of X, Y, and Z. For the present example, one possible solution is the combination of B sets {B m2  and B m3 } where B m2  defines Y and B m3  defines X and Z. Other possible solutions include {B m7  and B m} }, or {B m1  and B m3 }. These and other solutions are realizable from the example above. 
     Any of the above solutions would satisfy the unweighted set-covering problem. To satisfy the weighted set-covering problem, however, removing B sets requires additional considerations. In particular, the weighted set-covering problem associates a weight with each identified B set. Furthermore, the weight is computed differently, depending upon the particular pre-specified cost function that is to be maximized. For the cost function defined by the exemplary embodiment the weight is computed as a multiplication of the number of solid characters of the motif represented by that B set multiplied by the number of sequences in which it appears. For example if motif M 2  of set B m2  was “A B . D”, the number of solid characters in the motif is three. If motif M 2  appeared in two of the N input sequences then the weight associated with B m2  would be 3*2=6. A weight value is similarly calculated for all identified B sets. 
     Having determined weights for each of the B sets, maximizing the pre-specified cost function of the exemplary embodiment then involves removing, or pruning, those B sets from consideration in the alignment stage which minimize the collective weight. For example, three possible solutions were explicitly defined for the present example, additional solutions are identifiable but not cited for the sake of clarity: 
     1. {B m2  and B m3)  with associated weight w1 
     2. (B m1  and B m3)  with associated weight w2 
     3. {B m4  and B m1)  with associated weight w3 
     The selected solution, however, would be selected as the one whose associated weight is minimum, min(w1,w2,w3). 
     3.b Alignment Stage 
     At the alignment stage, once the offending motifs (B sets) are removed from consideration in accordance with the weighted set-covering method, the N input sequences may then be aligned without conflict. For those offending motifs which are removed from further consideration their associated vertices in the graph will be pruned leaving only feasible vertices (motifs). The resulting directed graph is then used to determine step  1  defined below. 
     To render an alignment of the N sequences, each sequence is individually analyzed to determine two things; 1. the relative positions of any feasible motif contained in that sequence, and 2. the filler positions, where a filler position is a position in the sequence not occupied by a feasible motif. Knowing the motif and filler positions, each sequence is then aligned with every other sequence such that the feasible motifs are properly aligned. Fillers or gaps may be necessary to achieve the final alignment. 
     The alignment procedure described is further explained by way of example. Assume two sequences, N=2, are input to the method, described as; 
     Sequence 1: a b c d e f g h i j k l 
     Sequence 2: c d e x y z p q r g h i t u 
     Further assume that after the pruning stage, the feasible motifs (vertices) comprise “c d e” and “g h i”. The relative position of Motif “c d e” in sequences 1 and 2 is determined to occupy positions 3-5 in sequence 1 and positions 1-3 in sequence 2. Similarly the relative position of motif “g h i” occupies position 7-9 in sequence 1 and 10-12 in sequence 2. The relative position of the fillers may then be determined. Fillers occupy positions 1-2, 6, 10-12 in sequence 1 and 4-9, and 13-14 in sequence 2. With that information fillers or gaps are appropriately inserted to align the two sequences as shown; 
     Sequence 1: a b c d e f . . . g h i j k l 
     Sequence 2: c d e x y z p q r g h i t u 
     Note that the two sequences align without conflict as a consequence of each of the respective motifs being feasible. 
     Referring now to FIG. 5, a sample of some experimental results for the method of the present invention are illustrated. The experimental results pertain to the alignment of a large number of sequences with biological relevance. The input sequences are not shown. In FIG. 5, uppercase letters depict aligned characters and lowercase letters are portions of the input sequence that the method has not taken into account. The dots (‘ . ’) represent don&#39;t cares and the dashes represent the gaps enforced by the algorithm. Furthermore, some portions of the input have been removed to avoid clutter in the figure. 
     Results are illustrated on three sets of data: the first set is on a highly similar data set (histones) and the second set is on a fairly dissimilar (cytosine-specific DNA methylases list in PROSITE database (Release  13  entry accession #PS00094) data set, and a set of plant hemoglobins (listed in the PROSITE database Release  13  entry accession #PS00208). The first data set has 20 protein sequences of about 200 residues each with an alignment number K=10. The size of the resulting fensible set of motifs was found to be 22 for a maximal motif size of N=648. The second has 46 protein sequences with lengths going up to 500 residues, with an alignment number of K=18. The size of the resulting set of motifs was found to be 132 for a maximal motif size of N=810. A third set has 21 sequences with about 150 residues each, with an alignment number of K=14. A resulting compatible set of 42 motifs were identified from N=873 non-redundant motifs. 
     With particular reference to the first set of data, the method successfully identifies COREHISTONE-3 FOLDS. These folds represent sub-structures contained within the proteins. With reference to the second set of data, the alignment identifies the blocks that correspond well to the consensus blocks for the protein as identified in BLOCKS entry number BL0094 of BLOCKS database. With reference to the third set of data, the method identifies the known secondary structures (HELICES) present in the globin family members. 
     In the examples, some of the sequences have been truncated in the alignment and the output runs across multiple pages due to the size. 
     As will be obvious to those skilled in the art, the present invention can be practiced with a wide variety of modifications and variations, and is not limited except as specified in the accompanying claims.