Patent ID: 9529891
Filing Date: 2016-12-27
CPC Classification: G06F,G16B

Claim Text:
1. A computer-implemented method comprising: a) receiving, via a data processing system, a query comprising at least one query sequence comprising a third string of contiguous characters having a string length equal to L; b) selecting, via the data processing system, at least a first reverse lookup table of at least one reverse lookup table in a computer database environment that has the largest preselected positive integer k that is less than or equal to L, wherein the computer database environment is maintained in a non-transitory computer readable storage medium and associated with the data processing system, wherein the computer database environment comprises a forward lookup table and the at least one reverse lookup table which relates reference sequence segments stored therein to reference sequences stored in the forward lookup table, wherein the reference sequence segments each comprise a first string of contiguous characters having a string length equal to a preselected positive integer k which differs for each of the at least one reverse lookup tables and each reference sequence comprises a second string of contiguous characters having a string length equal to a positive integer Y, and wherein each of the at least one reverse lookup tables comprises a set of Y−k+1 consecutive overlapping reference sequence segments for each reference sequence record stored in the forward lookup table; c) transforming, via the data processing system, the at least one query sequence into at least a first set of L/k consecutive non-overlapping query sequence segments by partitioning the third string of contiguous characters into L/k consecutive non-overlapping segments where k is equal to the preselected positive integer k for the at least the first reverse lookup table selected in b); d) querying, via the data processing system, the at least the first set of L/k consecutive non-overlapping query sequence segments transformed in step c) against each set of Y−k+1 consecutive overlapping reference sequence segments in the at least the first reverse lookup table selected in b) for matching reference and query sequence segments; and e) outputting, via the data processing system, at least one reference sequence that matches the at least one query sequence.