Anchored alignment and parallel computation of sub-alignments for pair-wise sequence comparison. (a) Un-constrained alignment: an optimal chain of fragments f1, f2, f3 is identified in the comparison matrix spanned by input sequences S1 and S2. (b) Anchored alignment: an anchor point (A1, A2) is defined prior to the alignment procedure, and an optimal chain of fragments is searched under the constraints imposed by this anchor. That is, residues to the left of A1 can be aligned only to residues to the left of A2 and vice versa, so the alignment search space is reduced by a factor of 2. If anchor point (A1, A2) is consistent with the optimal un-constrained alignment as shown in (a), the constraints imposed by this anchor point do not affect the resulting alignment, so exactly the same fragment chain f1, f2, f3 is obtained. (c) In the parallel aligment procedure, sequence S1 and S2 are split into sub-sequences , and , , respectively, where the anchor point (A1, A2) defines the exact cutting-position. Alignments of and and of and are calculated independently, and concatenated to obtain an output alignment of S1 and S2. In (c), the obtimal sub-alignments involve fragments and which are sub-fragments of f2 contained in the un-constrained alignment. In this case, the resulting final alignment of sequences S1 and S2 is therefore the same as the un-constrained one in example (a). Note, however, that the scoring function w for fragments is not additive and we may have, for example, . Therefore, even if anchor point (A1, A2) is consistent with the optimal un-constrained alignment, there is no guarantee that concatenating optimal sub-alignments yields the same alignment as the un-constrained alignment of the input sequences S1 and S2. The algorithm may end up with a situation as shown in example (d) where the parallel alignment procedure leads to a different output alignment.