1. A method for finding a gene in a DNA sequence, said gene represented by an ordered set of marker strings, said method comprising the steps of: identifying sub-strings in said DNA sequence that match each marker string; recording, in a set ordered according to the occurrence of said marker strings in said ordered set of marker strings, the score and position of each sub-string whose score satisfies a matching constraint; for each marker string except the last marker string in the ordered set of marker strings, creating directed links between each identified sub-string that matches said marker string and any identified sub-strings that match the subsequent marker string in the ordered sequence of marker strings, subject to said directed links satisfying an inter-marker length constraint; tracing all paths that connect each identified sub-string that matches the first marker string in said ordered set of marker strings to an identified sub-string that matches the last marker string in said ordered set of marker strings using said directed links, wherein said paths satisfy a sequence length constraint; and storing said traced paths in a memory of a computer system.