IP Library Granted Patent US 9,183,256
Granted Patent B2
US 9,183,256 · App. 10/944,281 · Granted Nov 10, 2015

Performing sequence analysis as a relational join

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,183,256
App. No.
10/944,281
Granted
Nov 10, 2015
Kind
B2
Abstract

A usage model and the underlying technology used to provide sequence analysis as part of a relational database system. Included components include the semantic and syntactic integration of the sequence analysis with an existing query language, the storage methods for the sequence data, and the design of a multipart execution scheme that runs the sequence analysis as part of a potentially larger database join, especially using parallel execution techniques.

Claims (34)

1. A method for sequence analysis comprising:

storing at least one query sequence and at least one subject sequence each as relations in a relational database;

carrying out a comparison of the at least one query sequence and the at least one subject sequence, each stored as relations in the relational database, as one or more Structured Query Language (SQL) queries formulated to include at least one join operation, wherein at least one SQL query is formulated with a controls table that specifies parameters of the comparison; and

storing a result of the comparison as a result relation in the relational database, wherein a number of tuples in the result relation is larger than a multiplicative product of a number of tuples in the at least one subject sequence times a number of tuples in the at least one query sequence, to accommodate multiple points of alignment between each combination of the at least one query sequence and the least one subject sequence that are compared.

2. A method as in claim 1 wherein each of the query sequences is compared against each of the subject sequences for each of the parameters of the controls table.

3. A method as in claim 1 wherein the comparison is a BLAST algorithm.

4. A method as in claim 1 wherein the comparison is carried out as a relational join of subject sequences against one or more query sequences.

5. A method as in claim 4 wherein a selected one of the subject sequence and query sequence is specified to be used as one of inner table and outer table for the join operation.

6. A method as in claim 1 additionally comprising:

generating an auxiliary table for storing histogram data.

7. A method as in claim 6 wherein the auxiliary table is invisible to the SQL query that contains the join operation, but is otherwise visible to subsequent SQL queries.

8. A method as in claim 1 additionally comprising:

scanning the controls table as an inner table;

scanning one or more query sequences; and

cross-product joining a record resulting from the scanning steps to the inner table, to produce a parameterized query table.

9. A method as in claim 1 additionally comprising:

performing a statistics scan of a subject sequence prior to the step of carrying out the comparison.

10. A method as in claim 9 wherein results of the statistics scan are stored as part of the controls table.

11. A method as in claim 1 wherein neither the subject sequence nor the query sequence are stored as a static materialized database definition.

12. A method as in claim 1 wherein the at least one SQL query is implemented as a set of query-specific statements that are compiled and dynamically bound at execution time.

13. An apparatus for sequence analysis comprising:

memory configured to store relations in a relational database; and

a processor configured to carry out a comparison of at least one query sequence and at least one subject sequence, each stored as relations in the relational database, as one or more Structured Query Language (SQL) queries formulated to include at least one join operation, wherein at least one SQL query is formulated with a controls table that specifies parameters of the comparison, and store a result of the comparison as a result relation in the relational database, wherein a number of tuples in the result relation is larger than a multiplicative product of a number of tuples in the at least one subject sequence times a number of tuples in the at least one query sequence, to accommodate multiple points of alignment between each combination of the at least one query sequence and the at least one subject sequence that are compared.

14. An apparatus as in claim 13 wherein each of the query sequences is compared against each of the subject sequences for each of the parameters of the controls table.

15. An apparatus as in claim 13 wherein the comparison is a BLAST algorithm.

16. An apparatus as in claim 13 wherein the comparison is carried out as a relational join of subject sequences against one or more query sequences.

17. An apparatus as in claim 16 wherein a selected one of the subject sequence and query sequence is specified to be used as one of an inner table and outer table for the join operation.

18. An apparatus as in claim 13 wherein the processor is further configured to generate an auxiliary table of histogram data to be stored in the memory.

19. An apparatus as in claim 18 wherein the auxiliary table is invisible to the SQL query that contains the join operation, but is otherwise visible to subsequent SQL queries.

20. An apparatus as in claim 13 wherein the processor is further configured to scan the controls table as an inner table, scan one or more query sequences, and perform a cross-product join of a record resulting from the scans to the inner table, to produce a parameterized query table.

21. An apparatus as in claim 13 wherein the processor is further configured to perform a statistics scan of a subject sequence prior to carrying out the comparison.

22. An apparatus as in claim 21 wherein results of the statistics scan are stored in memory as part of the controls table.

23. An apparatus as in claim 13 wherein neither the subject sequence nor the query sequence are stored as a static materialized database definition.

24. An apparatus as in claim 13 wherein the at least one SQL query is implemented as a set of query-specific statements that are compiled and dynamically bound at execution time.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2021
From: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056396/0942 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 4 ERRONEOUSLY LISTED PATENTS ON SCHEDULE A. PREVIOUSLY RECORDED AT REEL: 053452 FRAME: 0580. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 29, 2021
From: IBM TECHNOLOGY CORPORATION
To: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
Reel/Frame 055171/0693 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: IBM TECHNOLOGY CORPORATION
To: SOFTWARE LABS CAMPUS UNLIMITED COMPANY
Reel/Frame 053452/0580 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM INTERNATIONAL GROUP B.V.
To: IBM INTERNATIONAL C.V.
Reel/Frame 047794/0779 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM INTERNATIONAL C.V.
To: IBM ATLANTIC C.V.
Reel/Frame 047794/0927 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 17, 2018
From: IBM ATLANTIC C.V.
To: IBM TECHNOLOGY CORPORATION
Reel/Frame 047795/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2012
From: NETEZZA CORPORATION
To: IBM INTERNATIONAL GROUP B.V.
Reel/Frame 027642/0172 →