IP Library Granted Patent US 9,740,798
Granted Patent B2
US 9,740,798 · App. 14/213,495 · Granted Aug 22, 2017

Inexact search acceleration

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,740,798
App. No.
14/213,495
Granted
Aug 22, 2017
Kind
B2
Abstract

A system and method are disclosed for inexact search acceleration using reference data. A representative system includes one or more memory circuits storing a plurality of queries and a FM-index of the reference data; and one or more FPGAs configured to select a query; select a substring of the selected query; read a section of the FM-index and calculate a plurality of suffix array intervals for the substring with a corresponding plurality of prepended characters in a first or next position; read a first or next character in the first or next position of the query and select a suffix array interval for the read first character; determine whether the suffix array interval is valid and whether a beginning of the query has been reached; returning a first search result when the suffix array interval is valid and the beginning of the query has been reached; and returning a second search result that no match of the query with the reference data was found when the suffix array interval is not valid.

Claims (17)

1. A system for inexact search acceleration using reference data, the system coupled to a host computing system, the system comprising:

one or more memory circuits storing a plurality of queries and a FM-index of the reference data, each query comprising a sequence of a plurality of characters; and

one or more field programmable gate arrays coupled to the one or more memory circuits, the one or more field programmable gate arrays configured to select a query from the plurality of queries; select a first or next substring of the selected query, the first or next substring comprising a subsequence of characters of the selected query; read a first or next section of the FM-index from the one or more memory circuits and calculate a plurality of suffix array intervals for the first or next substring with a corresponding plurality of prepended characters in a first or next position; read a first or next character in the first or next position of the query and select a first or next suffix array interval of the plurality of suffix array intervals for the read first character; determine whether the first or next suffix array interval is valid and whether a beginning of the query has been reached; return a first search result when the first or next suffix array interval is valid and the beginning of the query has been reached; and return a second search result that no match of the query with the reference data was found when the first or next suffix array interval is not valid.

2. The system of claim 1 , wherein the first search result is the valid first or next suffix array interval.

3. The system of claim 1 , wherein the first search result is an alignment of the query with the reference data.

4. The system of claim 1 , wherein the reference data is a reference genetic sequence and the first search result is an alignment location of a short read query with the reference genetic sequence.

5. The system of claim 1 , wherein the one or more field programmable gate arrays are further configured, when the first or next suffix array interval is valid and the beginning of the query has not been reached, to read a next section of the FM-index from the one or more memory circuits and calculate a next plurality of suffix array intervals for a next substring with a corresponding plurality of prepended characters in a next position; read a next character in the next position of the query and select a next suffix array interval of the next plurality of suffix array intervals for the read next character; and determine whether the next suffix array interval is valid and whether a beginning of the query has been reached.

6. The system of claim 1 , wherein the one or more field programmable gate arrays are further configured, when the first or next suffix array interval is not valid, to modify the query with up to a predetermined number of a plurality of character mismatches.

7. The system of claim 1 , wherein the host computing system is adapted to modify the query with up to a predetermined number of a plurality of character mismatches when the first or next suffix array interval is not valid.

8. The system of claim 7 , wherein the plurality of character mismatches comprise at least one character mismatch selected from the group consisting of: a character insertion, a character deletion, or a character substitution.

9. The system of claim 1 , wherein the one or more field programmable gate arrays are further configured to convert the valid first or next suffix array interval to an alignment of the query with the reference data.

10. The system of claim 1 , wherein the one or more field programmable gate arrays are further configured to determine whether a difference between an upper bound “l” of the first or next suffix array interval and a lower bound “k” of the first or next suffix array interval is greater than or equal to one (1) to determine whether the first or next suffix array interval is valid.

11. The system of claim 10 , wherein the one or more field programmable gate arrays are further configured to compute k=C(a)+O(a, k−1)+1 and compute l=C(a)+O(a, l); wherein C(a) is a count array having a number of characters in the reference data string which are lexicographically smaller than “a” and wherein O(a,i) is an occurrence array having a count of a number of occurrences of “a” in the first “i” characters of a Burrows-Wheeler Transform string of the FM-index.

12. The system of claim 1 , wherein the host computing system is adapted to perform an initial search using the query and generating a plurality of partial query matches with the reference data.

13. The system of claim 1 , wherein the host computing system is adapted to generate the FM-index by creating a suffix array and a Burrows-Wheeler Transform string.

14. The system of claim 13 , wherein the host computing system is further adapted to generate a count array having a number of characters in the reference data string which are lexicographically smaller than “a”; and generating an occurrence array having a count of a number of occurrences of “a” in the first “i” characters of a Burrows-Wheeler Transform string of the FM-index.

15. The system of claim 1 , wherein the one or more field programmable gate arrays are further configured to select, read, calculate, determine and return search results in parallel using a plurality of partitions of the plurality of queries for parallel searching.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: PICO COMPUTING, INC.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 037009/0132 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2014
From: EDVENSON, GREGORY M.; OLSON, COREY B.
To: PICO COMPUTING, INC.
Reel/Frame 034034/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2014
From: DRAGHICESCU, PAUL T.
To: PICO COMPUTING, INC.
Reel/Frame 034034/0639 →